Cod*_*Med 3 yum amazon-ec2 ansible aws amazon-linux
Amazon Linux 2
实例由 Ansible Playbook 操作,该手册一个接一个地执行多个yum
任务。
需要对下面的语法进行哪些具体更改才能使后续
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"}
Run Code Online (Sandbox Code Playgroud)
两个连续的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
Run Code Online (Sandbox Code Playgroud)
我想解决方案只是添加一些东西告诉 Ansible 等待第一个任务的yum
锁被释放。但是应该使用什么语法呢?
小智 5
我很确定你在使用 Ansible 2.8 时遇到了这个问题,现在运行 YUM 包安装时它会爆炸。解决这个问题的简单方法是将lock_timeout
var设置为 100 +,因为默认设置为 0。
- name: Install yum utils
yum:
name:
- yum-utils
- "@Development tools"
lock_timeout: 180
Run Code Online (Sandbox Code Playgroud)
不幸的是,这样做的麻烦在于,当您有很多安装 YUM 包的 Ansible 任务时,您需要将此变量添加到每个任务中。我一直在寻找一种方法来在全球范围内设置此方法,但没有任何乐趣。希望有帮助!
链接:https : //github.com/ansible/ansible/issues/57189 https://docs.ansible.com/ansible/latest/modules/yum_module.html