Я выполняю задачу ниже и заменяю весь контент в целевом файле на IP-адрес
---
- hosts: localhost
connection: local
tasks:
- debug: var=ansible_all_ipv4_addresses
- debug: var=ansible_default_ipv4.address
- copy: content="{{ ansible_all_ipv4_addresses }}" dest=/root/curator.yml
У меня есть переменная в curator.yml, я хочу обновить переменную {{ansible_default_ipv4.address}} на ipaddress.
---
client:
hosts:
- {{ ansible_default_ipv4.address }}
port: 9200
url_prefix:
use_ssl: False
ssl_no_validate: False
http_auth:
timeout: 30
master_only: False
logging:
loglevel: INFO
logfile:
logformat: default
blacklist: ['elasticsearch', 'urllib3']
Когда я выполняю вышеуказанную задачу playbook, она заменяет всю информацию в curator.yml на ip-адрес в выходных данных отладки
PLAY [localhost] ****************************************************************************************************************
ЗАДАЧА [Сбор фактов] ********************************************************************************************************** ok: [localhost]
TASK [отладка] ******************************************************************************************************************** хорошо: [localhost] => {"ansible_all_ipv4_addresses": ["10.0.0.5"]}
TASK [отладка] ******************************************************************************************************************** ok: [localhost] => {"ansible_default_ipv4.address": "10.0.0.5"}
ЗАДАЧА [копия] ********************************************************************************************************************* изменено: [localhost]
PLAY RECAP ***************************************************************************************************************************** localhost: ok = 4 изменено= 1 недостижимо = 0 не удалось = 0
Я также включен в задачу ниже, но похоже, что она не работает
#- name: rewrite
# vars:
# ansible_default_ipv4.address: "{{ ansible_default_ipv4.address[0] }}"
# template:
# src: templates/curator.yml.j2
# dest: /root/curator.yml