使用saltstack设置环境变量

Nav*_*ani 13 python tomcat salt-stack

我正在写一些盐栈公式,它将安装tomcat包.但安装后我必须在/ etc/default/tomcat7文件中设置JAVA_HOME.有没有选择设置JAVA_HOME?或者是否有任何选项可以在环境变量中修改或添加JAVA_HOME(即在.bashrc或.profile文件中)?

我的pillar.example文件将包含以下详细信息:

    tomcat_version: 7
    java_home: '/usr/lib/jvm/java-7-oracle'
Run Code Online (Sandbox Code Playgroud)

Jef*_*uer 8

作为设置.bashrc或.profile的替代方法,您可以直接在/ etc/default/tomcat7中设置JAVA_HOME值:

tomcat_configuration:
  file.append:
    - name: /etc/default/tomcat7
    - text: export JAVA_HOME={{ pillar['java_home'] }}
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因file.append不适合,salt提供file.replace(在0.18.0中新增) file.blockreplace.


Jas*_*Zhu 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'] }}
Run Code Online (Sandbox Code Playgroud)

在使用上述变量之前,您可能需要注销该用户.

另一方面,如果要全局导出该变量.你可能想要使用/etc/profile.d

JAVA_HOME:
  file.append:
    - name: /etc/profile.d/myglobalenvvariables.sh
    - text: export JAVA_HOME={{ pillar['java_home'] }}
Run Code Online (Sandbox Code Playgroud)

虽然我建议在创建新脚本时使用file.managed.当然,您仍需要记录所有用户,以便传播变量.