2016-04-20 2 views
0

Я работаю над инструментом, который управляет экземплярами WordPress, используя марионетку. Поток следующий: пользователь добавляет данные новой установки WordPress в веб-интерфейс, а затем этот веб-интерфейс должен отправить сообщение мастеру марионеток, чтобы сообщить ему, чтобы он развернул его на выбранную машину.Trigger puppet run on update of manifest/Facts

В настоящее время настройка выполняется с помощью файла манифеста, который содержит декларацию всех экземпляров WordPress и применяется вручную через puppet apply на марионеточном агенте. Это приводит меня к моим двум вопросам:

  • Являются ли это правильным способом? Если да, можно ли применить их от марионеточного мастера к определенному узлу, а не перейти к агенту?
  • Возможно ли автоматически запустить марионетку после того, как список экземпляров изменен?

ответ

2

Чтобы ответить на ваш первый вопрос, да, есть способ сделать это с помощью кукловода, то, что у вас есть на данный момент, - это бесступенчатая настройка, предполагающая, что вы распространяете свою конфигурацию с помощью какого-то контроля версий (например, git) или ручной процесс. Это абсолютно законный способ делать вещи, если вы не хотите централизованного мастера.

Если вы хотите использовать мастер, вам нужно отбросить манифест в $ modulepath вашего мастера (он зависит от вашей версии, вы можете найти его с помощью puppet config print modulepath на вашем хозяине), а затем указать марионетку агент у мастера.

Если вы хотите спуститься по мастер-маршруту, я предлагаю вам следовать puppet documentation, который поможет вам начать работу.

Второй вопрос приводит меня к философскому аргументу: «Это действительно хотите, чтобы вы хотели?»

Кукольный традиционно (на мой взгляд) является декларативным инструментом управления конфигурацией, который предназначен для того, чтобы ваши системы выглядели определенным образом. Вы пишете код, чтобы определить «так я хочу, чтобы он выглядел», и Puppet сходится, чтобы он выглядел так. То, что вы хотите сделать, это скорее задача оркестровки (т. Е. Когда X do Y). Есть способы сделать это с помощью Puppet, например, с помощью mcollective (чтобы запустить марионетку), которой управляет веб-хоккей, но я думаю, что для этой работы есть лучшие инструменты.

Я предлагаю посмотреть ansible, saltstack или knife tool шеф-повара, чтобы выполнить развертывание следующим образом.

+0

Эти корректировки не очень распространены - может быть, новый сайт каждые пару дней, поэтому я думал, что в принципе это все еще декларативно. Я просто пытался избежать времени, пока агент снова не опросит мастера. – moscar