ansible 打印调试消息变量

ansible 打印调试消息变量

我尝试mosh_version使用 ansibledebug msg命令打印先前注册的变量,如下所示:

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

它不起作用并打印以下错误:

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 }}"

我试过

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

但这只会打印“Mosh”。

让它运行起来的最佳方法是什么?

答案1

尝试这个:

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

更多信息http://docs.ansible.com/YAMLSyntax.html#gotchas

编辑:这样的事情对我来说很完美:

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

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

http://pastie.org/private/cgeqjucn3l5kxhkkyhtpta

答案2

最简单的答案

- debug: var=mosh_version.stdout

答案3

我已经在同一个调试程序中显示了变量和消息。

Ansible 任务

- name: Report the /boot/initramfs file status for latest installed kernel
  debug:
    msg: "{{ ansible_hostname }} =  {{INITRAMFS_LAST_KERNEL.stdout}}"
    

输出

TASK [os-upgrade.linux : Report the /boot/initramfs file status for latest installed kernel] *******************************************
ok: [ANSIBLENODE] => {
    "msg": "ANSIBLENODE =  /boot/initramfs-3.10.0-1062.12.1.el7.x86_64.img"
}

答案4

每当我在 Ansible 字符串/cmds 中遇到特殊字符问题时,我都会这样做:

  1. 用单引号括起来
  2. 用双花括号括起来

所以你的标准结肠变成{{':'}}

你的任务就变成:

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

同样,这适用于大多数特殊字符,甚至字符串。考虑以下内容:

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

为了在 Ansible 中运行它,只需应用相同的逻辑,以下任务将按预期执行:

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

相关内容