Chef - Proveedor de recursos livianos
Lightweight resource provider (LWRP) ofrece la opción de ampliar la lista de recursos disponibles ampliando sus funciones y permite al usuario de Chef crear recursos personalizados.
Al crear recursos personalizados, uno puede simplemente escribir libros de cocina porque puede poseer recursos personalizados enriquecidos utilizando Chef DSL, que ayuda a hacer que el código de la receta sea más expresivo.
En la comunidad de Chef, muchos de los recursos personalizados se implementan mediante LWRP. Hay muchos ejemplos prácticos de LWRP comoiptables_rules y apt_repository.
Método de trabajo
Asegúrese de que uno tenga el nombre del libro de recetas Testing_resource y una lista de ejecución del nodo que contenga el libro de recetas Testing_resource.
Edificio LWRP
Step 1 - Cree un recurso personalizado en el libro de recetas Testing_resource.
[email protected]:~/chef-repo $ subl cookbooks/Testing_resource/resources/default.rb
actions :create, :remove
attribute :title, kind_of: String, default: "World"
attribute :path, kind_of: String, default: "/tmp/greeting.txt"
Step 2 - Cree un proveedor de recursos en el libro de recetas Tesing_resource.
[email protected]:~/chef-repo $ subl cookbooks/Testing_resource/provider/default.rb
action :create do
log "Adding '#{new_resource.name}' greeting as #{new_resource.
path}"
file new_resource.path do
content "#{new_resource.name}, #{new_resource.title}!"
action :create
end
action :remove do
Chef::Log.info "Removing '#{new_resource.name}' greeting #{new_resource.path}"
file new_resource.path do
action :delete
end
end
Step 3 - Utilice un nuevo recurso editando la receta predeterminada de Testing_resource.
[email protected]:~/chef-repo $ subl cookbooks/Tesing_resource/recipes/default.rb
greeting "Ohai" do
title "Chef"
action :create
end
Step 4 - Cargue el libro de cocina modificado en el servidor de Chef.
[email protected]:~/chef-repo $ knife cookbook upload greeting
Uploading greeting [0.1.0]
Step 5 - Ejecute Chef-Client en el nodo.
[email protected]:~$ sudo chef-client
...TRUNCATED OUTPUT...
2013-06-28T21:32:54+00:00] INFO: Processing greeting[Ohai] action
create (greeting::default line 9)
[2013-06-28T21:32:54+00:00] INFO: Adding 'Ohai' greeting as /tmp/
greeting.txt
[2013-06-28T21:32:54+00:00] INFO: Processing file[/tmp/greeting.
txt] action create (/srv/chef/file_store/cookbooks/greeting/
providers/default.rb line 7)
[2013-06-28T21:32:54+00:00] INFO: entered create
[2013-06-28T21:32:54+00:00] INFO: file[/tmp/greeting.txt] created
file /tmp/greeting.txt
...TRUNCATED OUTPUT...
Step 6 - Validar el contenido del archivo generado.
[email protected]:~$ cat /tmp/greeting.txt
Ohai, Chef!
Scripts de flujo de trabajo
Los LWRP viven en libros de cocina. Un recurso personalizado vive dentro de los libros de cocina y estará disponible bajo el nombre del libro de cocina. En el flujo de trabajo, primero definimos las definiciones y luego pasamos los atributos a los recursos que se utilizarán en el libro de recetas. Finalmente, usamos esas acciones y atributos en nuestra receta.