У мене виникають проблеми з розробкою, як найкраще застосувати хости / ролі до різних операційних систем в Ansible.
В даний час я використовую Ansible для створення віртуальних машин Windows / Mac / Linux, і кожен з VM має різні ролі, які потрібно застосувати до них.
Я читав кращі практики та намагався дотримуватися їх, особливо використовуючи метод групування, але я все ще не впевнений, оскільки в основному вони згадують веб-сервери та dbservers.
site.yml
- name: Apply common configuration to all nodes
hosts: all
roles:
- common
- name: Configure and deploy test node 1
hosts: build-test-node
roles:
- build-machine-test-1
- name: Configure and deploy test node 2
hosts: build-test-node-2
roles:
- build-machine-test-2
середовища / тест / групи
[win_build_nodes]
win_build_machine_1
win_build_machine_2
[mac_build_nodes]
mac_build_machine_1
середовища / тест / хости
win_build_machine_1 ansible_host=......
win_build_machine_2 ansible_host=......
mac_build_machine_1 ansible_host=......
середовища / тест / мета
[mac_build_nodes]
[win_build_nodes]
[win:children]
win_build_nodes
[mac:children]
mac_build_nodes
[linux:children]
[build_nodes:children]
win_build_nodes
mac_build_nodes
environment/test/meta
Файл я вважаю , повинен бути змінений з build_nodes:children
, але я не впевнений , що. Раніше у мене просто було встановлено, що у ВМС є всі ролі, створені для цього:
Старий сайт.yml
- name: Apply everything
hosts: build_nodes
roles:
- common
- build-machine-test-1
- build-machine-test-2
Але потім зрозумів, що не хочу, щоб все будувалося на одній машині. Зауважте, build-machine-test-1
і 2
обидва мають окремі версії Windows / Mac / Linux, коли вони визначають, що включати на основі операційної системи.
Чи може хто-небудь запропонувати кращий спосіб розділення ВМ на основі операційних систем?
build-machine-test-1
ролей має свої окремі побудовиos_family
. Моє запитання стосується вищого рівня, коли самі машини для складання потрібно відокремити, перш ніж застосовувати ролі ...