Задача, которую можно получить, чтобы получить IP-адрес localhost и заменить в целевом файле значение - PullRequest
0 голосов
/ 29 ноября 2018

Я выполняю задачу ниже и заменяю весь контент в целевом файле на 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

1 Ответ

0 голосов
/ 30 ноября 2018

Есть проблемы с вашими задачами копирования и шаблона:

  1. Копировать задачу - так как вы используете параметр content, он "установит содержимое файла прямо в указанноезначение " copy_module

  2. Задача шаблона - Вы не можете определять / обновлять переменные (или даже set_fact) с помощью. (" точка "), и вы не делаетедаже нужно, так как переменная ansible_default_ipv4.address уже определена и значение установлено.

Это будет работать:

---
- name: Update ip
  hosts: 127.0.0.1
  connection: local
  tasks:
    - debug: var=ansible_all_ipv4_addresses
    - debug: var=ansible_default_ipv4.address
    - name: Template file with ip
      template:
        src: templates/curator.yml.j2
        dest: /root/curator.yml
...
...