我在写一些将安装tomcat包的盐堆公式。但安装后我必须在/ etc/default/tomcat7文件中设置JAVA_HOME。有没有设置JAVA_HOME的选项?或者是否有任何选项可以修改或添加环境变量(即.bashrc或.profile文件中的JAVA_HOME)?使用saltstack设置环境变量
我pillar.example文件将这些细节:
tomcat_version: 7
java_home: '/usr/lib/jvm/java-7-oracle'
我在写一些将安装tomcat包的盐堆公式。但安装后我必须在/ etc/default/tomcat7文件中设置JAVA_HOME。有没有设置JAVA_HOME的选项?或者是否有任何选项可以修改或添加环境变量(即.bashrc或.profile文件中的JAVA_HOME)?使用saltstack设置环境变量
我pillar.example文件将这些细节:
tomcat_version: 7
java_home: '/usr/lib/jvm/java-7-oracle'
作为替代设置的.bashrc或.profile,你可以简单地在/ etc /默认/ tomcat7直接设置JAVA_HOME值:
tomcat_configuration:
file.append:
- name: /etc/default/tomcat7
- text: export JAVA_HOME={{ pillar['java_home'] }}
如果由于某种原因file.append
不适合,盐提供file.replace和(0.18.0新增)file.blockreplace。
取决于环境变量的范围:
如果其为单个用户,然后出口到用户本地的.bash_profile会工作,例如
JAVA_HOME:
# File.append searches the file for your text before it appends so it won't append multiple times
file.append:
- name: /root/.bash_profile
- text: export JAVA_HOME={{ pillar['java_home'] }}
在上述变量可以使用之前,您可能需要注销该用户。
另一方面,如果您想全局导出该变量。你可能会想使用/etc/profile.d中
JAVA_HOME:
file.append:
- name: /etc/profile.d/myglobalenvvariables.sh
- text: export JAVA_HOME={{ pillar['java_home'] }}
虽然我建议创建一个新的脚本时使用file.managed。当然,您仍然需要记录所有用户,以便传播变量。