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