2016-12-29 1 views
0

HOSTS ansible 2.1.2.0ansible code de retour 0 pour l'action, mais encore obtenir PLUS DE GAUCHE

- name: Ensure/Install pre-requisite packages (RedHat) 
    yum: 
    name: "{{ item }}" 
    state: installed 
    update_cache: yes 
    with_items: 
    - 'pygpgme' 
    - 'yum-utils' 
    - 'python-pip' 
    - 'facter' 

Quand je suis en mon plabook, il erreurs même lorsque l'état de retour/code rc est et si j'allume le débogage (-vvv), l'ensemble ok: ... sortie est de couleur verte (au lieu de couleur rouge qui est pour une étape/action échoué).

Questions:

  1. Pourquoi ai-je cette erreur NO MORE HOSTS LEFT, quand "rc": 0 et toute la couleur de sortie vient en vert pour localhost. Tous les paquets sont déjà installés. Voir la sortie en bas.

  2. Comment puis-je faire dans Ansible (si possible sans utiliser command/modules shell) sudo yum-complete-transaction --cleanup-only, est-ce possible via le module yum (si possible dans cette même action yum je dans mon livre de jeu)?

Alors, pour y remédier, j'ai aussi essayé de courir yum pour installer des paquets/en attente à la ligne de commande (et il n'y voit rien à faire que tout est à jour):

$ sudo yum install yum-utils pygpgme python-pip facter 
Loaded plugins: fastestmirror 
Loading mirror speeds from cached hostfile 
* base: centos.mirrors.hoobly.com 
* epel: mirrors.cat.pdx.edu 
* extras: mirror.spro.net 
* updates: mirror.tocici.com 
Package yum-utils-1.1.31-40.el7.noarch already installed and latest version 
Package pygpgme-0.3-9.el7.x86_64 already installed and latest version 
Package python2-pip-8.1.2-5.el7.noarch already installed and latest version 
Package facter-2.4.1-1.el7.x86_64 already installed and latest version 
Nothing to do 

Re- a couru le playbook ansible et il a encore erré avec le même problème.

TASK [company.company-ansible : Ensure/Install pre-requisite packages (RedHat)] *** 
task path: /home/vagrant/aks/ansible/tasks/yum_install.yml:3 
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: vagrant 
<localhost> EXEC /bin/sh -c '(umask 77 && mkdir -p "` echo $HOME/.ansible/tmp/ansible-tmp-1483049236.46-121920804274438 `" && echo ansible-tmp-1483049236.46-121920804274438="` echo $HOME/.ansible/tmp/ansible-tmp-1483049236.46-121920804274438 `") && sleep 0' 
<localhost> PUT /tmp/tmpxzRchU TO /home/vagrant/.ansible/tmp/ansible-tmp-1483049236.46-121920804274438/yum 
<localhost> EXEC /bin/sh -c 'chmod u+x /home/vagrant/.ansible/tmp/ansible-tmp-1483049236.46-121920804274438/ /home/vagrant/.ansible/tmp/ansible-tmp-1483049236.46-121920804274438/yum && sleep 0' 
<localhost> EXEC /bin/sh -c 'sudo -H -S -n -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-bteisecjvsnsqhbbsohdrpswvjynpydi; LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 /usr/bin/python /home/vagrant/.ansible/tmp/ansible-tmp-1483049236.46-121920804274438/yum; rm -rf "/home/vagrant/.ansible/tmp/ansible-tmp-1483049236.46-121920804274438/" > /dev/null 2>&1'"'"' && sleep 0' 
ok: [localhost] => (item=[u'pygpgme', u'yum-utils', u'python-pip', u'facter']) => {"changed": false, "failed": true, "invocation": {"module_args": {"conf_file": null, "disable_gpg_check": false, "disablerepo": null, "enablerepo": null, "exclude": null, "install_repoquery": true, "list": null, "name": ["pygpgme", "yum-utils", "python-pip", "facter"], "state": "installed", "update_cache": true, "validate_certs": true}, "module_name": "yum"}, "item": ["pygpgme", "yum-utils", "python-pip", "facter"], "msg": "The following packages have pending transactions: python2-pip-noarch", "rc": 0, "results": ["pygpgme-0.3-9.el7.x86_64 providing pygpgme is already installed", "yum-utils-1.1.31-40.el7.noarch providing yum-utils is already installed"]} 

NO MORE HOSTS LEFT ************************************************************* 
    to retry, use: --limit @/home/vagrant/aks/ansible/company-ansible.retry 

PLAY RECAP ********************************************************************* 
localhost     : ok=1 changed=0 unreachable=0 failed=1 

Répondre

0

Il semble que le module de yum Ansible ne supporte pas que 2 balles 2. Donc, je devais utiliser le module command (dont je ne préférant utiliser plus tôt) car cela résoudre l'erreur.

- name: Yum complete transaction cleanup only 
    command: sudo yum-complete-transaction --cleanup-only 

ou mieux utiliser,

- name: Yum complete transaction cleanup only 
    command: yum-complete-transaction --cleanup-only 
    become_user: root 

encore, la question 1 est laissé sans réponse pourquoi quand rc = 0/sortie est de couleur verte, puis ansible action Playbook a échoué.

+0

Si je me souviens bien, "NO MORE HOSTS LEFT" était un bug qui a été corrigé dans Ansible 2.1.3. –