Назад | Перейти на главную страницу

Бродячий / марионеточный рабочий процесс

Я новичок в марионетках и бродягах, но я разрабатываю свои собственные манифесты Puppet, предназначенные для создания бродячего ящика. То есть манифест марионетки находится в моем каталоге Vagrant на хост-машине, а vagrant вызывает марионетку - марионеточного сервера нет.

Дело в том, что мой рабочий процесс:

 while(not working as desired) {
     vagrant destroy
     amend manifest
     vagrant up
 }

... а это значит, что придется долго ждать.

Как лучше работать?

Вы также можете повторно применить изменения манифеста, запустив

vagrant provision

Так ваш рабочий процесс становится

vagrant up
while(not working as desired) {
 amend manifest
 vagrant provision
}

Почему вы продолжаете воссоздавать виртуальную машину? Почему бы не использовать ssh и не работать над манифестом, пока он не заработает?

Кстати, puppet parser validate - хороший способ выявить основные ошибки еще до того, как проверить, что делает марионетка.

Лично я использую чистую виртуальную машину или виртуальную машину, которая является копией того, что я хочу изменить, копирую туда все необходимые модули под /root/modules, создайте новый модуль, а затем запустите это:

puppet apply --modulepath /root/modules file.pp

куда file.pp включает все необходимое, а мой модуль находится в подкаталоге /root/modules, в стандартной конфигурации модуля.

Сейчас являются ситуации, в которых создание виртуальной машины является основополагающим, например, выполнение начальной конфигурации или проверка имеющейся конфигурации. Но я не вижу смысла постоянно делать всю работу над вновь созданной виртуальной машиной.

Я бы рекомендовал установить Сахара. Тогда ваш рабочий процесс станет:

vagrant up
vagrant sandbox on
vagrant ssh
*do some stuff that doesn't work
vagrant sandbox rollback
vagrant ssh
* do some stuff that does work
vagrant sandbox commit

Я предпочитаю, а не делать коммит, вы делаете откат, а затем добавляете все, что вы изменили, в предпочтительные сценарии подготовки (марионетка, шеф-повар, ssh и т. Д.)