web-dev-qa-db-fra.com

Ansible Yum Erreur de transaction en attente du module

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
14
SSF

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.

27
gile

Transaction inachevée restante

Sudo yum install yum-utils

yum-complete-transaction --cleanup-only

1
ZeroDeth

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

0
Bogdan Stoica