Ich benutze Puppet, um ein aktuelles JDK und einen aktuellen Kater zu installieren.
package {
[ "openjdk-6-jdk", "openjdk-6-doc", "openjdk-6-jre",
"tomcat6", "tomcat6-admin", "tomcat6-common", "tomcat6-docs",
"tomcat6-user" ]:
ensure => present,
}
Jetzt möchte ich hinzufügen
JAVA_HOME="/usr/lib/java"
export JAVA_HOME
auf /etc/profile
, diese aus dem Weg gerade zu erhalten. Ich habe noch keine eindeutige Antwort in den Dokumenten gefunden. Gibt es eine empfohlene Möglichkeit, dies zu tun?
Wie kann ich Puppet generell anweisen, diese Datei dort abzulegen oder zu ändern? Ich verwende Puppet für einen einzelnen Knoten (im Standalone-Modus), nur um es auszuprobieren und ein Protokoll des Server-Setups zu führen .
Antworten:
Fügen Sie eine Datei
/etc/profile.d/
mit dem Suffix hinzu.sh
. Es wird als Teil von / etc / profile in Red Hat und Debian und Derivaten bezogen, kann man in anderen Distributionen nicht sagen. Im Allgemeinen ist es, wenn überhaupt möglich, besser, Snippets hinzuzufügen, als verteilte Dateien zu ersetzen, da dies in der Regel für die Zukunft sicherer ist.Also in Puppet würde das folgende tun:
Wonach suchen Sie oder benötigen Sie mehr Details?
quelle
.pp
als Quelle zu referenzieren .Die Lösung von mark eignet sich am besten zum Hinzufügen von Inhalten zu jedem Profil. Wenn Sie jedoch sicherstellen möchten , dass sich einige Zeilen in einer Datei befinden, verfügt Puppet Labs über ein hervorragendes Modul namens stdlib, das file_line enthält, das genau das tut, was Sie benötigen. Bisher habe ich echo und grep im exec-Typ verwendet, aber file_line ist so viel einfacher und übersichtlicher.
Hier ist die Hilfe dafür:
quelle