Amazon Linux 2
Las instancias son operadas por un Ansible Playbook que realiza múltiples yum
tareas una tras otra.
¿Qué cambios específicos se deben realizar en la sintaxis siguiente para que las
yum
tareas sucesivas se ejecuten sin detenerse debido a conflictos de proceso?
Actualmente, la segunda yum
tarea a continuación falla porque Ansible no sabe cómo manejar el hecho de escuchar que la yum
tarea anterior aún no ha abandonado el archivo yum
lockfile
.
Aquí está el mensaje de error actual que se presenta cuando yum
se llama a la segunda tarea a continuación:
TASK [remove any previous versions of specific stuff] ************************************************************************************************************************************
fatal: [10.1.0.232]: FAILED! => {"changed": false, "msg": "yum lockfile is held by another process"}
Las dos yum
tareas sucesivas están actualmente escritas de la siguiente manera:
- 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
Me imagino que la solución es simplemente agregar algo que le indique a Ansible que espere hasta que yum
se libere el bloqueo de la primera tarea. Pero, ¿qué sintaxis debería usarse para esto?
Respuesta1
Estoy bastante seguro de que te encuentras con este problema al usar Ansible 2.8, quiere explotar ahora cuando ejecutas las instalaciones del paquete YUM. Una solución fácil para esto es establecer la lock_timeout
var en 100+ ya que el valor predeterminado está establecido en 0.
- name: Install yum utils
yum:
name:
- yum-utils
- "@Development tools"
lock_timeout: 180
Desafortunadamente, el problema con esto es que cuando tienes muchas tareas de Ansible que instalan paquetes YUM, debes agregar esta var a cada tarea. He estado buscando una manera de configurar esto globalmente de alguna manera, pero no me alegro. ¡Espero que ayude!
Enlaces: https://github.com/ansible/ansible/issues/57189 https://docs.ansible.com/ansible/latest/modules/yum_module.html