#ansible #ansible-facts
#ansible #ansible-факты
Вопрос:
Используя 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']
Как я могу сохранить IP-адрес без каких-либо забавных вложений, которые добавляет Ansible?
Ответ №1:
В вашем примере eth0
это список ip-адресов, поэтому для извлечения первого элемента данного списка используйте:
st.addresses.eth0[0]