首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置中的攻略变量

配置中的攻略变量
EN

Stack Overflow用户
提问于 2019-09-06 03:58:54
回答 1查看 131关注 0票数 0

我想将一个变量传递给特定系统上的任何剧本。目前,这是在命令行上完成的:

代码语言:javascript
复制
amos@sandbox $ ansible-playbook -e 'working_env=sandbox' playbooks/foo.yml

working_env变量将确定用户在该环境中的系统上执行的操作。我们用来启动playbooks的每个系统都在/etc/profile中为每个人设置了一个环境变量。

代码语言:javascript
复制
amos@sandbox $ echo $WORKING_ENV
sandbox

我想使用该变量的值来填充ansible的"working_env“变量。我们缺少一个静态清单文件,因为主机在名称和编号上进行自动缩放和漫游。因此,我不能轻松地将其包括在清单中,尽管我会感兴趣的是,如果可以在静态清单文件中为所有主机执行此操作,我没有找到任何类似all的引用: ansible清单的vars,并且它和一些变体不起作用。我们有一个静态的ansible.cfg文件,可以在这里引入一个playbook变量吗?

我的目标是:

代码语言:javascript
复制
amos@sandbox $ ansible-playbook playbooks/foo.yml

运行与第一个示例相同的代码,避免变量赋值时出现输入错误。

我找到的最好的设置是:

代码语言:javascript
复制
vars:
  working_env:  "{{ lookup('env','WORKING_ENV') }}"

在每个剧本中,都有相当多的剧本,而且连续的重复缺乏优雅。给我留下了希望,还有更好的方法。

EN

回答 1

Stack Overflow用户

发布于 2019-09-06 17:01:43

如下所示进行尝试:

/etc/ansible/group_vars下创建文件all

cat /etc/ansible/group_vars/all

working_env:"{{ lookup('env','WORKING_ENV') }}"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57812261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档