将变量文件导入另一个

时间:2020-01-17 20:06:25

标签: ansible ansible-2.x ansible-inventory

我是新来的ansible。 我有2个变量文件,一个是全局文件,另一个是特定于环境的文件。 这是global / group_var / all.yaml文件夹中的全局文件夹:

  rel:
    deployment:
      webui:
        dockerName: "rel"
        dockerTag: "Dev_{{ travis.build_number }}"

其中一个在develop / group_var / all.yaml文件夹中

docker:
  registery: "xxxx"

有什么方法可以导入global / group_var / all.yaml进行开发/group_var/all.yaml

import global/group_var/all.yaml
docker:
  registery: "xxxx"

因此develop / group_var / all.yaml变为:

rel:
  deployment:
    webui:
      dockerName: "rel"
docker:
  registery: "xxxx"
dockerTag: "Dev_1111"

谢谢

1 个答案:

答案 0 :(得分:1)

可以将全局变量读入字典。例如

$ cat develop/group_var/all.yaml
global: "{{ lookup('file', 'global/group_var/all.yaml')|from_yaml }}"
docker:
  registery: "xxxx"

剧本

- hosts: localhost
  tasks:
    - include_vars: develop/group_var/all.yaml
    - debug:
        var: global
    - debug:
        var: docker

给予

    "global": {
        "rel": {
            "deployment": {
                "webui": {
                    "dockerName": "rel"
                }
            }
        }
    }

    "docker": {
        "registery": "xxxx"
    }