2017-01-24 2 views
0

Я все время сталкивался с проблемой моей кукольной среды разработки в Vagrant, которая создавала бы более одной виртуальной машины VirtualBox.При использовании марионетки с бродягой, нужно ли после первого бродяги добежать следующего бродяги с помощью -no-provision?

Я использую Provisioner оболочки установить марионеточный на кукловода и клиентом кукольный, и это выполняется в течение первого vargrant up, то я позволяю каждой машине, чтобы увидеть другие с помощью/и т.д./хосты через vagrant hostsupdater плагин.

Затем я запустил sudo puppet apply site.pp на Puppet Server; и запустите sudo puppet agent --server puppet-server --verbose --no-daemonize --waitforcert 10 --noop на кукольном клиенте.

Затем, когда сертификат появляется на кукольном сервере в sudo puppet cert list, я подписываю сертификат с sudo puppet cert <client-host-name>, сертификат получает кеширование на клиенте;

Назад на клиенте Я запустил sudo puppet agent --server puppet-server --verbose --no-daemonize --waitforcert 10 и учтите, что изменения внесены на этот компьютер.

Теперь следующая вещь, которую я сделал, выключайте все машины с помощью sudo shutdown -h now

А потом назад, когда я бы вернуть их в Интернете с vagrant up связь между ними будет перестать работать, кукольный со ссылкой на некоторые ошибки о сертификатах не сопоставив.

Но недавно, когда я снова пробовал эти шаги, я сделал другой способ сделать это, вместо того, чтобы бежать vagrant up Я запустил vagrant up --no-provision второй раз, когда машины загрузились, и кажется, что они могут снова общаться.

Моя теория заключается в том, что причина этого заключается в том, что при повторной постановке машин во второй раз, когда они загружаются, исключая параметр --no-provision, ЦС повторно создается, и, следовательно, он вызывает проблему, поскольку две машины нет имеют больше сертификатов друг друга.

Это правильно? Было очень досадно, что нужно постоянно создавать машины и настраивать марионетку вручную.

Также возможно, чтобы мой бродячий проводник SHELL проверял, была ли установлена ​​кукла, чтобы автоматически пропустить повторную установку кукольной, если она уже установлена?

Кроме того, есть способ для автоматического запуска sudo puppet apply site.pp на кукольном сервер после установки и запуска sudo puppet agent --server puppet-server --verbose --no-daemonize --waitforcert 10 --noop на кукольный клиента и обратно на сервер, чтобы добавить сертификат в правильном порядке, используя Provisioner оболочки?

P.S. Да, я уже знаю, что есть марионеточный ассистент для бродяг, но я изучаю конец марионетки клиента/сервера.

+0

Я просто пытаюсь проверить, что это так. – leeand00

ответ

0

гул, это странно.

Единственная причина, по которой Provisioner будет работать на второй (и предстоящих) vagrant up является то, что вы специально просить об этом, так что если у вас есть что-то вроде

config.vm.provision :shell, :inline => "blablabla", :run => 'always' 

Обратите внимание на :run => always это говорит бродяга, чтобы запустить Provisioner ,Выход vagrant up (без каких-либо опций) будет

==> app: Machine already provisioned. Run `vagrant provision` or use the `--provision` 
==> app: flag to force provisioning. Provisioners marked to run always will still run. 
==> app: Running provisioner: shell... 
+0

Итак, не так ли? Может быть, ': run => 'always'' является значением по умолчанию? – leeand00

+1

nop всегда не по умолчанию - вы можете отображать вывод 'vagrant up', как я сделал, чтобы увидеть, как он бродяжничает: _Machine уже предусмотрено_ –

+0

. Я дам вам знать, когда я его снова сломаю ... – leeand00

Смежные вопросы