【问题标题】:Set environment variable using saltstack使用 saltstack 设置环境变量
【发布时间】:2014-01-16 07:54:31
【问题描述】:

我正在编写一些将安装 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'

【问题讨论】:

    标签: python tomcat salt-stack


    【解决方案1】:

    作为设置 .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

    【讨论】:

      【解决方案2】:

      取决于环境变量的范围:

      如果它是针对单个用户的,那么导出到用户的本地 .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。当然,您仍然需要注销所有用户才能传播变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-04
        • 2015-10-21
        • 2018-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多