Amazon Linux 2
Instanzen werden von einem Ansible Playbook bedient, das mehrere yum
Aufgaben nacheinander ausführt.
Welche konkreten Änderungen müssen an der folgenden Syntax vorgenommen werden, damit die nachfolgenden
yum
Aufgaben ausgeführt werden können, ohne aufgrund von Prozesskonflikten angehalten zu werden?
Derzeit yum
schlägt die zweite Aufgabe unten fehl, da Ansible nicht weiß, wie es damit umgehen soll, dass die vorhergehende yum
Aufgabe das noch nicht losgelassen hat yum
lockfile
.
Hier ist die aktuelle Fehlermeldung, die angezeigt wird, wenn die zweite yum
Aufgabe unten aufgerufen wird:
TASK [remove any previous versions of specific stuff] ************************************************************************************************************************************
fatal: [10.1.0.232]: FAILED! => {"changed": false, "msg": "yum lockfile is held by another process"}
Die beiden aufeinander folgenden yum
Aufgaben lauten derzeit wie folgt:
- 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
Ich stelle mir vor, dass die Lösung einfach darin besteht, etwas hinzuzufügen, das Ansible anweist, zu warten, bis die yum
Sperre der ersten Aufgabe freigegeben wurde. Aber welche Syntax sollte dafür verwendet werden?
Antwort1
Ich bin ziemlich sicher, dass Sie bei der Verwendung von Ansible 2.8 auf dieses Problem stoßen. Es will jetzt explodieren, wenn YUM-Paketinstallationen ausgeführt werden. Eine einfache Lösung besteht darin, die lock_timeout
Variable auf 100 + zu setzen, da der Standardwert auf 0 eingestellt ist.
- name: Install yum utils
yum:
name:
- yum-utils
- "@Development tools"
lock_timeout: 180
Das Problem dabei ist leider, dass Sie diese Variable zu jeder einzelnen Aufgabe hinzufügen müssen, wenn Sie viele Ansible-Aufgaben haben, die YUM-Pakete installieren. Ich habe nach einer Möglichkeit gesucht, dies irgendwie global festzulegen, aber ohne Erfolg. Hoffe, das hilft!
Links: https://github.com/ansible/ansible/issues/57189 https://docs.ansible.com/ansible/latest/modules/yum_module.html