Je rencontre des problèmes pour déterminer comment appliquer au mieux les hôtes / rôles à différents systèmes d'exploitation dans Ansible.
J'utilise actuellement Ansible pour générer des machines virtuelles Windows / Mac / Linux, et chacune des machines virtuelles a des rôles différents qui doivent leur être appliqués.
J'ai lu les meilleures pratiques et j'ai essayé de les suivre, en particulier pour utiliser la méthode de regroupement, mais je ne suis toujours pas sûr car elles mentionnent principalement les serveurs Web et les 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
environnements / test / groupes
[win_build_nodes]
win_build_machine_1
win_build_machine_2
[mac_build_nodes]
mac_build_machine_1
environnements / test / hôtes
win_build_machine_1 ansible_host=......
win_build_machine_2 ansible_host=......
mac_build_machine_1 ansible_host=......
environnements / test / méta
[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
Le environment/test/meta
fichier selon moi, doit être changé avec le build_nodes:children
, mais je ne suis pas sûr de quoi. Auparavant, je faisais simplement en sorte que les machines virtuelles aient tous les rôles créés avec les éléments suivants:
Ancien site.yml
- name: Apply everything
hosts: build_nodes
roles:
- common
- build-machine-test-1
- build-machine-test-2
Mais j'ai réalisé que je ne voulais pas que tout soit construit sur la même machine. Remarque, build-machine-test-1
et les 2
deux ont des versions Windows / Mac / Linux distinctes car ils détectent les éléments à inclure en fonction du système d'exploitation.
Quelqu'un peut-il suggérer une meilleure façon de séparer les machines virtuelles en fonction des systèmes d'exploitation?
build-machine-test-1
rôles a ses propres versions distinctes basées suros_family
. Ma question est pour un niveau supérieur où les machines de construction elles-mêmes doivent être séparées avant que les rôles ne soient appliqués ...