1

Я пытаюсь использовать vagrant как способ предоставления виртуальных машин (настройка IP-адресов, ресурсов и т.д.), Но я также пытаюсь отделить зависимость vagrant от ansible, т.е. я просто хочу использовать vagrant для одноразового предоставления с использованием ansible где Мой собственный авторизованный пользователь настроен, защищен, а затем использует Ansible отдельно для дальнейшей инициализации на этих виртуальных машинах. Тогда я все еще хочу использовать vagrant (возможно, есть лучший способ для этого), чтобы запускать / выключать / приостанавливать / уничтожать виртуальные машины, используя vagrant.

Это то, что я до сих пор:

vagrant up
  • Создайте свежий экземпляр виртуальной машины, используя бродячее окно

встроенный провайдер BP который запускается во время vagrant

  • Добавить моего нового пользователя (скажем, ansibleuser)
  • Добавьте мой собственный открытый ключ в ansibleuser's для .ssh чтобы ansibleuser мог входить только через закрытый ключ (и соответственно отключать вход с паролем).
  • Измените /etc/sudoers для sudo без пароля
  • [В настоящее время не работает] Удалите vagrant пользователя и измените пароль пользователя root, чтобы сделать его недоступным.

Проблемы

  1. Я не могу удалить vagrant пользователя во время BP потому что провайдер вошел в систему как этот пользователь. Мне нужно, чтобы другой провайдер работал от имени другого пользователя (ansibleuser) для удаления vagrant . Есть ли лучший способ сделать это с помощью первой и единовременной команды vagrant up

  2. Если я делаю vagrant halt а затем снова vagrant up , процесс никогда не завершается, потому что он пытается ssh as vagrant и получает Warning: Authentication failure. Retrying... и он не может успешно "вызвать это". Есть ли способ обойти это? Возможный обходной путь - указать пользователя в config.ssh но потребуется некоторая условная проверка в зависимости от того, когда я вызываю vagrant up

Как я могу решить две проблемы? Есть ли лучший способ сделать то, что я пытаюсь сделать? Есть ли лучший способ предоставления защищенной виртуальной машины с настройкой ssh, чтобы я мог использовать ansible для выполнения любой дополнительной подготовки? Мне очень нравится, как легко настроить виртуальную машину с помощью файла vagrant , то есть настроить shared_folders , настроить ресурсы CPU/RAM , создать виртуальные сетевые карты.

1 ответ1

0

Vagrant свяжется с vagrant пользователем, чтобы творить свою магию. Вы можете указать другого пользователя с именем config.ssh.username (см. Https://www.vagrantup.com/docs/vagrantfile/ssh_settings.html ). Тем не менее, похоже, что вы не хотите, чтобы vagrant использовал какого-либо пользователя, и, следовательно, нет способа обойти вашу проблему.

Что касается вашего первого вопроса, вы должны позволить бродяге закончить, прежде чем уничтожить бродячего пользователя. Итак, опять же, нет никакого пути и к этому. :(

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .