Я пытаюсь использовать vagrant как способ предоставления виртуальных машин (настройка IP-адресов, ресурсов и т.д.), Но я также пытаюсь отделить зависимость vagrant от ansible, т.е. я просто хочу использовать vagrant для одноразового предоставления с использованием ansible где Мой собственный авторизованный пользователь настроен, защищен, а затем использует Ansible отдельно для дальнейшей инициализации на этих виртуальных машинах. Тогда я все еще хочу использовать vagrant (возможно, есть лучший способ для этого), чтобы запускать / выключать / приостанавливать / уничтожать виртуальные машины, используя vagrant.
Это то, что я до сих пор:
vagrant up
- Создайте свежий экземпляр виртуальной машины, используя бродячее окно
встроенный провайдер BP
который запускается во время vagrant
- Добавить моего нового пользователя (скажем,
ansibleuser
) - Добавьте мой собственный открытый ключ в
ansibleuser's
для.ssh
чтобыansibleuser
мог входить только через закрытый ключ (и соответственно отключать вход с паролем). - Измените
/etc/sudoers
для sudo без пароля - [В настоящее время не работает] Удалите
vagrant
пользователя и измените пароль пользователя root, чтобы сделать его недоступным.
Проблемы
Я не могу удалить
vagrant
пользователя во времяBP
потому что провайдер вошел в систему как этот пользователь. Мне нужно, чтобы другой провайдер работал от имени другого пользователя (ansibleuser
) для удаления vagrant . Есть ли лучший способ сделать это с помощью первой и единовременной командыvagrant up
Если я делаю
vagrant halt
а затем сноваvagrant up
, процесс никогда не завершается, потому что он пытается ssh as vagrant и получаетWarning: Authentication failure. Retrying...
и он не может успешно "вызвать это". Есть ли способ обойти это? Возможный обходной путь - указать пользователя вconfig.ssh
но потребуется некоторая условная проверка в зависимости от того, когда я вызываюvagrant up
Как я могу решить две проблемы? Есть ли лучший способ сделать то, что я пытаюсь сделать? Есть ли лучший способ предоставления защищенной виртуальной машины с настройкой ssh, чтобы я мог использовать ansible для выполнения любой дополнительной подготовки? Мне очень нравится, как легко настроить виртуальную машину с помощью файла vagrant , то есть настроить shared_folders
, настроить ресурсы CPU/RAM
, создать виртуальные сетевые карты.