我有一本我没有自己写的游戏手册。在其中,我确定了与我的问题相关的任务。此任务以另一个用户的身份运行,在对接器容器中,该用户似乎没有正确的环境变量以使任务成功运行。
- 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') }}"但是,如果除了在列表中列出每个变量之外,还有一种更复杂的方法,我就不知道如何搜索它。
发布于 2022-08-17 05:25:35
问题:
我有一个很长的环境变量列表,我希望传递给这个任务,这个列表可能会不断增长。
根据文件在任务中设置远程环境
通过在
group_vars文件中定义环境设置,可以将环境设置存储在多本游戏簿中以供重用。
也是
重用环境设置,将它们定义为播放中的变量,并在任务中访问它们,就像访问任何存储的Ansible变量一样。
environment: "{{ env_variables }}"https://stackoverflow.com/questions/73376088
复制相似问题