es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mantener varios paquetes utilizando Ansible

Estoy intentando mantener múltiples paquetes usando ansible-playbook pero no me funciona.

Utilizando el código siguiente se mantiene el primer paquete y luego se deshace para mantener el segundo paquete.

Este es mi código:

  • name: Prevenir que los paquetes sean actualizados
    dpkg_selections:
    name: “{{ item }}”
    selection: hold
    with_items:

    • postgresql
    • docker

Este es el resultado del servidor mientras se está ejecutando el código:

La primera línea antes de ejecutar
La segunda línea es el resultado cuando se mantuvo el primer paquete
La tercera línea cuando se mantuvo el segundo paquete y se detuvo.

No entiendo por qué el comportamiento es así y ¿cómo puedo mantener varios paquetes al mismo tiempo usando ansible?

NOTA: Ya seguí las instrucciones del documento de Ansible https://docs.ansible.com/ansible/latest/collections/ansible/builtin/dpkg_selections_module.html
Gracias de antemano.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Ansible y Mantenimiento de Múltiples Paquetes

    Si estás intentando mantener múltiples paquetes utilizando Ansible-playbook pero no funciona, puede deberse a la forma en que Ansible maneja los loops. En este caso, el código parece mantener el primer paquete, luego desmantenerlo y después mantener el segundo paquete. Este no es el comportamiento deseado.

    Una forma de mantener múltiples paquetes a la vez es utilizar una lista de diccionarios, donde cada diccionario contiene el nombre del paquete y su estado deseado. Esto se puede lograr utilizando el siguiente código:

    - name: Prevenir que los paquetes se actualicen
      dpkg_selections:
        name: "{{ item.name }}"
        selection: "{{ item.state }}"
      with_items:
        - { name: 'postgresql', state: 'hold' }
        - { name: 'docker', state: 'hold' }
    

    Este código crea una lista de diccionarios utilizando el loop with_items, donde cada diccionario contiene el nombre del paquete y su estado deseado. El módulo dpkg_selections se utiliza para establecer el estado de cada paquete en hold.

    Si deseas retirar el mantenimiento en uno o más paquetes, puedes cambiar el valor state en el diccionario correspondiente a install. Esto retirará el mantenimiento del paquete y permitirá su actualización.

    Utilizar una lista de diccionarios es una forma más flexible de manejar múltiples paquetes en Ansible. Te permite definir el estado de cada paquete individualmente y modificar fácilmente la lista según sea necesario.

Comments are closed.