Hemos arrancado por fin nuestro laboratorio completamente con Chef y nos tocaba probar uno de los trucos/habilidades más asombrosas de Knife, BooTstrap.
Gracias a este comando podremos incluir a un nodo que no estuviera dado de alta en nuestra infraestructura desde alguno de los nodos de “administración”, completando su registro e instalando el software de Chef en dicho nodo. Además crea el fichero de configuración “client.rb” y los dos ficheros de claves, el de cliente (client.pem) y el del servidor (validation.pem) en el nodo.
[ coruscant:~ ] knife bootstrap 192.168.1.242 -x operador -P onetimepassword --sudo Bootstrapping Chef on 192.168.1.242 192.168.1.242 [Tue, 11 Dec 2012 15:14:48 +0100] INFO: *** Chef 10.14.4 *** 192.168.1.242 [Tue, 11 Dec 2012 15:14:49 +0100] INFO: Client key /etc/chef/client.pem is not present - registering 192.168.1.242 [Tue, 11 Dec 2012 15:14:49 +0100] INFO: HTTP Request Returned 404 Not Found: Cannot load node compute02 192.168.1.242 [Tue, 11 Dec 2012 15:14:50 +0100] INFO: Setting the run_list to [] from JSON 192.168.1.242 [Tue, 11 Dec 2012 15:14:50 +0100] INFO: Run List is [] 192.168.1.242 [Tue, 11 Dec 2012 15:14:50 +0100] INFO: Run List expands to [] 192.168.1.242 [Tue, 11 Dec 2012 15:14:50 +0100] INFO: Starting Chef Run for compute02 192.168.1.242 [Tue, 11 Dec 2012 15:14:50 +0100] INFO: Running start handlers 192.168.1.242 [Tue, 11 Dec 2012 15:14:50 +0100] INFO: Start handlers complete. 192.168.1.242 [Tue, 11 Dec 2012 15:14:50 +0100] INFO: Loading cookbooks [] 192.168.1.242 [Tue, 11 Dec 2012 15:14:50 +0100] WARN: Node compute02 has an empty run list. 192.168.1.242 [Tue, 11 Dec 2012 15:14:50 +0100] INFO: Chef Run complete in 0.632681 seconds 192.168.1.242 [Tue, 11 Dec 2012 15:14:50 +0100] INFO: Running report handlers 192.168.1.242 [Tue, 11 Dec 2012 15:14:50 +0100] INFO: Report handlers complete
A partir de este momento desde el propio Chef Server se introduce el nodo en el entorno deseado (Folsom en nuestro caso) y se le añaden los “Roles” que vaya a desempeñar.
Se le podría pasar un archivo JSON (con la opción -j) para pasarle directamente el Entorno y los roles que se le van a aplicar. Dejo esta parte pendiente para un post posterior que rellenaré un poco más adelante y cerrar así el círculo de la instalación distribuida con Chef/Knife.
NOTA: Si existe el fichero de claves del cliente en la máquina destino , se generará un error
[ coruscant:~ ] knife bootstrap 192.168.1.242 -x operador -P operador --sudo Bootstrapping Chef on 192.168.1.242 192.168.1.242 [Tue, 11 Dec 2012 15:07:23 +0100] INFO: *** Chef 10.14.4 *** 192.168.1.242 [Tue, 11 Dec 2012 15:07:23 +0100] INFO: HTTP Request Returned 401 Unauthorized: Failed to authenticate. Ensure that your client key is valid. 192.168.1.242 192.168.1.242 ================================================================================ 192.168.1.242 Chef encountered an error attempting to load the node data for "compute02" 192.168.1.242 ================================================================================ 192.168.1.242 192.168.1.242 Authentication Error: 192.168.1.242 --------------------- 192.168.1.242 Failed to authenticate to the chef server (http 401). 192.168.1.242 192.168.1.242 Server Response: 192.168.1.242 ---------------- 192.168.1.242 Failed to authenticate. Ensure that your client key is valid. 192.168.1.242 192.168.1.242 Relevant Config Settings: 192.168.1.242 ------------------------- 192.168.1.242 chef_server_url "http://172.16.0.51:4000" 192.168.1.242 node_name "compute02" 192.168.1.242 client_key "/etc/chef/client.pem" 192.168.1.242 192.168.1.242 If these settings are correct, your client_key may be invalid. 192.168.1.242 192.168.1.242 [Tue, 11 Dec 2012 15:07:23 +0100] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out 192.168.1.242 [Tue, 11 Dec 2012 15:07:23 +0100] FATAL: Net::HTTPServerException: 401 "Unauthorized"
Fuente: http://wiki.opscode.com/display/chef/Knife+Bootstrap Fuente Alternativa: @Sfrek y @achilued (gracias por toda vuestra ayuda y paciencia)