【问题标题】:Ansible to store variable factsAnsible 存储可变事实
【发布时间】:2017-01-19 13:47:44
【问题描述】:

在这里使用 Ansible,我正在收集有关容器的事实:

   - name: start my container 
      lxd_container:
        name: vm_srv1
        state: started
      register: st
    - debug: msg="{{ st.addresses }}"

运行 playbook 会产生以下结果:

TASK [manager : debug] *********************************************************
ok: [lxc.myvmhost ] => {
    "msg": {
        "eth0": [
            "10.0.3.103"
        ]
    }
}

我想将 eth0 值存储到文件中

我已经添加了

- debug: msg="{{ st.addresses['eth0'] }}"

输出:

TASK [manager : debug] *********************************************************
ok: [lxc.myvmhost ] => {
    "msg": [
        "10.0.3.103"
    ]
}

将输出存储到文件时

- lineinfile: dest=/tmp/file line="{{ st.addresses.eth0 }}"

我得到以下信息:

Hello world
['10.0.3.103']

如何在没有 Ansible 添加的任何有趣的装袋的情况下存储 IP 地址?

【问题讨论】:

    标签: ansible ansible-facts


    【解决方案1】:

    在您的示例中,eth0 是一个 IP 地址列表,因此要获取给定列表的第一个元素,请使用:

    st.addresses.eth0[0]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      相关资源
      最近更新 更多