У меня есть три виртуальные машины, которые я создал с помощью Vagrant. Эта виртуальная машина имеет как ящик ubuntu / trusty64. Я создал все виртуальные машины в одном Vagrantfile как один проект. Чтобы подготовить его, я использовал Puppet. На данный момент три виртуальных сервера используют разные манифесты. Я хочу автоматизировать этот процесс, когда меняются манифесты. Итак, если я добавлю один пакет в один манифест, я хочу, чтобы без моего вмешательства vagrant обнаружил это и повторно подготовил виртуальные машины в соответствии с новыми изменениями в файлах манифестов.
Я очень новичок в Vagrant и больше в Puppet, поэтому мой вопрос:
это возможно?
Это проект, который я разрабатываю: https://github.com/jngd/puppet-tfg
Сам Бродяга не сможет этого сделать. Вам понадобится что-то вроде охранять наблюдать за манифестами и делать «что-то», когда они меняются. Я бы не рекомендовал полностью повторно инициализировать виртуальную машину (vagrant destroy; vagrant up
) при каждом изменении, потому что в этом заключается безумие (запуск займет гораздо больше времени, и вам потребуется внести больше правок), но запуск vagrant ssh sudo puppet apply /etc/puppet
конечно возможно.
Я не пользователь Puppet, а ветеран CFEngine. Я действительно видел, что у Puppet есть агент - puppet-agent, который (может) периодически получать обновленные манифесты от мастера Puppet, так же, как cf-agent / cf-execd делает с пакетами обещаний в CFE.
Я бы сказал, что если вы настроите puppet-agent на запуск каждые 10 минут или около того, он должен загрузить последние изменения и запустить, обновляя ваши виртуальные машины. Я не знаю, как Puppet обрабатывает управление пакетами (RPM? Deb?), Но я уверен, что если в вашем манифесте говорится об установке списка пакетов, добавление одного в список должно вызывать установку пакета вместе со всеми остальными. директивы обеспечения - копирование файлов, управление службами и т. д.
Я предполагаю, что вы можете запустить puppet-agent как демон или как задание cron.
Загвоздка в том, что вы должны иметь возможность связаться с вашим мастером Puppet из систем Vagrant, поэтому они не будут обновляться, если вы не подключитесь к своей VPN / сети и не сможете связаться с мастером.