Я новичок в марионетках и бродягах, но я разрабатываю свои собственные манифесты 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 и т. Д.)