Je suis très nouveau à Ansible. J'essaie de suivre un tutoriel sur le concept des rôles dans Ansible. J'ai le Master Playbook suivant:
--- # Master Playbook for Webservers
- hosts: apacheweb
user: test
Sudo: yes
connection: ssh
roles:
- webservers
Qui fait référence au rôle webservers qui a le task/main.yml suivant:
- name: Install Apache Web Server
yum: pkg=httpd state=latest
notify: Restart HTTPD
Et un gestionnaire/main.yml:
- name: Restart HTTPD
service: name=httpd state=started
Lorsque j'exécute le Master Playbook mentionné ci-dessus, j'obtiens l'erreur suivante:
TASK [webservers : Install Apache Web Server] **********************************
fatal: [test.server.com]: FAILED! => {"changed": false, "failed": true, "msg": "The following packages have pending transactions: httpd-x86_64", "rc": 128, "results": ["The following packages have pending transactions: httpd-x86_64"]}
Je ne comprends pas à quoi correspond cette erreur. Il ne semble pas y avoir quelque chose de similaire, basé sur mes recherches, qui pourrait suggérer le problème avec la façon dont j'utilise le module Yum.
REMARQUE: version Ansible:
ansible 2.2.1.0
config file = /etc/ansible/ansible.cfg
Il semble qu'il y ait des transactions inachevées/en attente sur l'hôte cible. Essayez d'installer yum-utils
package à exécuter yum-complete-transaction
aux hôtes cibles donnant l'erreur.
# yum-complete-transaction --cleanup-only
Regardez Correction Il y a des transactions inachevées restant pour plus de détails.
yum-complete-transaction est un programme qui trouve des transactions yum incomplètes ou abandonnées sur un système et tente de les terminer. Il examine les fichiers transaction-all * et transaction-done * qui peuvent normalement être trouvés dans/var/lib/yum si une transaction yum est abandonnée au milieu de l'exécution.
S'il trouve plus d'une transaction inachevée, il tentera de terminer la plus récente en premier. Vous pouvez l'exécuter plusieurs fois pour nettoyer toutes les transactions non terminées.
Transaction inachevée restante
Sudo yum install yum-utils
yum-complete-transaction --cleanup-only
J'utilise pour ansible ce type de config pour les playbooks:
- name: Install Apache Web Server
yum: name=httpd state=latest
notify: Restart HTTPD
Pour autant que je sache, il n'existe pas d'option telle que yum: pkg=httpd
dans ansbile pour le module yum (si je ne me trompe pas, que pkg = httpd est pour apt-get sur les distributions basées sur Debian)
Si vous devez installer plusieurs packages, vous pouvez utiliser quelque chose comme:
- name: "Install httpd packages"
yum: name={{ item }} state=present
with_items:
- httpd
- httpd-devel
- httpd-tools
Bien sûr, vous pouvez changer l'état = présent en état = dernier ou quelle que soit l'option qui vous convient le mieux
http://docs.ansible.com/ansible/yum_module.html - documentation ansible pour le module yum