从另一个文件中获取vars

时间:2019-08-06 15:06:16

标签: variables ansible

我想知道使我能够检索文件内容并使用它在新文件中创建变量的语法

在我的示例中,我有我的YAML配置文件,并且有一个VARIABLE文件,我不知道如何获取第一行并将其设置为第一个文件中的变量

########## config.yml ############
---
- hosts: my-computer
  remote_user: toto
  tasks:

-vars:
   - my-first-vars: {{ THIS IS VARS }}

- name: "config host"
   lineinfile:
   path: /etc/file.cfg
   regexp: '(.*)this_to_change_with_vars(.*)'
   line: '{{ my-first-vars }}'

```########### file.vars #########

THIS IS VARS : 10.10.10.10
THIS IS OTHER VARS: 10.10.9.9

2 个答案:

答案 0 :(得分:0)

您也可以使用vars_files

例如

- hosts: my-computer
  remote_user: toto
  vars_files: 
    - file.vars
  tasks:
    - name: "config host"
      lineinfile:
      path: /etc/file.cfg
      regexp: '(.*)this_to_change_with_vars(.*)'
      line: '{{ my-first-vars }}'

,然后在您的file.vars中直接将您的var添加为

my-first-vars: 10.10.10.10

参考:https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#defining-variables-in-files

答案 1 :(得分:0)

这可能是使用templates的好时机:

- name: config host
  template:
    src: template/file.cfg.j2
    dest: /etc/file.cfg
    mode: 0644

文件file.cfg.j2应该是您要在dest路径下复制的文件的副本。您的变量位于j2文件中,可以在每次交互时进行更改。

示例:

vi file.cfg.j2

my cfg file
{{ my-first-vars }}