gpt4 book ai didi

linux - Ansible - 从远程主机读取环境变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:37:43 24 4
gpt4 key购买 nike

我正在尝试使用 Ansible 剧本从目标 Linux 主机读取环境变量。我按照文档尝试了以下所有任务,但没有结果。

   - name: Test1    
debug: msg="{{ ansible_env.BULK }}"
delegate_to: "{{ target_host }}"

- name: Test2
shell: echo $BULK
delegate_to: "{{ target_host }}"
register: foo

- debug: msg="{{ foo.stdout }}"

- name: Test3
debug: msg="{{ lookup('env','BULK')}} is an environment variable"
delegate_to: "{{ target_host }}"

环境变量“BULK”未在我执行剧本的本地主机中设置,因此我假设它不返回任何内容。如果我不使用 BULK,而是使用始终可用的“HOME”,它会返回结果。如果我通过 SSH 连接到 target_host,我可以毫无问题地运行 echo $BULK

如何获取远程主机的环境变量?

最佳答案

If I SSH into the target_host I am able to run echo $BULK without any issue.

最有可能的是,因为 BULK 设置在一个 rc 文件中,该文件仅在目标机器上的 shell 交互式 session 中提供。 Ansible 的 gather_facts 任务在非交互式任务中运行。

How to obtain the Environment variable from the remote host?

将设置 BULK 变量的行移动到它的来源位置,而不管 session 类型如何(具体位置取决于目标操作系统和 shell)

例如:https://unix.stackexchange.com/a/170499/133107获取提示。

关于linux - Ansible - 从远程主机读取环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46660484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com