Ich habe Probleme, herauszufinden, wie Hosts / Rollen in Ansible am besten auf verschiedene Betriebssysteme angewendet werden können.
Ich verwende derzeit Ansible, um Windows- / Mac- / Linux-VMs zu generieren, und jede der VMs hat unterschiedliche Rollen, die auf sie angewendet werden müssen.
Ich habe die Best Practices gelesen und versucht, sie zu befolgen, insbesondere um die Gruppierungsmethode zu verwenden, aber ich bin mir immer noch nicht sicher, da sie hauptsächlich Webserver und DBServer erwähnen.
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
Umgebungen / Test / Gruppen
[win_build_nodes]
win_build_machine_1
win_build_machine_2
[mac_build_nodes]
mac_build_machine_1
Umgebungen / Test / Hosts
win_build_machine_1 ansible_host=......
win_build_machine_2 ansible_host=......
mac_build_machine_1 ansible_host=......
Umgebungen / Test / Meta
[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
Die environment/test/meta
Datei, von der ich glaube, dass sie mit der geändert werden muss build_nodes:children
, aber ich bin mir nicht sicher, was ich tun soll. Zuvor hatte ich nur die VMs mit allen Rollen wie folgt aufgebaut:
Alte site.yml
- name: Apply everything
hosts: build_nodes
roles:
- common
- build-machine-test-1
- build-machine-test-2
Aber dann wurde mir klar, dass ich nicht wollte, dass alles auf derselben Maschine gebaut wird. Beachten Sie , build-machine-test-1
und 2
beide haben separates Windows / Mac / Linux aufbaut , wie sie erkennen , was basierend auf dem Betriebssystem enthalten.
Kann jemand einen besseren Weg vorschlagen, die VMs basierend auf Betriebssystemen zu trennen?
build-machine-test-1
Rollen ihre eigenen Builds hatos_family
. Meine Frage ist für eine höhere Ebene, wo die Build-Maschinen selbst getrennt werden müssen, bevor die Rollen angewendet werden ...