要用脚本将gradle设置为home吗?
如何使用ansible脚本设置gradle home。我在RHEL中有一个目录要用脚本将gradle设置为home吗?,gradle,ansible,environment-variables,Gradle,Ansible,Environment Variables,如何使用ansible脚本设置gradle home。我在RHEL中有一个目录gradle\u user\u home。我正在尝试使用ansible脚本将gradle home设置为此目录。但是ansible脚本说没有这样的文件或目录!下面是我的脚本 - name: Set gradle environment variable command: export GRADLE_USER_HOME={{gradle_home}} 我的vars文件: gradle_home: "/data1/d
gradle\u user\u home
。我正在尝试使用ansible脚本将gradle home设置为此目录。但是ansible脚本说没有这样的文件或目录!下面是我的脚本
- name: Set gradle environment variable
command: export GRADLE_USER_HOME={{gradle_home}}
我的vars文件:
gradle_home: "/data1/deployment/gradle_user_home"
不能在单个
命令
任务中导出环境变量,因为每个命令
任务都在其自己的shell中运行。命令完成后,环境变量将丢失
您必须使用shell
操作
- name: Run the command
shell: >-
export GRADLE_USER_HOME={{gradle_home}}
my_command_which_requires_gradle_user_home
首先,
export
不是命令(即没有/bin/export
可执行文件)。它是一个内置的bash。这就是为什么你得到一个没有这样的文件或目录的原因。您可以在shell
任务中使用它,而不是在命令
任务中使用它
其次,这不是使用Ansible设置环境变量的正确方法
您可以在播放级别设置环境,如下所示:
---
- hosts: all
environment:
GRADLE_USER_HOME: "{{gradle_home}}"
- name: Execute gradle build
shell: gradle build
environment:
GRADLE_USER_HOME: "{{gradle_home}}"
或者在任务级别,如下所示:
---
- hosts: all
environment:
GRADLE_USER_HOME: "{{gradle_home}}"
- name: Execute gradle build
shell: gradle build
environment:
GRADLE_USER_HOME: "{{gradle_home}}"
因为没有命令export
,Ansible是完全正确的。不管怎样,你将无法做你认为你应该做的事情,因为这毫无意义。请了解Unix/Linux shell如何处理环境变量。