Ich habe daran gearbeitet, Puppen zu lernen und damit eine Jenkins-Box einzurichten. Ich verdrahte Jenkins durch Tomcat, da ich dort möglicherweise auch andere Webapps laufen lasse.
BEARBEITEN : Ich habe (über puppet module install puppetlabs-stdlib
) die von Puppetlabs bereitgestellte stdlib installiert, um den Typ file_line zu verwenden.
Dies ist ein Marionettenmodul-Manifest zum Einrichten von Jenkins und Tomcat und zum Verkabeln der beiden.
class tomcat_jenkins {
package{'java-1.7':
ensure => installed,
name => 'java-1.7.0-openjdk',
}
package{'tomcat6':
ensure => installed,
require => Package['java-1.7'],
}
package{'jenkins':
ensure => installed,
require => Yumrepo['jenkins'],
}
file{'jenkins-symlink':
name => '/usr/share/tomcat6/webapps/jenkins.war',
require => [Package['tomcat6'], Package['jenkins']],
ensure => link,
target => '/usr/lib/jenkins/jenkins.war',
}
file{ '/srv':
ensure => directory,
owner => 'root',
group => 'root',
}
file{ '/srv/jenkins':
ensure => directory,
owner => 'tomcat',
group => 'tomcat',
require => Package['tomcat6'],
}
file_line{'jenkins_home':
ensure => present,
path => '/etc/tomcat6/tomcat6.conf',
line => 'JENKINS_HOME=/srv/jenkins',
require => [Package['tomcat6'], File['/srv/jenkins']],
}
service{'tomcat6':
ensure => running,
enable => true,
require => [Package['tomcat6'], Package['jenkins'], File_line['jenkins_home']],
subscribe => [Package['jenkins'], File['jenkins-symlink']],
}
}
Ich sehe die Ausgabe des Puppet-Agenten, dass er den Katalog ordnungsgemäß anwendet, und er gibt vor, die Änderungen übernommen zu haben, aber /jenkins/
meine Datei /etc/tomcat6/tomcat6.conf enthält keine . Ich habe nichts anderes, um diese Datei zu verwalten.
puppet agent -t -d
Ausgabe:
info: Applying configuration version '1343250206'
debug: /Stage[main]/Tomcat_jenkins/File_line[jenkins_home]/require: requires Package[tomcat6]
debug: /Stage[main]/Tomcat_jenkins/File_line[jenkins_home]/require: requires File[/srv/jenkins]
debug: /Stage[main]/Epel_repo/Yumrepo[epel]/require: requires File[/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6]
debug: /Stage[main]/Tomcat_jenkins/Package[jenkins]/require: requires Yumrepo[jenkins]
debug: /Stage[main]/Tomcat_jenkins/Service[tomcat6]/require: requires Package[tomcat6]
debug: /Stage[main]/Tomcat_jenkins/Service[tomcat6]/require: requires Package[jenkins]
debug: /Stage[main]/Tomcat_jenkins/Service[tomcat6]/require: requires File_line[jenkins_home]
debug: /Stage[main]/Tomcat_jenkins/Service[tomcat6]/subscribe: subscribes to Package[jenkins]
debug: /Stage[main]/Tomcat_jenkins/Service[tomcat6]/subscribe: subscribes to File[jenkins-symlink]
file_line
eine gültige Ressource ist? Es wird in der offiziellen Dokumentation nicht als Standardressourcentyp angezeigt. docs.puppetlabs.com/references/latest/type.htmlpuppet module install
edAntworten:
Als ich mich bei #puppet auf irc.freenode.net umsah, stellte ich fest, dass mir ein Konfigurationsparameter auf dem Puppet-Agenten fehlte. Ich brauchte:
in der
[main]
Sektion. Nachdem diese Zeile hinzugefügt wurde, wurden die Plugins heruntergeladen und meine Inhalte eingerichtet. Sieg.quelle
--pluginsync
wenn Sie in der Befehlszeile herumspielen.