Imprime saída de depuração Ansible sem aspas / escapes

1

Eu preciso saber se existe uma maneira de imprimir informações de um playbook ansible que não causa ansible para citar e escapar automaticamente da string. Por exemplo, estou usando ansible para construir um comando que deve ser executado separadamente de uma máquina diferente (irônico, eu sei, mas necessário de qualquer forma). Atualmente, a saída parece algo como ...

"command" = "run_me.sh \"with this argument\""

O que eu preciso é algo como ...

"command" = run_me.sh "with this argument"

ou apenas ...

run_me.sh "with this argument" 

se possível, mas acho que é pedir demais.

Atualmente, estou usando set_fact para criar o comando e depurar para imprimi-lo.

    
por smokes2345 04.04.2017 / 15:54

1 resposta

1

Você pode escrever seu próprio plug-in de retorno de chamada padrão ou usar alguns desses truques:

---
- hosts: localhost
  gather_facts: no
  tasks:

    # Print as loop item
    - name: Print command as loop item
      set_fact:
        dummy: value # Just to make some task without output
      with_items:
        - 'Execute this: run_me.sh "with this argument"'

    # Print as task title
    # Not suitable for different commands per host, because task title is common for all hosts
    - name: 'Execute this: run_me.sh "with this argument"'
      debug:
        msg: Execute command from task title

    # Print as pause statement
    # Not suitable for different commands per host, because pause task skips host loop (forced run_once:yes)
    - name: Print command as pause statment
      pause:
        prompt: 'Execute this and press enter: run_me.sh "with this argument"'

Saída:

TASK [Print command as loop item] **********************************************
ok: [localhost] => (item=Execute this: run_me.sh "with this argument")

TASK [Execute this: run_me.sh "with this argument"] ****************************
ok: [localhost] => {
    "msg": "Execute command from task title"
}

TASK [Print command as pause statment] *****************************************
[Print command as pause statment]
Execute this and press enter: run_me.sh "with this argument":
ok: [localhost]
    
por 05.04.2017 / 08:20

Tags