我正在执行以下任务,并将目标文件中的全部内容替换为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中有变量,我想用IP地址更新变量{{ansible_default_ipv4.address}}。
---
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']
当我执行上述剧本任务时,它会将debugator输出中的ip地址替换为curator.yml中的全部信息
PLAY [本地主机] *********************************************** ****************************************************** *******************
任务[聚会事实] ********************************************** ****************************************************** ************** 好的:[localhost]
任务[调试] *********************************************** ****************************************************** *********************** 好的:[localhost] => { “ ansible_all_ipv4_addresses”:[ “ 10.0.0.5” ] }
任务[调试] *********************************************** ****************************************************** *********************** 好的:[localhost] => { “ ansible_default_ipv4.address”:“ 10.0.0.5” }
任务[副本] *********************************************** ****************************************************** ************************ 更改为:[localhost]
PLAY RECAP ********************************************* ****************************************************** *********************** 本地主机: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
答案 0 :(得分:0)
复制和模板任务有问题:
复制任务-使用content
参数时,它将“将文件内容直接设置为指定值” copy_module
模板任务-您无法使用。(“。dot”)表示法定义/更新vars(甚至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
...