StackStorm.stackstorm
Ansible-st2
Ansible Rollen und Playbooks zum Bereitstellen von StackStorm.
StackStorm ist eine ereignisgesteuerte Automatisierungsplattform, die in Python geschrieben ist. Mit über 50+ Integrationen wie GitHub, Docker, Nagios, NewRelic, AWS und Ansible können Sie Ihre bestehende Infrastruktur in komplexe Workflows mit automatisierter Behebung und vielen weiteren Funktionen integrieren. Dies ist eine Art IFTTT-Orchestrierung für Ops.
Unterstützte Plattformen
- Ubuntu Focal (20.04)
- RHEL 7 und CentOS 7
- RHEL 8 und Rocky Linux 8
Wenn Sie die bereitgestellte
Vagrantfile
verwenden, beachten Sie bitte, dass sie standardmäßig Focal verwendet.
Stellen Sie sicher, dass die http- und https-Ports in der Firewall für den Zugriff auf die StackStorm-Weboberfläche erlaubt sind.
Anforderungen
Eine unterstützte Version von Ansible und deren Abhängigkeiten. Mindestens 2 GB Arbeitsspeicher und 3,5 GB Speicherplatz sind erforderlich, da StackStorm mit RabbitMQ, Mongo, Redis und nginx ausgeliefert wird.
Installation
# Bereitstellung von StackStorm
ansible-playbook stackstorm.yml
Variablen
Hier ist eine Liste von Variablen, die Sie in Ihrem Playbook oder Inventar umdefinieren können, um die StackStorm-Bereitstellung anzupassen:
Variable | Standard | Beschreibung |
---|---|---|
st2repo | ||
st2repo_name |
stable |
StackStorm PaketCloud-Repository zur Installation. stable , unstable , staging-stable , staging-unstable |
st2 | ||
st2_version |
latest |
Zu installierende StackStorm-Version. present um verfügbares Paket zu installieren, latest für automatische Updates, oder festlegen auf eine numerische Version wie 2.2.0 oder mit Revision wie 2.2.0-1 |
st2_config |
{} |
Hash mit Konfigurationseinstellungen für StackStorm, die in die st2.conf ini-Datei gesetzt werden. |
st2_system_user |
stanley |
Systembenutzer, von dem aus st2 lokale/remote Shell-Aktionen ausführt. |
st2_system_user_in_sudoers |
yes |
st2_system_user zu den Sudoers hinzufügen (wird empfohlen, damit die meisten st2 -Features funktionieren). |
st2_ssh_key_file |
/home/{{st2_system_user}}/.ssh/{{st2_system_user}}_rsa |
Pfad zur SSH-Privatschlüsseldatei von st2_system_user . Sie wird standardmäßig automatisch generiert. |
st2_auth_enable |
yes |
StackStorm-Stehendentwicklung Authentifizierung aktivieren. |
st2_auth_username |
testu |
Benutzername, der für die Stehendentwicklung Authentifizierung von StackStorm verwendet wird. |
st2_auth_password |
testp |
Passwort, das für die Stehendentwicklung Authentifizierung von StackStorm verwendet wird. |
st2_save_credentials |
yes |
Anmeldeinformationen für lokale CLI in der Datei /root/.st2/config speichern. |
st2_rbac_enable |
no |
RBAC aktivieren. |
st2_rbac |
Siehe st2_rbac -Variable in den Rollenvorgaben |
RBAC-Rollen und -Zuweisungen. Dies ist ein Wörterbuch mit drei Schlüsseln roles , assignments und mappings (basierend auf LDAP-Gruppenmitgliedschaften). roles , assignments und mappings sind Arrays. Jedes Element im Array folgt dem genauen YAML-Schema für Rollen, Zuweisungen, die in der ST2-Dokumentation definiert sind. Mappings sind etwas anders; sie verwenden einen name und einen mapping Schlüssel. |
st2_ldap_enable |
no |
LDAP-Authentifizierungsbackend aktivieren. |
st2_ldap |
Siehe st2_ldap -Variable in den Rollenvorgaben |
Einstellungen für das LDAP-Authentifizierungsbackend. st2_ldap ist ein Wörterbuch und hat einen Eintrag backend_kwargs . backend_kwargs sollte genau wie in der ST2-Dokumentation für LDAP-Konfiguration aufgelistet. |
st2_packs |
[ st2 ] |
Liste der zu installierenden Packs. Dieses Flag funktioniert nicht mit einem nur --python3 -Paket. |
st2_python_packages |
[ ] |
Liste der Python-Pakete, die in die virtuelle Umgebung /opt/stackstorm/st2 installiert werden sollen. Dies ist notwendig, wenn alternative Authentifizierungs- oder Koordinierungsbackends bereitgestellt werden, die auf Python-Modulen beruhen. |
st2web | ||
st2web_version |
latest |
st2web-Version, die installiert werden soll. present um verfügbares Paket zu installieren, latest für automatische Updates, oder festlegen auf eine numerische Version wie 2.2.0 oder mit Revision wie 2.2.0-1 . |
st2web_ssl_certificate |
null |
Zeichenfolge mit benutzerdefiniertem SSL-Zertifikat (.crt ). Wenn nicht angegeben, wird ein selbstsigniertes Zertifikat generiert. |
st2web_ssl_certificate_key |
null |
Zeichenfolge mit geheimem Schlüssel für benutzerdefiniertes SSL-Zertifikat (.key ). Wenn nicht angegeben, wird ein selbstsigniertes Zertifikat generiert. |
st2web_nginx_config |
null |
Zeichenfolge mit einer benutzerdefinierten nginx-Konfigurationsdatei (st2.conf ). Wenn nicht angegeben, wird die Standard st2.conf verwendet. |
st2chatops | ||
nodejs_major_version |
14 |
Die Standardeinstellung passt zur st2chatops-Version >= 3.5.0. |
st2chatops_version |
latest |
st2chatops-Version, die installiert werden soll. present um verfügbares Paket zu installieren, latest für automatische Updates oder festlegen auf eine numerische Version wie 2.2.0 oder mit Revision wie 2.2.0-1 . |
st2chatops_st2_api_key |
st2 API-Key, der in st2chatops.env mit "st2 apikey create -k" in einer Aufgabe aktualisiert werden muss. |
|
st2chatops_hubot_adapter |
Hubot Adapter, der für st2chatops verwendet werden soll. Standard ist shell , sollte jedoch auf einen der unterstützten Adapter geändert werden. [Erforderlich] |
|
st2chatops_config |
{ } |
Basierend auf dem Adapter in st2chatops_hubot_adapter , stellen Sie Hash für die Adaptereinstellungen bereit, um st2chatops.env zu aktualisieren. Zum Beispiel, für den Slack Hubot-Adapter: st2chatops_config: HUBOT_SLACK_TOKEN: xoxb-CHANGE-ME-PLEASE |
st2chatops_version |
latest |
st2chatops-Version, die installiert werden soll. Verwenden Sie latest für automatische Updates oder festlegen auf eine numerische Version wie 2.2.0 . |
Beispiele
Installieren Sie die neueste stable
StackStorm-Version mit allen ihren Komponenten auf einem lokalen Rechner:
ansible-playbook --inventory localhost, --connection local stackstorm.yml
Um StackStorm auf einer Remote-Maschine namens stackstorm.example.com
zu installieren, erstellen Sie ein Inventar und verweisen Sie darauf:
echo "stackstorm.example.com" > inventory
ansible-playbook --inventory inventory stackstorm.yml
Die Beibehaltung der
latest
-Version ist nützlich, um StackStorm zu aktualisieren, indem das Playbook erneut ausgeführt wird, da es st2 neuinstalliert (aktualisiert), wenn eine neue Version verfügbar ist.
Dies ist das Standardverhalten. Wenn Sie keine Updates wünschen, sollten Sie spezifische Versionen und Revisionsnummern festlegen.
Installieren Sie eine bestimmte Version von st2 mit fester Revisionsnummer:
ansible-playbook stackstorm.yml --extra-vars "st2_version=2.2.0 st2_revision=8"
Installation hinter einem Proxy
Wenn Sie hinter einem Proxy installieren, können Sie die Umgebungsvariablen http_proxy
, https_proxy
und no_proxy
im Playbook verwenden. Für die st2smoketests müssen Sie den Proxy für localhost deaktivieren.
environment:
http_proxy: http://proxy.example.net:3128
https_proxy: http://proxy.example.net:3128
no_proxy: 127.0.0.1,localhost
Entwicklung
Es gibt einige Anforderungen, wenn Sie an ansible-st2
entwickeln.
Diese Plattformen müssen unterstützt werden (müssen End-to-End-Tests bestehen):
- Ubuntu Focal (20.04)
- CentOS 7
- Rocky Linux 8
- RHEL 7 (über AWS)
- RHEL 8 (über AWS)
Die Playbooks und Rollen müssen die Ansible-Idempotenz unterstützen.
Das heißt, dass das erneute Ausführen des Playbooks stackstorm.yml
mit dem Ergebnis changed=0.*failed=0
enden muss (vorausgesetzt, Versionen und Revisionen sind festgelegt).
Für die lokale Entwicklung steht ein Vagrantfile zur Verfügung.
Standardmäßig wird der folgende Befehl ein Ubuntu20-Box (ubuntu/focal64
) einrichten:
vagrant up
Andere unterstützte Distributionen:
vagrant up ubuntu20
vagrant up centos7
vagrant up rockylinux8
Andere Installationsmethoden
Möglicherweise interessieren Sie sich für andere Methoden zur Bereitstellung von StackStorm:
Konfigurationsmanagement
Manuelle Anleitungen
Hilfe erhalten
Wenn Sie auf Probleme stoßen, steht Ihnen unsere Community zur Verfügung, um zu helfen. Zögern Sie nicht, zu:
- Fragen in unserem öffentlichen Slack-Kanal zu stellen.
- Probleme zu melden, Funktionsanforderungen einzureichen oder diesem Projekt einfach einen ✮ Stern zu geben.
Ihre Fragen, Kommentare und Beiträge sind mehr als willkommen und werden sehr geschätzt!
Install StackStorm (IFTTT for Ops) with all the components like Web UI, ChatOps and dependant services including RabbitMQ, MongoDB, nginx.
ansible-galaxy install StackStorm.stackstorm