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.

E2E-Tests Repository deb/rpm Tritt unserer Community auf Slack bei

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:

Hilfe erhalten

Wenn Sie auf Probleme stoßen, steht Ihnen unsere Community zur Verfügung, um zu helfen. Zögern Sie nicht, zu:

Ihre Fragen, Kommentare und Beiträge sind mehr als willkommen und werden sehr geschätzt!

Über das Projekt

Install StackStorm (IFTTT for Ops) with all the components like Web UI, ChatOps and dependant services including RabbitMQ, MongoDB, nginx.

Installieren
ansible-galaxy install StackStorm.stackstorm
Lizenz
apache-2.0
Downloads
624.6k
Besitzer
Event-driven automation. Used by Netflix & many more....