Удаление пакета с помощью Chef - PullRequest
       21

Удаление пакета с помощью Chef

8 голосов
/ 12 сентября 2011

Я использовал Chef для управления нашими серверами.

Мои роли / app.rb выглядят так:

name "app"

description "App server"

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

Теперь я хотел бы удалить пакет nginx с машины,Если я удалю получателя nginx в run_list, удалит ли он nginx из узлов?Если нет, пожалуйста, сообщите мне, какова лучшая стратегия управления изменениями на узлах.

1 Ответ

9 голосов
/ 03 ноября 2011

Если вы удалите nginx из run_list, этот конкретный рецепт просто не запустится. На самом деле он не удалит nginx из узлов, потому что не знает как. Я действительно размышлял об этом вчера.

Вы можете написать свой собственный рецепт, который отменяет рецепт [nginx], может быть рецепт [remove_nginx] или что-то в этом роде. После этого вы можете удалить рецепт [remove_nginx].

Кто-то еще считает, что это хороший способ сделать что-то, что хотя бы немного обнадеживает:

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

По-видимому, вы можете удалить рецепт из списка run_list в блоке ruby_block, что избавит вас от хлопот, связанных с использованием ножа для его самостоятельного удаления после запуска:

https://gist.github.com/883522

...