如何将多个环境变量注入到一个行动手册任务中



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

- 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中读取环境变量,比如:

"{{ lookup('env','HOME') }}"

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

问题:

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

根据文档设置任务中的远程环境

您可以通过在group_vars文件中定义环境设置来存储环境设置,以便在多个剧本中重复使用

以及

通过在游戏中将环境设置定义为变量并在任务中访问它们来重用环境设置,就像访问任何存储的Ansible变量一样

environment: "{{ env_variables }}"

相关内容

  • 没有找到相关文章

最新更新