嗨,我想知道如何用Ansible设置环境变量.
可以使用以下简单的shell命令:
EXPORT LC_ALL=C
try 使用shell命令,但出现错误
我错过了什么
嗨,我想知道如何用Ansible设置环境变量.
可以使用以下简单的shell命令:
EXPORT LC_ALL=C
try 使用shell命令,但出现错误
我错过了什么
有多种方法可以做到这一点,从你的问题来看,也不清楚你需要什么.
1. If you need environment variable to be defined PER TASK ONLY, you do this:
- hosts: dev tasks: - name: Echo my_env_var shell: "echo $MY_ENV_VARIABLE" environment: MY_ENV_VARIABLE: whatever_value - name: Echo my_env_var again shell: "echo $MY_ENV_VARIABLE"
请注意,MY_ENV_VARIABLE
仅适用于第一个任务,environment
不会在系统上永久设置它.
TASK: [Echo my_env_var] *******************************************************
changed: [192.168.111.222] => {"changed": true, "cmd": "echo $MY_ENV_VARIABLE", ... "stdout": "whatever_value"}
TASK: [Echo my_env_var again] *************************************************
changed: [192.168.111.222] => {"changed": true, "cmd": "echo $MY_ENV_VARIABLE", ... "stdout": ""}
希望很快在play level上也能使用environment
,而不仅仅是上面提到的任务级别.
更新:自2015年1月2日起合并.
2. If you want permanent environment variable + system wide / only for certain user
您应该研究一下如何在Linux发行版/shell中实现这一点,有很多地方可以做到这一点.例如,在Ubuntu中,你可以在如下文件中定义:
~/.profile
/etc/environment
/etc/profile.d
目录你可以在这里找到关于它的Ubuntu文档:https://help.ubuntu.com/community/EnvironmentVariables
毕竟,对于在ex.Ubuntu中设置环境变量,您可以使用Ansible中的lineinfile
模块,并将所需的行添加到特定文件中.请查阅操作系统文档,以了解在何处添加它以使其永久化.