ansible {{}}引用变量,变量中嵌套变量如何表示

这篇博客讨论了在Ansible中如何处理跨主机调用变量的场景,特别是当变量中引用了其他变量时的处理方式。通过示例展示了如何正确设置和使用`hostvars`来获取`groups['master'][0]`主机上的变量`hash_pass`,并避免了错误的嵌套使用双大括号。内容强调了在Ansible配置文件中正确管理变量的重要性。
摘要由CSDN通过智能技术生成

在跨主机调用变量时可能会在变量中又引用另一个变量的情况

- name: get password
  shell: "cat /home/{{elastic_user}}/a"
  register: encrypt_out
  when: inventory_hostname in groups['master']

- set_fact:
    hash_pass: "{{encrypt_out.stdout}}"
  when: inventory_hostname in groups['master']

- name: modify password in internal_users.yml
  replace:
    path: "{{install_path}}/opendistro-es/opendistroforelasticsearch-1.8.0/plugins/opendistro_security/securityconfig/internal_users.yml"
    regexp: ".*hash:.+"
    #replace: '  hash: "{{hash_pass}}"'
    replace: "  hash: \"{{hostvars[groups['master'][0]]['hash_pass']}}\""

如果 最后一行写成 {{hostvars[{{groups['master'][0]}}]['hass_pass']}},是无法通过语法检查的。当有多个变量的时候,只写一个{{}}就可以了,不需要嵌套写{{}}。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值