Ansible全球库存变量

Shi*_*ude 4 ansible ansible-playbook

我有一个变量,对于我需要从剧本中访问的每个库存都是不同的.我试过了:

[globalvars]
db=dbhost

[atlanta]
host1
host2

[boston]
host3
Run Code Online (Sandbox Code Playgroud)

我想在我的剧本中以某种方式使用"db"变量,我尝试了各种组合,但我无法从剧本中访问"db"变量.

我怎么能做到这一点?

小智 13

要定义"全局"变量,您需要将其定义为all组的变量

[all:vars]
db=dbhost

[atlanta]
host1
host2

[boston]
host3
Run Code Online (Sandbox Code Playgroud)

这被认为不是最佳做法.在ansible中,您可以group_vars在单独的目录/文件中定义,如下所示:

# file: group_vars/all
db: "dbhost"

# file: inventory/hosts
[atlanta]
host1
host2

[boston]
host3
Run Code Online (Sandbox Code Playgroud)

group_vars 是您的顶级目录(您的剧本所在的目录)中的目录,ansible将包含该剧中组的var文件.

无论如何,在这两种情况下,您都可以像{{ db }}模板/剧本一样访问变量