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.

¿Cómo incluir caracteres especiales en el módulo ‘when’?

La variable error_code contiene la siguiente cadena:

“failed”: true

¿Cómo puedo usar esta cadena como desencadenante para el módulo ‘when’? No estoy seguro cómo escapar estos caracteres especiales para que el playbook los interprete correctamente. Esto es lo que he intentado pero no funciona:

- name: copiando index
copy:
src: /tmp/index.html
dest: /var/www/html/
notify: reloadone
register: error_code
- name: verificar contenido
fail:
msg: Ha ocurrido un error con el archivo index
when: " \"failed\": true in error_code"
handlers:
- name: reloadone
systemd:
state: restarted
name: httpd

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para utilizar la cadena como disparador del módulo ‘when’, puedes utilizar la siguiente sintaxis:

    when: '"failed": true in error_code.stderr'
    

    Esto verificará si la cadena "failed": true está presente en la salida ‘stderr’ del módulo ‘copy’, que fue registrado como ‘error_code’. Ten en cuenta que la cadena debe estar encerrada entre comillas simples y las comillas dobles dentro de la cadena deben escaparse con una barra invertida.

    Por lo tanto, el playbook actualizado sería:

    - name: copiar índice
      copy: 
        src: /tmp/index.html
        dest: /var/www/html/
      notify: reloadone
      register: error_code
    
    - name: verificar contenido
      fail:
        msg: Ha ocurrido un error con el archivo de índice
      when: '"failed": true in error_code.stderr'
    
    handlers:
    - name: reloadone
      systemd:
        state: restarted
        name: httpd
    

Comments are closed.