Подготовка ВМ мастера без SSH и DHCP/DNS
Я пытаюсь внедрить Foreman, чтобы позволить нам управлять и предоставлять серверы для клиентов, которыми мы управляем, я установил Foreman в одном месте, а затем установил Smart Proxy Foreman в одной из сетей клиентов, все работает нормально (удаленный Puppet агенты могут подключаться к моему интеллектуальному прокси-серверу, и мой центральный сервер Foreman может видеть данные), однако теперь я хочу подготовить новые виртуальные машины (через vCenter). Я установил foreman-vmware
и сконфигурировал свой профиль вычислительных ресурсов, создал запись для моего шаблона виртуальной машины, но когда я создаю новый хост через Foreman и говорю ему клонировать из моего шаблона, он зависает в ожидании доступности узла, я предполагаю, что он может SSH на него чтобы завершить настройку, моя проблема заключается в том, что у сервера Foreman не будет подключения к новой виртуальной машине, я надеялся, что новая виртуальная машина (на которой установлен агент Puppet) будет настроена для подключения к моему интеллектуальному прокси-серверу и завершения настройки сюда?
Я неправильно понял мой дизайн? Может ли кто-нибудь помочь мне разработать подходящее для меня решение?
Я не могу создать новый сервер DHCP, DNS и TFTP в сети клиента, так как это может помешать существующим службам DHCP и DNS.
Спасибо Бен
2 ответа
tl;dr: В настоящее время не будет работать, подготовка SSH происходит с сервера foreman.
У нас похожая конфигурация, где был общедоступный / централизованный экземпляр Foreman/Puppet, к которому мы подключаем несколько "маленьких" клиентов. В нашем случае я даже не установил "умный прокси" в сеть клиента. ИТ-персонал заказчика фактически предоставил мне учетные данные SSH для минимальной установки CentOS 6.x (фактически, как развертывание образа?). В Foreman я просто создал новую виртуальную машину как "Bare Metal", а затем скопировал завершающий скрипт с вкладки "Шаблоны" на экране сведений о хосте и вставил его в виртуальную машину (мне пришлось использовать VPN для SSH на клиентском компьютере).). В вашем случае вы могли бы сделать что-то подобное, но любые "ручные" шаги обычно не одобряются.
Вот несколько случайных идей, которые у меня возникли, когда я думал об этом:
Возможно, вы могли бы выяснить, как использовать "cloud-init", тогда вы сможете "подготовить" (запустить скрипт) виртуальную машину без того, чтобы сервер мастера мог подключиться к ней по SSH. Я не уверен, как это будет работать с ESXi, и это, вероятно, потребует некоторый "пользовательский код":)
Возможно, установите сервер OpenVPN на сервере мастера и настройте ваши изображения для автоматического VPN-подключения к серверу мастера. Это имеет некоторые преимущества, заключающиеся в том, что вам не нужно выставлять марионетку / бригадира в Интернет, но опять же, вероятно, будет какой-то нестандартный код, связанный с попыткой выяснить IP-адрес хоста для SSH. Некоторые клиенты также могут считать это уязвимостью, особенно если они пытаются соответствовать требованиям PCI.
Создайте новый модуль, который позволил бы и "SSH через" конфигурацию, так, чтобы мастер-сервер мог SSH к определенному хосту, затем к желаемому IP-адресу клиента (
ssh -t viaHost ssh $HOST_ADDRESS
) во время процесса обеспечения. Конечно, если вы пойдете по этому пути, вы, вероятно, также можете сделать это умной прокси-операцией, где вместо попытки SSH с сервера мастера, он попросит умный прокси-сервер сделать это.
Это все потенциальные решения, но я не думаю, что какое-либо из них будет работать в настоящее время. Возможно, было бы неплохо подать несколько запросов на функции по адресу http://projects.theforeman.org/projects/foreman/issues
~ томми
Запрос на вытягивание #3623 против тумана, который используется Форманом, должен облегчить выполнение команд из user_data
шаблоны с runcmd
запись.