yum 锁文件被另一个用户持有

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_timeoutvar设置为 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