Ansible Yum模块挂起事务错误

Ansible Yum模块挂起事务错误,ansible,yum,Ansible,Yum,我对Ansible很陌生。 我正试图学习Ansible中角色概念的教程。 我有以下主要剧本: --- # Master Playbook for Webservers - hosts: apacheweb user: test sudo: yes connection: ssh roles: - webservers 指具有以下任务/main.yml的Web服务器角色: 和一个handler/main.yml: 当我执行上面提到的主剧本时,我得到以下错误: TASK [

我对Ansible很陌生。 我正试图学习Ansible中角色概念的教程。 我有以下主要剧本:

--- # Master Playbook for Webservers
- hosts: apacheweb
  user: test
  sudo: yes
  connection: ssh
  roles:
    - webservers
指具有以下任务/main.yml的Web服务器角色:

和一个handler/main.yml:

当我执行上面提到的主剧本时,我得到以下错误:

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"]}
我无法理解这个错误对应的是什么。根据我的研究,似乎没有任何类似的情况表明我使用Yum模块的方式存在问题

注:Ansible版本:

ansible 2.2.1.0
  config file = /etc/ansible/ansible.cfg

我正在为ansible使用剧本的这种配置:

- name: Install Apache Web Server
  yum: name=httpd state=latest
  notify: Restart HTTPD
据我所知,在用于yum模块的ansbile中没有类似于
yum:pkg=httpd
的选项(如果我没有记错的话,pkg=httpd是用于apt-get-on-debian-based发行版)

如果您需要安装多个软件包,可以使用以下方法:

- name: "Install httpd packages"
  yum: name={{ item }} state=present
  with_items:
    - httpd
    - httpd-devel
    - httpd-tools
当然,您可以将状态=当前更改为状态=最新或任何最适合您的选项


-用于yum模块的ansible文档

目标主机上似乎有未完成/挂起的事务。 尝试安装
yum-utils
程序包,以便向出现错误的目标主机运行
yum-complete-transaction

# yum-complete-transaction --cleanup-only
有关更多详细信息,请参阅剩余部分

yum complete transaction是一个发现不完整或错误的程序 已中止系统上的yum事务并尝试完成它们。信息技术 查看事务所有*和事务完成*文件,这些文件可以 如果在中中止了某个yum事务,则通常会在/var/lib/yum中找到 执行中

如果发现多个未完成的事务,它将尝试 首先完成最近的一个。您可以多次运行它以 清理所有未完成的事务


剩余未完成的事务

sudo-yum安装yum-utils


yum complete transaction--cleanup only

谢谢,我明白了。我将pkg更改为name,但仍然得到相同的错误:以下包具有挂起的事务:httpd-x86_64”,“rcManually在ssh shell上执行:yum complete transaction--cleanup only。在完成软件包问题(如未完成安装的软件包)之前,您将无法使用ansible安装软件包。谢谢,就是这样!Chearsalso,如果您没有足够的磁盘空间来完成事务,我可以将
yum install pacakge name
作为一个shell任务专门执行,而不会出现此错误。+1用于包含
yum install yum utils
,因为接受的答案只是说yum complete transactions不是命令:)
- name: "Install httpd packages"
  yum: name={{ item }} state=present
  with_items:
    - httpd
    - httpd-devel
    - httpd-tools
# yum-complete-transaction --cleanup-only