it-swarm.com.de

ansible print debug msg variable

Ich versuche das zuvor registrierte mosh_version Variable mit dem ansible debug msg Befehl wie folgt:

- name: Print mosh version
  debug: msg="Mosh Version: {{ mosh_version.stdout }}"

Es funktioniert nicht und gibt den folgenden Fehler aus:

Note: The error may actually appear before this position: line 55, column 27

- name: Print mosh version
  debug: msg="Mosh Version: {{ mosh_version.stdout }}"
                          ^
We could be wrong, but this one looks like it might be an issue with
missing quotes.  Always quote template expression brackets when they
start a value. For instance:

    with_items:
      - {{ foo }}

Should be written as:

    with_items:
      - "{{ foo }}"

Ich habe es versucht

- name: Print mosh version
  debug: msg=Mosh Version: "{{ mosh_version.stdout }}"

aber dies wird nur "Mosh" drucken.

Was ist der beste Weg, um dies zum Laufen zu bringen?

17
Zulakis

Versuche dies:

- name: Print mosh version
  debug: "msg=Mosh Version: '{{ mosh_version.stdout }}'"

Weitere Informationen unter http://docs.ansible.com/YAMLSyntax.html#gotchas

Bearbeitet: So etwas funktioniert perfekt für mich:

- name: Check Ansible version
  command: ansible --version
  register: ansibleVersion

- name: Print version
  debug:
    msg: "Ansible Version: {{ ansibleVersion.stdout }}"

http://pastie.org/private/cgeqjucn3l5kxhkkyhtpta

25
Tom Aac

Einfachste Antwort

- debug: var=mosh_version.stdout
7
xddsg

Entfernen Sie einfach den Doppelpunkt

debug: msg="Mosh Version {{ mosh_version.stdout }}"
1
remintz

Ich benutze dies, beachte die Position von doppelten Anführungszeichen (") und einfachen Anführungszeichen (')

- name: Print mosh version
  debug: "msg='Mosh Version: {{ mosh_version.stdout }}'"
0
checksum

Immer wenn ich Probleme mit Sonderzeichen in Ansible-Zeichenfolgen/cmds habe, mache ich Folgendes:

  1. Mit einfachen Anführungszeichen umschließen
  2. Mit doppelten geschweiften Klammern umwickeln

Ihr Standard-Doppelpunkt wird also zu {{':'}}

Und Ihre Aufgabe wird:

- debug: msg="Ansible Version{{':'}} {{ ansibleVersion.stdout }}"

Auch dies funktioniert für die meisten Sonderzeichen, sogar für Zeichenfolgen. Folgendes berücksichtigen:

docker ps --format '{{.Names}}'

Um dies in Ansible auszuführen, wenden Sie einfach dieselbe Logik an. Die folgende Aufgabe wird wie erwartet ausgeführt:

- name: Get the docker container names
  become: yes
  Shell: "docker ps --format '{{'{{'}}.Names{{'}}'}}'"
  register: docker_containers
0
Collin Cudd