2011-09-12 21 views
8

He estado usando Chef para administrar nuestros servidores.Desinstalar un paquete usando Chef

Mis papeles/app.rb se ve así:

name "app" 

description "App server" 

run_list [ 
    "recipe[apt]", 
    ..., 
    ..., 
    "recipe[nginx]" 
    ..., 
    ..., 
] 

Ahora me gustaría quitar el paquete de nginx de la máquina. Si elimino el nginx recipie en run_list, ¿eliminará nginx de los nodos? De lo contrario, avísenme cuál es la mejor estrategia para tener gestión de cambios en los nodos.

Respuesta

9

Si elimina nginx de la lista de ejecución, esa receta en particular simplemente no se ejecutará. En realidad, no eliminará nginx de los nodos porque no sabe cómo hacerlo. Estaba reflexionando sobre esto ayer.

Puedes escribir tu propia receta que deshaga la receta [nginx] tal vez la receta [remove_nginx] o algo así. A continuación, puede eliminar la receta [remove_nginx].

Otra persona también piensa que esto es una buena manera de hacer las cosas, que es al menos un poco tranquilizador:

http://community.opscode.com/questions/6

Aparentemente se puede eliminar una receta de la run_list en un ruby_block, por lo que ahorra la molestia de usar un cuchillo para eliminar por sí mismo después de que se ejecute:

https://gist.github.com/883522

+0

Excelente respuesta! Solo para tu información, el enlace opscode.com está roto. – nrobey

Cuestiones relacionadas