Bonsoir,
Ton groupe linux contient le groupe oracle, donc le groupe linux contient tous les hosts du groupe oracle.
Le découpage en sous groupe ainsi induit l'erreur. Ce n'est pas une structure d'arbre mais de l'inclusion.
Dans la doc :
Any host that is member of a child group is automatically a member of the parent group.
ICI
Donc il faut partir des plus petits groupes pour remonter vers les groupes plus généraux.
Ensuite, faire une discrimination avec un groupe selon le type d'OS est un peu inutile.
Il y a les facts ansible (information qu'Ansible récupère en début de connexion sur un host) et il est possible avec la clause "when" de discriminer sur l'os de l'host.
Car en teneur ton problème est a mon sens non solvable. En teneur le groupe oracle contiendra toujours des windows et des linux et donc embarquera tous les linux et les windows (même ceux ne faisant pas tourner d'oracle).
Pour information, tu peux utiliser cette commande
ansible-inventory oracle -i test.yml --graph
qui permet une visualisation en graph de ton --list-hosts.
Partager