Existen varias maneras de instalar un servidor de Chef privado, bien sea en una máquina virtual o física. Vamos a abordar una de ellas, la instalación del servidor de Chef via la gema de “knife-server”.
Más información sobre instalaciones manuales de CHEF: http://wiki.opscode.com/display/chef/Installing+Chef+Server+Manually
Será necesario tener un entorno RVM operativo y funcional. Para más información se puede ampliar desde aquí: https://rvm.io/rvm/install/. La verdad que no es el objetivo de este post explicar la instalación de dicho entorno.
Una vez realizado el login con el usuario del entorno RVM, pasaremos a la instalación de la Gema. En un primer paso nos ha dado un error y nos ha informado que:
pjimenez@pedro-pruebas:~$ gem install knife-server Fetching: builder-3.1.4.gem (100%) Fetching: excon-0.16.10.gem (100%) Fetching: formatador-0.2.4.gem (100%) Fetching: multi_json-1.5.0.gem (100%) Fetching: net-scp-1.0.4.gem (100%) Fetching: nokogiri-1.5.6.gem (100%) Building native extensions. This could take a while... ERROR: Error installing knife-server: ERROR: Failed to build gem native extension. /home/pjimenez/.rvm/rubies/ruby-1.9.3-p374/bin/ruby extconf.rb checking for libxml/parser.h... no ----- libxml2 is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. ----- *** extconf.rb failed ***
Siguiendo las instrucciones que nos aparecen en el enlace suministrado en el log, se instalan los paquetes que faltan.
$ sudo apt-get install libxslt-dev libxml2-dev
Repetimos después la parte de la Gema.
pjimenez@pedro-pruebas:~$ gem install knife-server Building native extensions. This could take a while... Fetching: ruby-hmac-0.4.0.gem (100%) Fetching: fog-1.9.0.gem (100%) Fetching: knife-ec2-0.6.2.gem (100%) Fetching: knife-server-0.3.3.gem (100%) Successfully installed nokogiri-1.5.6 Successfully installed ruby-hmac-0.4.0 Successfully installed fog-1.9.0 Successfully installed knife-ec2-0.6.2 Successfully installed knife-server-0.3.3 5 gems installed Installing ri documentation for nokogiri-1.5.6... Installing ri documentation for ruby-hmac-0.4.0... Installing ri documentation for fog-1.9.0... Installing ri documentation for knife-ec2-0.6.2... Installing ri documentation for knife-server-0.3.3... Installing RDoc documentation for nokogiri-1.5.6... Installing RDoc documentation for ruby-hmac-0.4.0... Installing RDoc documentation for fog-1.9.0... Installing RDoc documentation for knife-ec2-0.6.2... Installing RDoc documentation for knife-server-0.3.3...
Bien, primer reto conseguido. Ahora la parte mágica del asunto … la instalación desatendida del servidor de Chef.
pjimenez@pedro-pruebas:~$ knife server bootstrap standalone --ssh-user root --node-name chefpedro --host 192.168.1.64 WARNING: No knife configuration file found WARNING: Failed to authenticate root - trying password auth Enter password for root@192.168.1.64: Bootstrapping Chef on 192.168.1.64 ...
Vemos que se ha generado el certificado de Servidor (validation.pem) así como todos los archivos de configuración. Los clientes hay que crearlos aún.
root@chefpedro:/etc/chef# ll total 48 drwxr-xr-x 4 chef chef 4096 ene 29 11:26 ./ drwxr-xr-x 99 root root 4096 ene 29 11:26 ../ drwx------ 2 chef root 4096 ene 29 11:26 certificates/ -rw-r----- 1 chef chef 3002 ene 29 11:25 client.rb -rw-r----- 1 chef chef 6296 ene 29 11:25 server.rb drwxr-xr-x 2 chef chef 4096 ene 29 11:25 solr-jetty/ -rw-r----- 1 chef chef 2627 ene 29 11:25 solr.rb -rw------- 1 chef chef 1679 ene 29 11:25 validation.pem -rw------- 1 chef chef 1679 ene 29 11:25 webui.pem -rw-r----- 1 chef chef 4470 ene 29 11:26 webui.rb
Vemos las versiones de paquetería utilizadas actualmente.
root@chefpedro:/etc/chef# dpkg -l | grep chef ii chef 10.18.2-2 A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure. ii chef-expander 10.18.2-1 A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure. ii chef-server 10.18.2-1 A meta-gem to install all server components of the Chef configuration management system ii chef-server-api 10.18.2-1 A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure. ii chef-server-webui 10.18.2-1 A systems integration framework, built to bring the benefits of configuration management to your entire infrastructure. ii chef-solr 10.18.2-1 Manages search indexes of Chef node attributes using SOLR
Ahora toca cacharrear con nuestro servidor … al navegador: http://chefpedro:4040