Ansible 存储变量事实
Ansible to store variable facts
在这里使用 Ansible,我正在收集有关容器的事实:
- name: start my container
lxd_container:
name: vm_srv1
state: started
register: st
- debug: msg="{{ st.addresses }}"
运行 剧本产生以下内容:
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 地址?
在您的示例中,eth0
是一个 IP 地址列表,因此要获取给定列表的第一个元素,请使用:
st.addresses.eth0[0]
在这里使用 Ansible,我正在收集有关容器的事实:
- name: start my container
lxd_container:
name: vm_srv1
state: started
register: st
- debug: msg="{{ st.addresses }}"
运行 剧本产生以下内容:
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 地址?
在您的示例中,eth0
是一个 IP 地址列表,因此要获取给定列表的第一个元素,请使用:
st.addresses.eth0[0]