Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

399
Visualizações
Guarda múltiples paquetes usando Ansible

Estoy tratando de mantener varios paquetes usando ansible-playbook pero no funciona conmigo.

Usando el código a continuación, contiene el primer paquete, luego lo suelta y luego contiene el segundo paquete

Aquí está mi código

 - name: Prevent packages from being upgraded dpkg_selections: name: "{{ item }}" selection: hold with_items: - postgresql - docker

Aquí está la salida del lado del servidor mientras se ejecuta el código ingrese la descripción de la imagen aquí la primera línea antes de ejecutar la segunda línea es la salida cuando se retuvo el primer paquete la tercera línea cuando se retuvo el segundo paquete y se detuvo

No entiendo por qué el comportamiento es así? y ¿cómo puedo tener varios paquetes a la vez usando ansible?

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

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Ya por razones de rendimiento y recursos, proporcionar los paquetes como una lista podría ser mejor.

 - name: Prevent packages from being upgraded dpkg_selections: name: ['postgresql', 'docker'] selection: hold

Sin embargo, su prueba informó

 dpkg: error: unexpected data after package and selection

Por lo tanto, es posible que el módulo no pueda manejar listas, así que eché un vistazo a la fuente dpkg_selections.py . Parece ser un envoltorio de alguna manera simple.

 module.run_command([dpkg, '--set-selections'], data="%s %s" % (name, selection), check_rc=True)

que solo proporcionan información para un módulo. También asumo que el módulo debería funcionar with_items , pero parece que no es el caso debido a su pregunta.

De acuerdo con las páginas del manual, el comando dpkg en sí mismo parece ser capaz de manejar una lista de paquetes, pero se proporciona como un archivo de valores separados por caracteres.

 dpkg --set-selections < /tmp/pkg_list

con delimitador en el formato

 postgresql hold docker hold

Una solución sencilla podría ayudar en su caso.

 - name: Prevent packages from being upgraded shell: cmd: | dpkg --set-selections << EOF postgresql hold docker hold EOF warn: false register: result

Es posible que deba implementar algunos errores y manejo de estado por sí mismo, es decir

 changed_when: result.rc ... failed_when: result.rc ...

Gracias a

  • Cómo hacer un script de shell multilínea en Ansible
over 4 years ago · Santiago Trujillo Relatório

0

Qué pasa:

 - name: Prevent packages from being upgraded dpkg_selections: name: "{{ item }}" selection: hold loop: - postgresql - docker

En mi caso, la salida del lado del servidor después de la ejecución fue la lista completa de paquetes.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda