Pedro Jiménez's Blog

Un blog de muchas inquietudes

Chef: Bootstrapping for First Time

| Comments

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)

Comments