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

Puppet & Puppetmaster для разработки на виртуальных машинах

Я в ситуации, когда я постоянно запускаю новые виртуальные машины для разработки. У меня есть базовый образ, который я могу клонировать, но он быстро устаревает, и у вас нет способа добавить изменения во многие виртуальные машины.

Я хочу настроить марионеточный скрипт, который запускается при первой загрузке виртуальной машины, и есть много руководств по созданию site.pp, который запускается непосредственно марионеткой, но это включает один файл, который вы должны настроить на узел. Что я хотел бы сделать, так это настроить разработку на puppetmaster, чтобы все мои виртуальные машины могли обращаться к одной и той же точке и оставаться в курсе и позволять мне создавать полный набор пакетов с использованием файлового сервера и т. Д.

Проблемы, которые я вижу в этом, заключаются в том, что я не могу / не хочу полагаться на имена хостов для идентификации vms, меня не волнует сохранение истории pki, поскольку имена vm могут быть повторно использованы.

Можно ли использовать puppet вместе с puppetmaster и игнорировать все pki? Могу ли я создать среду, в которой я могу зарегистрировать виртуальную машину с помощью факта или каким-либо другим способом? Я хотел бы сделать тип марионеточного агента = test1 или аналогичный.

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

Поскольку виртуальные машины предназначены для разработки, вы можете посмотреть Бродяга. У Vagrant есть поддержка Puppet прямо из коробки.

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

option domain-name "my.domain.com";

Установите свой puppetmaster чтобы предоставить нужные модули:

node /.*my.domain.com/ inherits default {
}

И включите автоподпись для этого домена:

$ cat autosign.conf 
# Domains you want SSL certificates autosigned for
#*.my.domain.com

А что касается "добавления изменений во многие виртуальные машины", вот что puppet для. Если вы хотите / нуждаетесь в других операциях по требованию, взгляните на Коллектив марионеток.

puppet может работать в режиме клиент / сервер, но это не обязательно. Вы можете вызвать марионетку локально для текущей машины, это намного проще (но, конечно, менее масштабируемо)

В моем случае при запуске новой виртуальной машины я просто копирую полную конфигурацию марионетки с помощью sftp (ssh) и вызываю puppet локально. Инструкции здесь (fr) http://offirmo.net/wiki/index.php?title=Amor%C3%A7age_d%27un_serveur_Ubuntu_avec_puppet

cd ~/puppet
sudo puppet apply --debug --detailed-exitcodes --verbose manifests/site.pp --modulepath=modules --ignorecache --no-usecacheonfailure

Если мне нужны обновления, моя конфигурация марионетки находится в репозитории git (https://github.com/Offirmo/offirmo-puppet), и я могу просто получить последнюю версию с помощью git pull и применить снова.

Вам решать, лучше ли этот метод в вашем случае.