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

Я пытаюсь интегрировать Puppet и vSphere с помощью этого модуля:

https://forge.puppetlabs.com/puppetlabs/vsphere

Этот модуль позволяет создавать серверы через несколько строк кода марионетки.

У меня есть шаблон виртуальной машины, из которого я клонирую. На нем установлены инструменты VMware и марионеточный клиент.

Узел появляется, но затем хозяин марионеток думает, что все последующие клоны являются одним и тем же узлом, вероятно, потому что у них одинаковый сертификат SSL.

Так как это должно работать? Я могу исправить проблему SSL на одном узле, но я хочу иметь возможность создать 100 узлов автоматическим способом.

Похоже, ресурс марионетки vsphere_vm должен отображать гостевой IP-адрес, который Я бы предположил, что затем можно было бы передать в марионетку и подготовить узел оттуда, но эта команда в настоящее время не производит никакой информации об IP.

Должен быть кто-то, использующий этот плагин puppet vsphere, кто использует его для автоматического запуска узлов. Это также подразумевает более общий вопрос: как автоматизировать создание и подготовку сервера с марионеткой, если вы используете технологию виртуализации на основе образов, такую ​​как vSphere?

В качестве примечания я использую puppet enterprise 2015.2.

2
задан 2 November 2015 в 23:29
2 ответа

Вы должны определить, какая информация используется марионеточным сервером для обнаружения того же узла и подготовить сценарий для его изменения. Сценарий будет подготовлен к запуску сразу после загрузки нового узла и повторной унификации этой информации, марионеточный сервер будет думать, что это новый сервер, и будет управлять им.

0
ответ дан 3 December 2019 в 14:37

У меня есть шаблон vm, из которого я клонирую. В нем есть инструменты VMware и на нем установлен марионеточный клиент.

Узел появляется, но затем хозяин марионеток думает, что все последующие клоны - это один и тот же узел, вероятно, потому, что у них одинаковый SSL cert.

Чтобы решить эту проблему, вы хотите иметь шаблон, который имеет марионеточный клиент, но еще не сгенерировал CSR с марионеточным сервером. Вы можете преобразовать шаблон обратно в виртуальную машину и удалить (или переименовать) каталог ssl марионетки клиента (не уверен, где он хранится на PE 2015.2, но в Puppet v4 он находится в / etc / puppetlabs / puppet / ssl ) .

Затем на марионеточном сервере выполните очистку сертификата марионетки <имя> , где <имя> - это сертификат, созданный шаблоном.

Преобразуйте виртуальную машину обратно к шаблону. Теперь любые виртуальные машины, развернутые из этого шаблона, будут генерировать свои собственные CSR после выполнения puppet agent -t . Обратной стороной является то, что вам придется подписывать каждый новый сертификат всякий раз, когда создается CSR. Чтобы сделать его более удобным для автоматизации, вы можете настроить марионеточный сервер для автоматической подписи сертификатов, используя autosign = true в файле puppet.conf сервера. Однако не рекомендуется хранить в производственной среде. Этот документ более подробно описывает сертификаты автоматической подписи: https://docs.puppetlabs.com/puppet/latest/reference/ssl_autosign.html

0
ответ дан 3 December 2019 в 14:37

Теги

Похожие вопросы