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.

Ansible cómo instalar un paquete solo si no está instalada la misma versión.

Estoy tratando de verificar la versión existente del paquete y ejecutar la tarea de instalación si aún no se ha instalado la misma versión.

A continuación se muestra el código que estoy intentando.

- nombre: Verificar la instalación de mono existente
  comando: "mono --version"
  registrar: currentmono
  ignorarerrores: cierto

nombre: Ejecutando "hacer la instalación" de Mono
comando: hacer la instalación
args: 
chdir: "{{monoinstalldir}}"
convertirse en: sí
cuando: "monoversion|string no está en currentmono.stdout"

La primera vez fallará porque no habrá una salida estándar en la variable current_mono.

¿Cómo lograr esto al ejecutarlo por primera vez?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Puede utilizar el filtro default para establecer un valor predeterminado para la variable current_mono.stdout si no está configurada. Esto permitirá que la condición when se evalúe como true la primera vez que se ejecuta la tarea.

    - name: Verificar la instalación actual de Mono
      command: "mono --version"
      register: current_mono
      ignore_errors: true
    
    - name: Ejecutar "make install" para Mono
      command: make install
      args: 
        chdir: "{{ mono_install_dir }}"
      become: yes
      when: "mono_version|string not in current_mono.stdout|default([])"
    

Comments are closed.