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.