【发布时间】:2020-02-20 07:53:22
【问题描述】:
我有目标机器中存在的 env 文件,它包含一定数量的带有导出命令的变量(导出命令本身存在于文件中)。
export AB_HOME=/et/dev/abinitio/abinitio-V3
export PATH=${AB_HOME}/bin:${PATH}
我已经使用下面的剧本执行了 env 文件,我尝试读取使用 output1 导出的变量,这是我剧本中的一个寄存器变量。但我可以看到我的寄存器变量是空的。有什么方法可以获取全部导出的变量。我不知道文件中存在的变量名称,所以我无法使用 ECHO 命令。
- hosts: dev
gather_facts: false
tasks:
- name: get the environment variables
shell: "su <id> & . ./.env"
args:
chdir: /path to the file
register: output1
- debug: var=output1.stdout_lines
【问题讨论】:
-
您可能想要检查退出状态而不是 stdout_lines:docs.ansible.com/ansible/latest/reference_appendices/…
-
shell: "su <id> & . ./.env"有效吗?运行 playbook 后,您可以看到从 bash 导出的变量(不是使用 ansible)吗?我无法在我的 ansible 2.0.0.2 安装中获取文件。列出的解决方案都不适合我:stackoverflow.com/questions/22256884/… -
我无法得到您的要求,我手动厌倦了 . ./.env 命令在遥控器中,我可以看到导出的变量
标签: ansible environment-variables