Подготовка виртуальной машины Foreman без SSH и DHCP/DNS

Подготовка виртуальной машины Foreman без SSH и DHCP/DNS

Я пытаюсь внедрить Foreman, чтобы мы могли управлять и предоставлять серверы для клиентов, которыми мы управляем. Я установил Foreman в центральном месте, а затем установил Foreman Smart Proxy внутри одной из сетей клиентов. Все работает нормально (удаленные агенты Puppet могут подключаться к моему смарт-прокси, а мой центральный сервер Foreman может видеть данные), однако теперь я хочу предоставлять новые виртуальные машины (через vCenter). Я установил foreman-vmwareи настроил свой профиль вычислительных ресурсов, создал запись для своего шаблона виртуальной машины, но когда я создаю новый хост через Foreman и говорю ему клонировать из моего шаблона, он зависает, ожидая, пока узел станет доступным. Я предполагаю, что он может подключиться к нему по SSH, чтобы завершить настройку. Моя проблема в том, что сервер Foreman не будет подключен к новой виртуальной машине. Я надеялся, что новая виртуальная машина (на которой установлен агент Puppet) будет настроена на подключение к моему смарт-прокси и завершит настройку таким образом?

Я ошибся в дизайне? Может ли кто-нибудь помочь мне спроектировать решение, которое подойдет именно мне?

Я не могу создать новый DHCP-, DNS- и TFTP-сервер в клиентской сети, так как это может помешать работе существующих служб DHCP и DNS.

Спасибо, Бен.

решение1

tl;dr: В настоящее время не работает, SSH-подключение осуществляется с сервера foreman.

У нас похожая конфигурация, где есть публичный/централизованный экземпляр Foreman/Puppet, к которому мы подключаем несколько «небольших» клиентов. В нашем случае я даже не устанавливал «умный прокси» в сеть клиента. ИТ-персонал клиента фактически предоставил мне учетные данные SSH для минимальной установки CentOS 6.x (фактически, как развертывание образа?). В Foreman я просто создал новую виртуальную машину как «голое железо», а затем скопировал скрипт завершения с вкладки «Шаблоны» экрана сведений о хосте и вставил его в виртуальную машину (мне пришлось использовать VPN для SSH на клиентской машине). В вашем случае вы, вероятно, могли бы сделать что-то подобное, но любые «ручные» шаги обычно не одобряются.

Вот несколько случайных идей, которые возникли у меня, пока я размышлял об этом:

  • Может быть, вы могли бы разобраться, как использовать "cloud-init", тогда вы смогли бы "предоставлять" (запускать скрипт) виртуальную машину без того, чтобы сервер foreman мог подключиться к ней по SSH. Я не уверен, как это будет работать с ESXi, и, скорее всего, для этого потребуется некоторый "пользовательский код" :)

  • Возможно, настройте сервер OpenVPN на сервере foreman и настройте свои образы на автоматическое VPN-подключение к серверу foreman. Это имеет некоторые преимущества в том, что вам не нужно выставлять puppet/foreman в Интернет, но, опять же, вероятно, будет задействован какой-то пользовательский код, чтобы попытаться выяснить IP-адрес VPN хоста для SSH-подключения. Это также может рассматриваться некоторыми клиентами как уязвимость, особенно если они пытаются соответствовать PCI.

  • Создайте новый модуль, который позволит и конфигурацию "SSH via", так что сервер foreman будет подключаться по SSH к определенному хосту, а затем к желаемому клиентскому IP ( ssh -t viaHost ssh $HOST_ADDRESS) во время процесса подготовки. Конечно, если вы пойдете по этому пути, вы, вероятно, сможете сделать это также операцией смарт-прокси, где вместо попытки SSH с сервера foreman он попросит сделать это смарт-прокси.

Это все потенциальные решения, но я не думаю, что какое-либо из них будет работать в настоящее время. Было бы неплохо подать несколько запросов на функции наhttp://projects.theforeman.org/projects/foreman/issues

~Томми

решение2

Запрос на вытягивание#3623против тумана, который используется Форманом, должен облегчить запуск команд из user_dataшаблонов сruncmdвход.

Связанный контент