我正在编写一些将安装tomcat包的salt stack公式。但安装后我必须在/ etc / default / tomcat7文件中设置JAVA_HOME。有没有选择设置JAVA_HOME?或者是否有任何选项可以在环境变量中修改或添加JAVA_HOME(即在.bashrc或.profile文件中)?
我的pillar.example文件将包含以下详细信息:
tomcat_version: 7
java_home: '/usr/lib/jvm/java-7-oracle'
答案 0 :(得分:8)
作为设置.bashrc或.profile的替代方法,您只需在/ etc / default / tomcat7中直接设置JAVA_HOME值:
tomcat_configuration:
file.append:
- name: /etc/default/tomcat7
- text: export JAVA_HOME={{ pillar['java_home'] }}
如果由于某种原因file.append
不合适,则salt会提供file.replace和(0.18.0中的新内容) file.blockreplace。
答案 1 :(得分:6)
取决于环境变量的范围:
如果是单个用户,那么导出到用户的本地.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。当然,您仍需要记录所有用户,以便传播变量。