首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向Playbook任务中注入多个环境变量?

如何向Playbook任务中注入多个环境变量?
EN

Stack Overflow用户
提问于 2022-08-16 14:56:14
回答 1查看 103关注 0票数 0

我有一本我没有自己写的游戏手册。在其中,我确定了与我的问题相关的任务。此任务以另一个用户的身份运行,在对接器容器中,该用户似乎没有正确的环境变量以使任务成功运行。

代码语言:javascript
复制
- name: Run enmasse -> /opt (02)
  become: true
  become_user: "zato"
  environment: 
    SOME_TEST_VAR: some-value
  shell: |
    /usr/bin/find /opt/hot-deploy/enmasse -type f \( -name "*.yml" ! -name "default.yml" \) -exec ~/current/bin/zato enmasse {{ zato_env_path }}/server1 --import --input '{}' --replace-odb-objects --verbose \;

我通过将环境指令添加到任务中并设置任意环境变量进行了实验。这些值似乎可以传递并正确地用于任务。然而,对于实际工作,我有一长串环境变量希望传递给任务,这个列表可能会不断增长。

如果我所有的环境变量都有一些前缀,那么是否有一个简单的一行就足以将所有这些都放入其中呢?我发现了一些教程和文档,这些教程和文档展示了如何从Ansible内部读取环境变量,如下所示:

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

但是,如果除了在列表中列出每个变量之外,还有一种更复杂的方法,我就不知道如何搜索它。

EN

回答 1

Stack Overflow用户

发布于 2022-08-17 05:25:35

问题:

我有一个很长的环境变量列表,我希望传递给这个任务,这个列表可能会不断增长。

根据文件在任务中设置远程环境

通过在group_vars文件中定义环境设置,可以将环境设置存储在多本游戏簿中以供重用。

也是

重用环境设置,将它们定义为播放中的变量,并在任务中访问它们,就像访问任何存储的Ansible变量一样。

代码语言:javascript
复制
environment: "{{ env_variables }}"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73376088

复制
相关文章

相似问题

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