Yum-Sperrdatei wird von einem anderen Benutzer gehalten

Yum-Sperrdatei wird von einem anderen Benutzer gehalten

Amazon Linux 2Instanzen werden von einem Ansible Playbook bedient, das mehrere yumAufgaben nacheinander ausführt.

Welche konkreten Änderungen müssen an der folgenden Syntax vorgenommen werden, damit die nachfolgenden yumAufgaben ausgeführt werden können, ohne aufgrund von Prozesskonflikten angehalten zu werden?

Derzeit yumschlägt die zweite Aufgabe unten fehl, da Ansible nicht weiß, wie es damit umgehen soll, dass die vorhergehende yumAufgabe das noch nicht losgelassen hat yum lockfile.

Hier ist die aktuelle Fehlermeldung, die angezeigt wird, wenn die zweite yumAufgabe 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 yumAufgaben 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 yumSperre 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_timeoutVariable 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

verwandte Informationen