Chef - Configuración individual

Chef-Solo es una herramienta de código abierto que se ejecuta localmente y permite aprovisionar máquinas invitadas utilizando libros de cocina de Chef sin la complicación de cualquier configuración de cliente y servidor de Chef. Ayuda a ejecutar libros de cocina en un servidor de creación propia.

Antes de ejecutar Chef-Solo en la máquina local, es necesario instalar los siguientes dos archivos en la máquina local.

  • Solo.rb - Este archivo le dice al Chef dónde encontrar libros de cocina, roles y bolsas de datos.

  • Node.json - Este archivo establece la lista de ejecución y cualquier atributo específico del nodo, si es necesario.

Configuración solo.rb

Los siguientes son los pasos para configurar solo.rb.

Step 1 - Cree un archivo solo.rb dentro del repositorio de chef.

current_dir       = File.expand_path(File.dirname(__FILE__)) 
file_cache_path   "#{current_dir}" 
cookbook_path     "#{current_dir}/cookbooks" 
role_path         "#{current_dir}/roles" 
data_bag_path     "#{current_dir}/data_bags"

Step 2 - Agregue el archivo a git repo.

$ git add solo.rb

Step 3 - Cree un archivo node.json dentro del repositorio de chef con el siguiente contenido.

{ 
   "run_list": [ "recipe[ntp]" ] 
}

Step 4 - Introduzca el libro de cocina ntp en el repositorio del chef con un cuchillo.

[email protected]:~/chef-repo $ knife cookbook site install ntp 
Installing ntp to /Users/mma/work/chef-repo/cookbooks 
…TRUNCATED OUTPUT… 
Cookbook ntp version 1.3.0 successfully installed

Step 5 - Agregue el archivo node.json a Git.

$ git add node.json

Step 6 - Confirme y envíe los archivos a git repo.

[email protected]:~/chef-repo $ git commit -m "initial setup for Chef Solo" 
[email protected]:~/chef-repo $ git push 
Counting objects: 4, done. 
Delta compression using up to 4 threads. 
...TRUNCATED OUTPUT... 
To [email protected]:mmarschall/chef-repo.git 
b930647..5bcfab6 master -> master

Ejecución del libro de cocina en el nodo

Step 1 - Inicie sesión en el nodo donde se desea aprovisionar el Chef-Solo.

Step 2 - Clonar el repositorio Chef en la máquina.

$ git clone $URL_PATH

Step 3 - cd al repositorio del chef.

$ cd chef-repo

Finalmente, ejecute Chef-Solo para hacer converger el nodo:

$ sudo chef-solo -c solo.rb -j node.json 
[2017-20-08T22:54:13+01:00] INFO: *** Chef 11.0.0 *** 
[2017-20-08T22:54:13+01:00] INFO: Setting the run_list to 
["recipe[ntp]"] from JSON 
...TRUNCATED OUTPUT... 
[2012-12-08T22:54:16+01:00] INFO: Chef Run complete in 2.388374 
seconds 
[2012-12-08T22:54:16+01:00] INFO: Running report handlers

solo.rb configura Chef-Solo para buscar sus libros de cocina, roles y bolsas de datos dentro del directorio actual: el repositorio de Chef.

Chef-Solotoma su configuración de nodo de un archivo JSON. En nuestro ejemplo, lo llamamos node.json. Si va a administrar varios servidores, necesitará un archivo separado para cada nodo. Luego, Chef-Solo simplemente ejecuta una ejecución de Chef basada en los datos de configuración que se encuentran en solo.rb y node.json.