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

Уведомить доступный сервер для запуска playbook на виртуальной машине

У меня установлена ​​виртуальная машина с Vagrant. План состоит в том, чтобы снабдить виртуальную машину сценарием оболочки. Скрипт должен делать что-то, подключаться к серверу ansible моей компании и позволять серверу запускать playbook со списком хостов, установленным на vm. Теперь проблема в том, чтобы установить связи. Поскольку все должно запускаться автоматически, пользовательский ввод должен быть редким или вообще не нужен.

Я пытался сделать это по ssh. Ключ сервера уже есть на моей виртуальной машине. Ключ виртуальной машины должен быть помещен на сервер. Моя проблема здесь в том, что нужно иметь пароль для подключения к серверу в первый раз, когда соединение устанавливается.

Я не использую ansible-pull или Ansible в качестве инициатора для Vagrant, потому что все должно работать и в Windows.

Есть ли у вас какие-либо предложения, как это сделать и какие подходы могут сработать?

Независимо от вашего решения, некоторые идеи:

  • если ваша новая виртуальная машина похожа на Debian - вы можете использовать preseed.cfg для автоматической настройки виртуальной машины, и есть опция для "late_command" после завершения установки (до того, как произойдет первая перезагрузка). В этот момент вы можете импортировать несколько authorized_keys. Итак, ваша виртуальная машина имеет уже настроенные общие ключи. Я уверен, что ОС на базе Redhat имеет аналогичное решение. По крайней мере, возможна виртуальная машина-клон шаблона
  • другой вариант - передать пароль ssh-copy-id с участием sshpass. Видеть Автоматизация ssh-copy-id

Это не часть вопроса, но: ... Вместо того, чтобы предоставлять виртуальную машину через сценарий оболочки, вы должны использовать Ansible playbook, если вы уже используете Ansible для более поздней настройки.