代码之家  ›  专栏  ›  技术社区  ›  Red Cricket

将调试模块与ansible控制台结合使用

  •  0
  • Red Cricket  · 技术社区  · 4 年前

    我正在尝试了解如何使用 debug 模块,带有 ansible-console . 我开始 易操作控制台 这样地:

    bash-3.2$ ansible-console -i ,localhost --connection=local
    

    然后我从我的 /etc/ansible/facts.d 就像这样:

    red@all (1)[f:5]$ setup
    ...
    

    然后我输出我的事实值,如下所示:

    red@all (1)[f:5]$ shell echo "{{ ansible_facts.ansible_local.decomm.list1[3] }}"
    

    其输出:

    localhost | CHANGED | rc=0 >>
    XXXX
    

    但当我尝试使用 调试 模块如下:

    red@all (1)[f:5]$ debug msg "{{ ansible_facts.ansible_local.decomm.list1[3] }}" 
    

    我得到了这个意外的输出:

    localhost | SUCCESS => {
        "msg": "Hello world!"
    }
    

    为什么我没有得到这个输出?

    localhost | SUCCESS => {
        "msg": "XXXX"
    }
    
    1 回复  |  直到 4 年前
        1
  •  1
  •   flowerysong    4 年前

    你错过了一个 = . shell 接受它执行的自由形式字符串,而大多数模块都期望结构化参数。“你好,世界!”是的结果 debug 没有参数的操作。

    red@all (1)[f:5]$ debug msg="{{ ansible_facts.ansible_local.decomm.list1[3] }}"