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

Puppet - автоматическая подготовка с бродячими виртуальными машинами

У меня есть три виртуальные машины, которые я создал с помощью 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 / сети и не сможете связаться с мастером.