2014-01-16 8 views
13

Ich schreibe einige Salzstapel Formeln, die Tomcat-Paket installieren wird. aber nach der Installation muss ich JAVA_HOME in der Datei/etc/default/tomcat7 einstellen. Gibt es eine Möglichkeit, JAVA_HOME zu setzen? Oder gibt es eine Option zum Ändern oder Hinzufügen von JAVA_HOME in Umgebungsvariablen (z. B. in .bashrc- oder .profile-Dateien)?Set Umgebungsvariable mit Salzstack

Meine pillar.example Datei wird diese Details haben:

tomcat_version: 7 
    java_home: '/usr/lib/jvm/java-7-oracle' 

Antwort

8

Als Alternative zur Einstellung Bashrc oder .profile, könnten Sie einfach den JAVA_HOME Wert direkt in/etc/default/tomcat7:

tomcat_configuration: 
    file.append: 
    - name: /etc/default/tomcat7 
    - text: export JAVA_HOME={{ pillar['java_home'] }} 

Wenn aus irgendeinem Grund file.append nicht geeignet ist, Salz bietet file.replace und (neu in 0,18,0)file.blockreplace.

6

auf dem Umfang der Umgebungsvariable Hängt ab:

Wenn sein für einen einzelnen Benutzer, dann ist ein Export in Benutzer lokale Bash_profile würden arbeiten z

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'] }} 

Sie müssen sich wahrscheinlich für diesen Benutzer abmelden, bevor die obige Variable verwendet werden kann.

Auf der anderen Seite, wenn Sie diese Variable global exportieren möchten. Sie würden wahrscheinlich wollen /etc/profile.d

JAVA_HOME: 
    file.append: 
    - name: /etc/profile.d/myglobalenvvariables.sh 
    - text: export JAVA_HOME={{ pillar['java_home'] }} 

Obwohl ich unter Verwendung file.managed würde verwenden, empfehlen, wenn Sie ein neues Skript zu erstellen. Sie müssen natürlich noch alle Benutzer abmelden, damit sich die Variablen ausbreiten können.