Цель
Я пытаюсь написать сценарий для создания 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, чтобы я мог ускорить определенное пользователем числоВМ разных типов, а соединять их вместе через частную сеть?