Вопрос: Можете ли вы отказаться от марионеточного манифеста?


Я применил марионеточный манифест, который, в свою очередь, включал марионеточный модуль, который добавил несколько объектов в / opt / ...

Есть ли способ отменить эффекты применяемого марионеточного модуля?

т. е. «удаление кукольного модуля ...»


5
2017-07-23 20:26


Источник


Не полностью связаны, но вы можете настроить файловый сервер для целей резервного копирования. При этом резервные копии создаются при изменении файлов. Затем вы можете вернуться к своим резервным копиям. - Zoredache
когда вы проверяете свой марионеточный код, вы можете использовать puppet agent -t --noop имитировать - robbyt


Ответы:


Нет. Поскольку марионеточный модуль может выполнять произвольные команды, нет никакого способа точно определить, что означает «unapply».

Некоторые модули поставляются с соответствующим антимодулем, который будет выполнять удаление (например, foo против foo::disable), но для этого требуется явное кодирование.


9
2017-07-23 20:38





хотя было бы неплохо, но нет доступного доступа.

вам придется писать рецепт отмены самостоятельно, в зависимости от того, что вы сделали точно (установленный пакет, затем очистить его, добавить пользователя, затем отключить его и т. д.),

замененные файлы должны храниться в клиенте (/ var / lib / puppet / clientbucket обычно, но это зависит от вашей версии и настроек)


4
2017-07-23 20:38





Нет, нет. То, что сделает модуль, может сильно зависеть от состояния вашей системы. Например, что, если у вас уже есть некоторые из этих записей, которые были добавлены в / opt в вашей системе? Тогда он добавил бы только недостающие. И как только государство изменилось, Кукольный больше не заботится о том, что это за предыдущее состояние. В следующий раз, когда агент запускается, он просто собирается сравнить состояние системы в настоящее время с тем, что, по ее мнению, должно быть, а затем выстроить их.

Одна из ключевых концепций Puppet - это идемпотентность, а это означает, что если вы многократно запускали манифест, вы всегда получали бы тот же результат. То, что вы пытаетесь сделать, - это ввести в действие известное конечное состояние, которое вы хотите выполнить. Если модуль делает то, чего вы не хотите, вы можете либо не использовать его, либо написать самостоятельно, либо изменить его.

Как сказал robbyt, использование режима --noop очень полезно, когда вы тестируете новые манифесты. Вы также должны проверить их где-то еще, прежде чем применять их в своих производственных системах. Виртуальные машины отлично подходят для такого рода тестирования, вы можете сделать снимок, а затем при необходимости отбросить назад.

Запуск вашего агента должен быть зарегистрирован в syslog. Вы также можете просмотреть журналы и посмотреть, что было сделано, и отменить изменения вручную (вы также можете просмотреть исторические журналы через веб-консоль, если вы используете Puppet Enterprise). Но это не поможет, если этот модуль все еще применяется к узлу, агент просто вернет все, когда он снова запустится.


0
2017-08-27 07:14