查找内部查找 - ansible

问题描述 投票:1回答:1

我正在尝试使用查找插件从查找文件的查找函数中查找环境变量。

所以文件名是_hosts.txt,我希望查找函数用传递的环境变量替换ENV。

我抬头看着ansible文档进行查找,但仍无法弄清楚错误。

这是代码块:

- name: "Update the /etc/hosts file"
  blockinfile:
   block: "{{ lookup('file', ' + lookup('env', 'ENV') +_hosts.txt') }}"
   dest: "/etc/hosts"
   backup: yes

输出:

失败! => {“msg”:“模板错误,模板字符串:期望令牌',',得到'env'。字符串:{{lookup('file','+ lookup('env','ENV')+ _hosts。文本') }}”}

我知道它的语法问题,但只是无法弄清楚它是什么。

ansible
1个回答
3
投票

使用辅助变量:

- name: "Update the /etc/hosts file"
  blockinfile:
    block: "{{ lookup('file', filename) }}"
  vars:
    filename: "{{ lookup('env', 'ENV') }}_hosts.txt"

或者你可以写成一行:

block: "{{ lookup('file', lookup('env', 'ENV') + '_hosts.txt' ) }}"
© www.soinside.com 2019 - 2024. All rights reserved.