Ich habe an einem kleinen Modul gearbeitet, das ein vorgefertigtes Kibana Puppet Modul verwendet (EDIT: 'lesaux/kibana4'), und enthält auch eine einfache exec, die das Shield Plugin für installiert Kibana. (Hinweis: In diesem Beispiel installiere ich auch java8 von einem anderen Modul, das in meinem Manifest enthalten ist)Marionette - Abhängigkeiten funktionieren nicht
Mein Problem ist, dass die exec weiterläuft, bevor kibana tatsächlich installiert wird. Ich möchte, dass kibana zuerst installiert wird und dann die exec. Also fügte ich ein 'require' hinzu, wie unten gezeigt, und fügte auch eine Kette hinzu, um sicherzustellen, dass der exec nachher passierte.
class test_kibana {
class { '::kibana4':
package_ensure => '4.4.0-linux-x64',
package_provider => 'archive',
config => {
'server.host' => 'localhost',
'elasticsearch.url' => 'http://localhost:9200',
'elasticsearch.username' => 'testUserName',
'elasticsearch.password' => 'testPassword',
'shield.encryptionKey' => 'testencryptionkey',
}
} ->
exec { 'install kibana shield plugin':
require => Class['::kibana4'],
path => '/opt/kibana4/bin',
command => 'kibana plugin --install kibana/shield/latest',
}
}
Die Anforderung und die Kette scheint nicht zu funktionieren. Daher weiß der Exec nicht, was der Befehl bedeutet, und es schlägt fehl, weil Kibana noch nicht existiert.
Warum installiert Marionette diese nicht in der von mir benötigten Reihenfolge?
Hier ist meine Ausgabe:
==> nat: Notice: Scope(Archive::Download[kibana-4.4.0-linux-x64.tar.gz]): No checksum for this archive
==> nat: Notice: Compiled catalog for nat.test.com in environment production in 2.58 seconds
==> nat: Notice: /Stage[main]/Apt/File[preferences]/ensure: created
==> nat: Notice: /Stage[main]/test_java8/File[/tmp/java.preseed]/ensure: defined content as '{md5}fa13124e9e801dd42c91fa94ef7f1c1e'
==> nat: Notice: /Stage[main]/test_java8/File[/tmp/jce]/ensure: created
==> nat: Notice: /Stage[main]/test_java8/File[/tmp/jce/local_policy.jar]/ensure: defined content as '{md5}dabfcb23d7bf9bf5a201c3f6ea9bfb2c'
==> nat: Notice: /Stage[main]/test_java8/File[/tmp/jce/US_export_policy.jar]/ensure: defined content as '{md5}ef6e8eae7d1876d7f05d765d2c2e0529'
==> nat: Notice: /Stage[main]/Kibana4::User/Group[kibana4]/ensure: created
==> nat: Notice: /Stage[main]/Kibana4::User/User[kibana4]/ensure: created
==> nat: Error: Could not find command 'kibana'
==> nat: Error: /Stage[main]/Smart_monitoring_kibana/Exec[install kibana shield plugin]/returns: change from notrun to 0 failed: Could not find command 'kibana'
==> nat: Notice: /Stage[main]/Apt/Apt::Setting[conf-update-stamp]/File[/etc/apt/apt.conf.d/15update-stamp]/content: content changed '{md5}b9de0ac9e2c9854b1bb213e362dc4e41' to '{md5}0962d70c4ec78bbfa6f3544ae0c41974'
==> nat: Notice: /Stage[main]/test_java8/Apt::Ppa[ppa:webupd8team/java]/Exec[add-apt-repository-ppa:webupd8team/java]/returns: executed successfully
==> nat: Notice: /Stage[main]/Apt::Update/Exec[apt_update]: Triggered 'refresh' from 1 events
==> nat: Notice: /Stage[main]/test_java8/Exec[apt-update]/returns: executed successfully
==> nat: Notice: /Stage[main]/test_java8/Package[oracle-java8-installer]/ensure: created
==> nat: Notice: /Stage[main]/test_java8/File[/etc/profile.d/set_java_home.sh]/ensure: defined content as '{md5}717258a243a8addc2506097f12cd611f'
==> nat: Notice: /Stage[main]/test_java8/Exec[install-jce]/returns: executed successfully
==> nat: Notice: /Stage[main]/Kibana4::Install/Archive[kibana-4.4.0-linux-x64]/Archive::Download[kibana-4.4.0-linux-x64.tar.gz]/Exec[download archive kibana-4.4.0-linux-x64.tar.gz and check sum]/returns: executed successfully
==> nat: Notice: /Stage[main]/Kibana4::Install/Archive[kibana-4.4.0-linux-x64]/Archive::Extract[kibana-4.4.0-linux-x64]/Exec[kibana-4.4.0-linux-x64 unpack]/returns: executed successfully
==> nat: Notice: /Stage[main]/Kibana4::Install/Exec[chown_kibana_directory]: Triggered 'refresh' from 1 events
==> nat: Notice: /Stage[main]/Kibana4::Install/File[/opt/kibana4]/ensure: created
==> nat: Notice: /Stage[main]/Kibana4::Config/File[kibana-config-file]/content: content changed '{md5}dacdab7bddd2bcede2cc7cd8c6948307' to '{md5}7c24ae699bfbfbb5314ce01bdcdc3b6d'
==> nat: Notice: /Stage[main]/Kibana4::Config/File[kibana-config-file]/mode: mode changed '0644' to '0755'
==> nat: Notice: /Stage[main]/Kibana4::Config/File[/var/run/kibana.pid]/ensure: created
==> nat: Notice: /Stage[main]/Kibana4::Config/File[/var/log/kibana]/ensure: created
==> nat: Notice: /Stage[main]/Kibana4::Service/File[/etc/init.d/kibana4]/ensure: defined content as '{md5}0c5c726cdabb5355276abc6394a868a7'
==> nat: Notice: /Stage[main]/Kibana4::Service/File[/etc/default/kibana4]/ensure: defined content as '{md5}57b82a4af4f8872bfbc6488b0a85c652'
==> nat: Notice: /Stage[main]/Kibana4::Service/Service[kibana4]/ensure: ensure changed 'stopped' to 'running'
==> nat: Notice: Applied catalog in 644.11 seconds
EDIT: Ich habe entdeckt, dass das lesaux/Kibana Modul vor kurzem aktualisiert wurde, und jetzt können Sie damit Plugins als Teil der Installation installieren. (Daher muss ich diese Exec-Funktion nicht mehr verwenden. Problem behoben!)
ist es Lesaux-Kibana4 Sie verwenden? –
Ja seine lesaux-kibana4 – Xenidious