Gabriel Gayan, @gabrielgayan

Transcripción

Gabriel Gayan, @gabrielgayan
Cocinando con Chef
Gabriel Gayan, @gabrielgayan
Objetivo: Aprovisionamiento
Fuerza Bruta
SERVER="awesome.com"
PROD_LOCATION="/var/www/html/$SERVER"
HOLD_LOCATION="/var/www/html/$SERVER.hold"
#establish base values for app and lib git repositories
GIT_REPO_URL="[email protected]"
GIT_APP_REPO="awesome.git"
GIT_LIB_REPO="awesome-library.git"
GIT_APP_BRANCH="tags/release-1.0"
GIT_LIB_BRANCH="tags/releases-1.0"
# create a list of folders that will be used for apache access
FOLDERS="$HOLD_LOCATION/app/var/log
$HOLD_LOCATION/app/var/cache
$HOLD_LOCATION/app/var/backup"
Shell Scripts
Imágenes Prefabricadas
Features
100% ruby (gem install chef)
multiplataforma
buena documentación
recursos básicos out-of-the-box
cookbooks provistos por la comunidad
Distintos sabores
Arquitectura
Chef Server
Workstation
Nodos
Chef Server
Motor de Búsqueda
Interfaz Web
API
Almacena nodos, roles, cookbooks, etc.
Workstation
Computador con knife configurado
Mantención del repositorio chef
Administración completa del chef-server
Repositorio Chef
Cookbooks -> Recetas
Roles
Data Bags
Environments
Cookbooks
Agrupación de recetas
Archivos
Templates: ERB
Recursos y Proveedores “livianos”
Metadata
Ejemplos: Apache, MySql
Recetas
Escritas en ruby, utilizando recursos
Pueden incluir otras recetas
Roles
run-list: roles y recetas
Atributos de nodo
Data Bags
Atributos de nodo “buscables”
ideales para contraseñas
Environments
Versiones de Cookbooks
Atributos de nodo
“Gemfile”
Chef Client
Se ejecuta en un nodo
Cálculo de atributos
Aplica las recetas
Logging
Ohai
Recopila información del OS
kernel
hostname
paquetes instalados
etc
Extensible mediante plugins
Ejemplos
Recursos
http://docs.opscode.com
http://wiki.opscode.com
http://community.opscode.com
http://berkshelf.com
http://www.solowizard.com
fin

Documentos relacionados