web-dev-qa-db-fra.com

Comment corriger les erreurs "Impossible de faire correspondre le modèle d'hôte fourni, en ignorant: bigip", fonctionne dans Ansible, NOT Tower

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
3
Steve J

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

1
Steve J

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.

0
clockworknet