Publicado el 25 de Junio del 2017
777 visualizaciones desde el 25 de Junio del 2017
818,4 KB
36 paginas
Creado hace 11a (21/06/2013)
PROYECTO INTEGRADO
Juan Antonio Beato Quiñones
2º ASIR
Proyecto Integrado
IES Gonzalo Nazareno
Tabla de contenido
1. Introducción .............................................................................................................. 3
1.1 ¿Qué es Chef? ..................................................................................................... 3
1.2 ¿Cómo lo uso? ..................................................................................................... 3
1.2.1 Hosted Chef:................................................................................................. 3
1.2.2 Chef-Solo: .................................................................................................... 3
1.2.3 Chef-Server y Chef-Client: ........................................................................... 3
2. Conceptos Básicos .................................................................................................... 4
3. Chef-Solo .................................................................................................................. 5
4. Chef-Server ............................................................................................................... 5
4.1 Introducción ........................................................................................................ 5
4.2 Instalación de Chef-Server en Ubuntu-Server 12.04 LTS ..................................... 5
4.2.1 Configuración de nuestro Workstation .......................................................... 7
5. Chef-Client ............................................................................................................... 8
5.1 Introducción ........................................................................................................ 8
5.2 Instalación de Chef-Client en Ubuntu y Debian ................................................... 8
5.3 Configuración de Chef-client ............................................................................... 9
6. Knife ....................................................................................................................... 10
6.1 ¿Qué es Knife? .................................................................................................. 10
6.2 Usando Knife .................................................................................................... 11
6.2.1 Nodos ......................................................................................................... 11
6.2.2 Roles .......................................................................................................... 12
6.2.3 Cookbooks ................................................................................................. 13
7. Ejemplos ................................................................................................................. 13
8. Despliegue de Servidor LAMP y Wordpress con Chef ............................................ 14
8.1 Introducción ...................................................................................................... 14
8.2 Despliegue en Chef-Solo ................................................................................... 15
8.3 Despliegue simultáneo en varios nodos con Chef-Server ................................... 26
9. Despliegue de Balanceador de cargas con Chef-Server ............................................ 27
10. Bibliografía ........................................................................................................... 36
Página 2
Proyecto Integrado
IES Gonzalo Nazareno
1. Introducción
1.1 ¿Qué es Chef?
Chef es un sistema de automatización de infraestructura desarrollada por Opscode y
hace más fácil desplegar servidores y aplicaciones a cualquier ubicación física, virtual o
en la nube, sin importar el tamaño de la infraestructura. Cada organización se compone
de uno (o más) Workstations (estaciones de trabajo), un único servidor, y cada uno de
los nodos que va a ser configurado y mantenido por Chef.
Está escrito en Ruby y Erlang, el desplieque de cookbook, recipes, etc... lo realiza con
ruby.
1.2 ¿Cómo lo uso?
Chef nos proporciona 3 opciones:
1.2.1 Hosted Chef: Nos proporcionan un Chef-server al que nos conectaremos desde
nuestra máquina con el par de claves que nos proporcionan en la web, nosotros
tendríamos nuestro Workstation que sincronizará con el servidor.
La versión FREE nos permite administrar hasta 5 servidores, estos son los precios:
1.2.2 Chef-Solo: Es una versión de código abierto de Chef que permite usar recetas en
nodos
Chef-Server.
Se ejecuta localmente y necesita tener la recetas en la máquina y todas sus
dependencias.
acceso
tienen
que
no
a
un
Chef-Solo no incluye las siguiente funcionalidades:
Almacenamiento de datos de los nodos
Distribución centralizada de Cookbooks
Autenticación y Autorización
Una API centralizada que interactúa con los integrantes de la infraestructura
Atributos persistentes
1.2.3 Chef-Server y Chef-Client: Esta opción permite instalarte tu propio servidor
Chef en tu entorno y tus clientes Chef, te permitirá tener centralización de Cookbooks,
puedes realizar configuraciones en los Nodos sin necesidad de tener la recetas en los
nodos ya que todas están centralizadas en el servidor, la documentación sobre la
instalación del servidor y los clientes la veremos a continuación.
Página 3
Proyecto Integrado
IES Gonzalo Nazareno
Los componente que tendrá nuestro servidor serán los siguientes:
CouchDB: Apache CouchDB es una base de datos documental sin esquemas,
deja a un lado el modelo tradicional de almacenado de datos en columnas,
tablas, filas, etc.. para CouchDB solo existen documentos, estos documentos son
almacenados en JSON
RabbitMQ: Es un broker de mensajería, es un intermediario que traduce los
mensajes del sistema de un lenguaje a otro. Es un software de código abierto.
Chef-server: Chef-Server actúa como un Hub de configuración. Almacena los
Cookbooks, las políticas aplicadas a estas y los nodos definidos en la estructura.
Los nodos utilizan Chef-Client para comunicarse con Chef-Server y pedirle las
recetas, plantillas, etc...
Chef-server-webui: Es una aplicación hecha en Ruby on Rails 3.0 que interfaz
web a nuestro Chef-server.
Chef-Solr: Utiliza Apache Sorl para la realización de búsquedas.
Chef-expander: Es nuevo en Chef 0.10 y sustituye a chef-solr-indexer.
2. Conceptos Básicos
Node: Es cualquier servidor, servidor virtual o instancia que este configurada
para ser mantenido por chef-client.
Workstation: Es una máquina que está configurada para usar knife, sincronizar
con los repositorios y con el chef-server.
Rol: Es una forma de definir atributos y recetas que queremos que se ejecuten en
uno o carios nodos.
Cookbook: Es la unidad fundamental de la distribución de configuración y
políticas de Chef, define un escenario con todo lo necesario para realizar las
instalaciones, configuraciones, etc..
Recipe: Es el elemento de configuración más importante dentro del entorno
Chef.
o Están escritas en Ruby
o Debe definir todo lo que queremos configurar de un sistema.
o Se almacenan en Cookbooks
o Pueden incluirse en otras recetas
o Puede depender de una o varias recetas.
Attributes: Un atributo es un detalle especifico de un nodo, se puede definir en
un cookbook o recipe.
Run-list: Es una lista en el que se pone los roles o recetas que queramos que se
ejecute, se ejecutarán en el orden que pongamos.
Databags: Es una variable global definida en un fichero JSON y que es
accesible por un Chef-server y cargada en recetas.
Environs: Es una forma de mapear u organizar el trabajo.
Página 4
Proyecto Integrado
IES Gonzalo Nazareno
Ohai: Es una herramienta que utiliza el servidor para detectar ciertas
propiedades de cada nodo para después proporcionarlos al chef-client durante la
ejecución de este.
3. Chef-Solo
La instalación de Chef-solo en Debian se realiza con las instalación del Chef-Client por
lo que el procedimiento será el mismo que utilizaremos para instalar el cliente de chef,
podemos verlo un poco más adelante en el punto 5.
Si la instalación la queremos realizar en una máquina Ubuntu podemos ayudarnos del
script que nos proporciona la gente de Opscode ejecutando el siguiente comando:
curl -L https://www.opscode.com/chef/install.sh | bash
4. Chef-Server
4.1 Introducción
Chef-Server actúa como un Hub de configuración. Almacena los Cookbooks, las
políticas aplicadas a estas y los nodos definidos en la estructura. Los nodos utilizan
Chef-Client para comunicarse con Chef-Server y pedirle las recetas, plantillas, etc...
4.2 Instalación de Chef-Server en Ubuntu-Server 12.04 LTS
La instalación de Chef-Server la vamos a realizar en una máquina Ubuntu Server 12.04
LTS.
Hay varias formas de realizar la instalación, nosotros vamos a realizarla añadiendo los
repositorios de Opscode e instalado desde repositorios.
Lo primero que tenemos que tener configurado correctamente será el FQDN de la
máquina, no cuento con un servidor DNS por lo que yo lo haré en el fichero /etc/hosts:
127.0.0.1 servidor2.example.com servidor2
#127.0.1.1 ubuntu
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Comprobamos la correcta configuración con el sig
Comentarios de: Proyecto integrado Chef (0)
No hay comentarios