J'utilise Ansible Tower v3.4.1 avec Ansible v2.7.6 sur ubuntu 16.04 VM fonctionnant sur VirtualBox. J'exécute un playbook qui fonctionne lorsque je l'exécute à partir de la ligne de commande en utilisant "ansible-playbook "mais échoue lorsque j'essaye de l'exécuter depuis la tour Ansible. Je sais que je dois avoir quelque chose de mal configuré dans la tour ansible mais je ne le trouve pas.
J'obtiens cet avertissement quelles que soient les modifications que j'apporte au fichier d'inventaire (hôtes).
$ ansible-playbook 2.7.6
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/var/lib/awx/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible-playbook
python version = 2.7.12 (default, Nov 12 2018, 14:36:49) [GCC 5.4.0 20160609]
Using /etc/ansible/ansible.cfg as config file
SSH password:
**/tmp/awx_74_z6yJB4/tmpVlXGCX did not meet Host_list requirements**, check plugin documentation if this is unexpected
Parsed /tmp/awx_74_z6yJB4/tmpVlXGCX inventory source with script plugin
PLAYBOOK: addpool.yaml *********************************************************
1 plays in addpool.yaml
[WARNING]: **Could not match supplied Host pattern, ignoring: bigip**
PLAY [Sample pool playbook] ****************************************************
17:05:43
skipping: no hosts matched
J'ai activé les plugins d'inventaire pour YAML et transformé mon fichier d'hôtes en hosts.yml
fichier.
Voici mon fichier d'hôtes:
192.168.68.253
192.168.68.254
192.168.1.165
[centos]
dad2 ansible_ssh_Host=192.168.1.165
[bigip]
bigip1 ansible_Host=192.168.68.254
bigip2 ansible_Host=192.168.68.253
Voici mon livre de jeu:
---
- name: Sample pool playbook
hosts: bigip
connection: local
tasks:
- name: create web servers pool
bigip_pool:
name: web-servers2
lb_method: ratio-member
password: admin
user: admin
server: '{{inventory_hostname}}'
validate_certs: no
J'ai remplacé "hosts: bigip" par "hosts: all" et spécifié l'inventaire dans Tower comme "bigip" qui ne contient que les 2 hôtes que je veux changer. Cela semble fournir la sortie que je recherche.
Pour la ligne de commande "ansible-playbook", j'ai ajouté "--limit bigip" et cela semble fournir la sortie que je recherche.
Donc, les choses semblent fonctionner, je ne sais tout simplement pas s'il s'agit d'une "meilleure pratique".
Merci, Steve
Je pense que vous devez supprimer le connection: local
.
Vous avez spécifié dans hosts: bigip
que vous souhaitez que ces tâches s'exécutent uniquement sur les hôtes du groupe bigip
. Vous spécifiez ensuite connection: local
, ce qui entraîne l'exécution de la tâche sur le nœud du contrôleur (c'est-à-dire localhost), plutôt que sur les nœuds du groupe bigip
. Localhost n'est pas membre du groupe bigip
, donc aucune des tâches du jeu ne se déclenchera.