Многоэтапное предоставление Vagrant частной сети - PullRequest
0 голосов
/ 26 июня 2019

Цель

Я пытаюсь написать сценарий для создания X Бродячих виртуальных машин типа «А» и Y Бродячих виртуальных машин типа «В» и автоматически подготовить их и добавить вчастная сеть (то есть 192.168.100/8).Я хотел бы настроить хосты / IP-адреса следующим образом (т.е. пользователь может заранее запросить, сколько единиц каждого типа должно быть создано / инициализировано; 0 <= j <=9, 0 <=k <= 30):

  • server-A-01 (192.168.100.1)
  • server-A-02 (192.168.100.2)
  • ...
  • server-A-0j (192.168.100.j)
  • client-B-20 (192.168.100.20
  • client-B-21 (192.168.100.21)
  • ...
  • client-B-21 (192.168.100.(20 + k))

Проблема

Сценарий обеспечения (т. Е. Сценарий bash / shell) для обоихИзображения типа «А» и «Тип В» являются сложными и, в конце концов, заканчиваются множеством шагов, которые не могут все происходить вплотную.Например, виртуальные машины «типа A» должны генерировать самозаверяющие сертификаты, а затем сертификаты должны быть развернуты на всех виртуальных машинах «типа B», и необходимо запустить больше сценариев установки.


Пока мысли

В настоящее время я пишу простой сценарий bash / shell для обработки (т. Е. Выполняет vagrant init, vagrant up, около 100 "измененных" vagrant ssh команд и т. Д.), Но я хотел использовать стандартный / канонический способ настройки этих машин (т. Е. с использованием Vagrantfile или с использованием существующих примеров для обработки подготовки нескольких компьютеров ), но они кажутся жизнеспособными только в том случае, если этап подготовки представляет собой одноэтапную / однократную операцию, в отличие от многоэтапной операции, которую я в настоящее время должен выполнить.

Кроме того, коллегапосоветовал учиться / читать по Ansible, чтобы решить мою проблему, но я не знаю, поможет ли это мне / как (то есть я не знаю, справится ли он с многоступенчатой ​​подготовкой лучше, чем сценарий оболочки или взломанный).вместе Vagrantfile).


Вопрос

Как я могу (официально рекомендованным / поддерживаемым или каноническим способом) выполнить многоступенчатую операцию обеспечения, такую ​​как эта, для Vagrant, чтобы я мог ускорить определенное пользователем числоВМ разных типов, а соединять их вместе через частную сеть?

...