Ansible查找文件插件,文件内含变量

时间:2019-02-26 12:17:48

标签: ansible ansible-2.x

嗨,

经过几天的挣扎,我决定在这里写下我的问题。

我有一个ansible(2.7)任务,该任务只有一个变量,该变量指向使用文件查找插件的主机变量。

对于一台主机,这是可行的,但是我有6台主机,其中查找文件中的值对于每台主机都应该是不同的。

您可以在查找的文件内传递变量吗?

我是ansible的新手,没有完全掌握它。

以前有人遇到过吗?

Task:

- name: Copy the file to its directory
  template:
    src: file.conf
    dest: /path/to/file
  vars:
    file_contents: "{{file_configuration}}"

-----
hostvar file:

file_configuration: 
  - "{{lookup('file', './path/to/file') | from_yaml}}"

----
file that is looked up:

name: {{ value that should be different per host }}
    driver:
      long_name: unchanged value.

1 个答案:

答案 0 :(得分:0)

您应该有6个host_vars文件,每个主机一个。在该host_var文件中,设置所需的值。

Ansible documentation is here

例如

https://imgur.com/a/JCbnNBT

host1.yml的内容

---
my_value: something

host2.yml的内容

---
my_value: else

Ansible自动看到host_var文件夹。它会在该文件夹中查找并搜索与剧本中的主机完全匹配的文件。 因此,请确保您的host_var / 文件名 .yml与您播放中的主机名匹配!

如果存在匹配项,则它将对该特定主机使用该.yml文件。