ansible的新手。
我想(从目标主机上)读取用户定义的环境变量,然后在剧本中使用它。
我已经在目标计算机上的.bash_profile中定义了以下变量。
导出ORACLE_PATCH_DIR = / u1 /补丁
以下是剧本的概要。
- hosts: oradb
gather_facts: true
vars:
patch_dir: $ORACLE_PATCH_DIR ??? <--- Don't know how to handle this
tasks:
- name: Printing Oracle Patch Directory location
debug:
var: {{ patch_dir }}
我为含糊不清表示歉意。
谢谢。
FR
答案 0 :(得分:0)
要访问目标主机的环境变量,可以使用ansible_env
,如下所示:
gather_facts: true
vars:
patch_dir: "{{ ansible_env.ORACLE_PATCH_DIR }}"
ansible_env:通常由事实收集(M(gather_facts))填充,变量的值取决于执行收集操作的用户。如果您更改remote_user / become_user,则可能会为这些变量使用错误的值。
答案 1 :(得分:0)
关于如何使我能够读取所有环境变量的任何建议?
是的,提供该文件并回显该变量
tasks:
- shell: |
. /home/oracob/.bash_profile
echo $ORACLE_PATCH_DIR
register: patch_dir_cmd
- set_fact:
ORACLE_PATCH_DIR: '{{ patch_dir_cmd.stdout }}'