• Slider

  • Slider

  • Slider

Instalación de Chef 0.9.12 en Debian Squeeze

Este verano, en Banot.net empezamos a tantear la posibilidad de usar Chef para la gestión de algunos de nuestros sistemas. Hasta ahora, lo instalábamos usando Rubygems con las recetas de bootstrap. Sin embargo, aprovechando que la gente de Opscode mantiene un repositorio para Debian y Ubuntu, esta vez quisimos aprovechar dichos paquetes.

Sin embargo, nos encontramos con algún pequeño problema de dependencias y queríamos compartir la solución.

La situación de Chef en Squeeze es la siguiente:

  • A día de hoy, sólo se incluye el cliente de Chef. Suponemos que el motivo por el que no se incluye el servidor es que una de sus dependencias, solr-jetty, sólo está en Sid (más información en el bug 605277). Por tanto, necesitamos los paquetes solr-jetty y solr-common de Sid.
  • Además, la versión de Chef empaquetada es la 0.8.16 y nosotros queríamos probar la 0.9.12.

Resumiendo: usando Debian Squeeze como base, queremos incluir paquetes de Sid y del repositorio de Opscode. Afortunadamente, APT nos permite hacer esto (y mucho más).

Para empezar, añadimos los repositorios a nuestro sources.list. Como los usuarios de Debian saben, pueden hacerlo añadiendo las siguientes líneas al /etc/apt/sources.list o creando diferentes ficheros en /etc/apt/sources.list.d que contengan estas líneas:

   # Debian Squeeze
   deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
   deb http://security.debian.org/ squeeze/updates main contrib non-free

   # Debian Sid
   deb http://ftp.fr.debian.org/debian/ sid main contrib non-free

   # Paquetes de Chef de Opscode para Squeeze
   deb http://apt.opscode.com/ squeeze main

Ahora configuramos las preferencias de APT para que ordenar los tres repositorios por prioridad: primero el de Opscode, luego el de Squeeze y, finalmente, el de Sid. Nuevamente, podemos ponerlo todo en /etc/apt/preferences o en diferentes ficheros en /etc/apt/preferences.d.

    Package: *
    Pin: origin apt.opscode.com
    Pin-Priority: 750

    Package: *
    Pin: release n=squeeze
    Pin-Priority: 700

    Package: *
    Pin: release n=sid
    Pin-Priority: 650

Una vez configurado APT, hay que importar la clave PGP del repositorio de Opscode. Bastará con esto (como usuario root):

# wget -qO - http://apt.opscode.com/packages@opscode.com.gpg.key | apt-key add -

En teoría, ya deberíamos poder instalar Chef. Sin embargo, nosotros tropezamos con un problema: al instalar rabbitmq-server no queda habilitado en el arranque y chef-solr se queja de un problema de dependencias. Para evitarlo, hacemos esto manualmente:

# apt-get install rabbitmq-server
# update-rc.d-insserv rabbitmq-server defaults 01

Ahora sí, comenzamos la instalación de chef y chef-server y nos vamos a tomar un café porque, con tanta dependencia, va a tardar un rato:

# apt-get install chef chef-server -y