Amazon Linux 2
实例由 Ansible Playbook 操作,该 Playbookyum
依次执行多个任务。
为了使后续
yum
任务能够运行而不会因进程冲突而停止,需要对下面的语法进行哪些具体更改?
目前,下面的第二个yum
任务失败,因为 Ansible 不知道如何处理前面的yum
任务尚未释放yum
lockfile
.
以下是调用下面的第二个任务时记录的当前错误消息yum
:
TASK [remove any previous versions of specific stuff] ************************************************************************************************************************************
fatal: [10.1.0.232]: FAILED! => {"changed": false, "msg": "yum lockfile is held by another process"}
两个连续的yum
任务目前写成如下:
- name: Perform yum update of all packages
yum:
name: '*'
state: latest
- name: remove any previous versions of specific stuff
yum:
name: thing1, thing2, thing3, thing4, thing5, thing6
state: absent
我想解决方案只是添加一些内容,告诉 Ansible 等待第一个任务的yum
锁被释放。但是应该使用什么语法呢?
答案1
我很确定您在使用 Ansible 2.8 时遇到了这个问题,它现在在运行 YUM 包安装时会崩溃。解决这个问题的简单方法是将 var 设置lock_timeout
为 100 +,因为默认设置为 0。
- name: Install yum utils
yum:
name:
- yum-utils
- "@Development tools"
lock_timeout: 180
不幸的是,这样做的问题是,当您有很多安装 YUM 软件包的 Ansible 任务时,您需要将此 var 添加到每个任务中。我一直在寻找一种方法来在全球范围内设置它,但没有什么乐趣。希望有帮助!
链接: https://github.com/ansible/ansible/issues/57189 https://docs.ansible.com/ansible/latest/modules/yum_module.html