Ist es möglich, Juju mit einem Zauber zu bitten, eine andere Maschine zu starten, Instanzen eines Dienstes hinzuzufügen oder Instanzen zu zerstören? Zum Beispiel, indem man etwas Ähnliches wie die Juju-GUI macht: wie die Juju-GUI zum Beispiel die Erstellung von Maschinen durchführt? Ich hätte zum Beispiel einen Dienst, der andere Dienste überwacht und Instanzen hinzufügt, um zu skalieren.
Antwort1
Dies ist auf verschiedene Weise möglich.
Installieren und Aufrufen von Juju-Binärdateien
Die charms.reactive Schicht beihttps://github.com/galgalesh/juju-clienttut dies. Der grundlegende Prozess besteht darin, zuerst die Umgebung zu booten und dann einen Charm bereitzustellen, der alle Konfigurations-, Status- und Geheimdateien übergibt, die zur Steuerung der Umgebung erforderlich sind. Der Charm installiert den Juju-Client, erstellt ~/.juju neu und kann die Umgebung nun von innen steuern.
Diese Ebene ist noch experimentell. Wenn Sie auf Probleme stoßen, reichen Sie einen Fehlerbericht im GitHub-Repository ein.
Verwenden des Python Juju-Clients
Da ist einPython-Client zum Verwalten von Juju-Umgebungen. Dieser Client ruft die Juju-API auf. Sie können dies in einen Charm einfügen.
Verwenden der Go-API
Die Go-API finden Sie hier:https://godoc.org/github.com/juju/juju/api
Perl-Bindungen verwenden
Wenn Sie auf so etwas stehen:https://metacpan.org/release/Juju
Direkter Aufruf der API
Weitere Informationen hierzu finden Sie in dieser Frage:Gibt es eine Juju REST-API?