有没有办法将复杂的(嵌套的)变量放入无库存

时间:2019-09-07 14:44:41

标签: ansible inventory ansible-inventory

我有一个代理环境变量

proxy_env:
    http_proxy: myproxy
    https_proxy: myproxy
    ftp_proxy: myproxy
    no_proxy: localhost,127.0.0.1
    proxy_host: myproxy
    proxy_port: 80

现在,我想在不需要代理的机器上部署相同的东西(因此,我想在清单中移动此变量)。

但是,如果我只移动清单中的块

[machinegroup:vars]
proxy_env:
    http_proxy: myproxy
    https_proxy: myproxy
    ftp_proxy: myproxy
    no_proxy: localhost,127.0.0.1
    proxy_host: myproxy
    proxy_port: 80

我收到一个错误:“无法解析广告资源...”

如果我将其放在一行中,也不会考虑...

proxy_env http_proxy=myproxy ..

谢谢!

1 个答案:

答案 0 :(得分:1)

  

问:有没有办法将嵌套变量放入ansible库存中?

A:是的。它是。使用YAML格式。

all:
    hosts:
        test1:
        test2:
            proxy_env:
                http_proxy: myproxy
                https_proxy: myproxy
                ftp_proxy: myproxy
                no_proxy: localhost,127.0.0.1
                proxy_host: myproxy
                proxy_port: 80


INI格式也是可能的,但在这种情况下不是很实用。

test2 proxy_env={{http_proxy: myproxy},{https_proxy: myproxy}, ... }