StackStorm.stackstorm

Ansible-st2

Ansible role i playbooki do wdrożenia StackStorm.

StackStorm to platforma automatyzacji oparta na zdarzeniach napisana w Pythonie. Z ponad 50 integracjami takimi jak GitHub, Docker, Nagios, NewRelic, AWS, Ansible umożliwia połączenie istniejącej infrastruktury w złożone przepływy pracy z automatycznym usuwaniem błędów i wiele więcej. To jak IFTTT dla operacji.

E2E Tests Repository deb/rpm Dołącz do naszej społeczności na Slacku

Obsługiwane platformy

  • Ubuntu Focal (20.04)
  • RHEL 7 i CentOS 7
  • RHEL 8 i Rocky Linux 8

Jeśli korzystasz z dostarczonego Vagrantfile, pamiętaj, że domyślnie używa Focal.

Aby uzyskać dostęp do interfejsu użytkownika StackStorm, nie zapomnij upewnić się, że porty http i https są dozwolone przez zaporę.

Wymagania

Wymagana jest obsługiwana wersja Ansible oraz jej zależności. Potrzebne jest co najmniej 2 GB pamięci i 3,5 GB przestrzeni dyskowej, ponieważ StackStorm jest dostarczany z RabbitMQ, Mongo, Redis i nginx.

Instalacja

# Wdróż StackStorm
ansible-playbook stackstorm.yml

Zmienne

Poniżej znajduje się lista zmiennych, które można zdefiniować w swoim playbooku lub inwentarzu, aby dostosować wdrożenie StackStorm:

Zmienna Domyślna Opis
st2repo
st2repo_name stable Repozytorium StackStorm PackageCloud do zainstalowania. stable, unstable, staging-stable, staging-unstable
st2
st2_version latest Wersja StackStorm do zainstalowania. present do zainstalowania dostępnego pakietu, latest aby uzyskać automatyczne aktualizacje lub przypiąć je do wersji numerycznej, takiej jak 2.2.0 lub z rewizją, taką jak 2.2.0-1
st2_config {} Hasz z ustawieniami konfiguracyjnymi StackStorm do ustawienia w pliku ini st2.conf.
st2_system_user stanley Użytkownik systemowy, z którego st2 będzie wykonywać lokalne/zdalne akcje powłoki.
st2_system_user_in_sudoers yes Dodaj st2_system_user do sudoers (zalecane, aby większość funkcji st2 działała).
st2_ssh_key_file /home/{{st2_system_user}}/.ssh/{{st2_system_user}}_rsa Ścieżka do prywatnego klucza SSH st2_system_user. Zostanie on automatycznie wygenerowany domyślnie.
st2_auth_enable yes Włącz niezależną autoryzację StackStorm.
st2_auth_username testu Nazwa użytkownika używana przez niezależną autoryzację StackStorm.
st2_auth_password testp Hasło używane przez niezależną autoryzację StackStorm.
st2_save_credentials yes Zapisz dane uwierzytelniające dla lokalnego CLI w pliku /root/.st2/config.
st2_rbac_enable no Włącz RBAC.
st2_rbac Zobacz zmienną st2_rbac w domyślnych ustawieniach roli Role i przypisania RBAC. To jest słownik z trzema kluczami roles, assignments i mappings (na podstawie przynależności do grupy LDAP). roles, assignments i mappings to tablice. Każdy element w tablicy przestrzega dokładnej struktury YAML dla uprawnień, przypisania zdefiniowanych w dokumentacji ST2. mappings są nieco inne, używają kluczy name i mapping, zobacz ./roles/StackStorm.st2/defaults/main.yml dla przykładu.
st2_ldap_enable no Włącz backend autoryzacji LDAP.
st2_ldap Zobacz zmienną st2_ldap w domyślnych ustawieniach roli Ustawienia dla backendu autoryzacji LDAP. st2_ldap to słownik i ma jeden element backend_kwargs. backend_kwargs należy podać dokładnie tak, jak w dokumentacji ST2 dla konfiguracji LDAP.
st2_packs [ st2 ] Lista paczek do zainstalowania. Ten flag nie działa z paczką tylko dla --python3.
st2_python_packages [ ] Lista pakietów Pythona do zainstalowania w wirtualnym środowisku /opt/stackstorm/st2. Jest to potrzebne przy wdrażaniu alternatywnych backendów autoryzacji lub koordynacji, które zależą od modułów Pythona, aby działały.
st2web
st2web_version latest Wersja st2web do zainstalowania. present aby zainstalować dostępny pakiet, latest aby uzyskać automatyczne aktualizacje, lub przypiąć ją do wersji numerycznej, takiej jak 2.2.0 lub z rewizją, taką jak 2.2.0-1.
st2web_ssl_certificate null Ciąg z własnym certyfikatem SSL (.crt). Jeśli nie podano, zostanie wygenerowany certyfikat samopodpisany.
st2web_ssl_certificate_key null Ciąg z własnym kluczem tajnym certyfikatu SSL (.key). Jeśli nie podano, zostanie wygenerowany certyfikat samopodpisany.
st2web_nginx_config null Ciąg z własnym plikiem konfiguracyjnym nginx (st2.conf). Jeśli nie podano, zostanie użyty domyślny plik st2.conf.
st2chatops
nodejs_major_version 14 Domyślna wersja odpowiada st2chatops >= 3.5.0.
st2chatops_version latest Wersja st2chatops do zainstalowania. present aby zainstalować dostępny pakiet, latest aby uzyskać automatyczne aktualizacje, lub przypiąć ją do wersji numerycznej, takiej jak 2.2.0 lub z rewizją, taką jak 2.2.0-1.
st2chatops_st2_api_key Klucz API st2 do zaktualizowania w pliku st2chatops.env używając "st2 apikey create -k" w zadaniu
st2chatops_hubot_adapter Adapter Hubota do użycia w st2chatops. Domyślnie to shell, ale powinno być zmienione na jeden z obsługiwanych adapterów.[Wymagane]
st2chatops_config { } Na podstawie adaptera w st2chatops_hubot_adapter, podaj hasz dla ustawień adaptera, aby zaktualizować st2chatops.env. Na przykład, dla adaptera Slack: st2chatops_config: HUBOT_SLACK_TOKEN: xoxb-CHANGE-ME-PLEASE
st2chatops_version latest Wersja st2chatops do zainstalowania. Użyj latest aby uzyskać automatyczne aktualizacje lub przypnij do wersji numerycznej, takiej jak 2.2.0.

Przykłady

Zainstaluj najnowszą wersję stable StackStorm ze wszystkimi jego komponentami na lokalnej maszynie:

ansible-playbook --inventory localhost, --connection local stackstorm.yml

Aby zainstalować StackStorm na zdalnej maszynie nazwanej stackstorm.example.com, utwórz i odwołaj się do inwentarza:

echo "stackstorm.example.com" > inventory
ansible-playbook --inventory inventory stackstorm.yml

Utrzymywanie wersji latest jest przydatne do aktualizacji StackStorm poprzez ponowne uruchomienie playbooka, ponieważ zainstaluje (zaktualizuje) st2, gdy dostępna jest nowa wersja.

To jest domyślne zachowanie. Jeśli nie chcesz aktualizacji, rozważ przypięcie do konkretnych wersji i numerów rewizji.

Zainstaluj konkretną wersję st2 z przypiętym numerem rewizji:

ansible-playbook stackstorm.yml --extra-vars "st2_version=2.2.0 st2_revision=8"

Instalacja za proxy

Jeśli instalujesz za proxy, możesz użyć zmiennych środowiskowych http_proxy, https_proxy i no_proxy w playbooku. Dla testów st2smoketests musisz wyłączyć proxy na localhost.

environment:
  http_proxy: http://proxy.example.net:3128
  https_proxy: http://proxy.example.net:3128
  no_proxy: 127.0.0.1,localhost

Rozwój

Istnieje kilka wymagań podczas rozwijania ansible-st2.

Oto platformy, które musimy obsługiwać (muszą przechodzić testy end-to-end):

  • Ubuntu Focal (20.04)
  • CentOS 7
  • Rocky Linux 8
  • RHEL 7 (poprzez AWS)
  • RHEL 8 (poprzez AWS)

Playbooki i role muszą wspierać idempotencję Ansible. To znaczy, ponowne uruchomienie playbooka stackstorm.yml musi kończyć się wynikiem changed=0.*failed=0 (pod warunkiem, że wersje i rewizje są przypięte).

Dla lokalnego rozwoju jest dostępny Vagrantfile. Domyślnie, następujące polecenie skonfiguruje pudełko ubuntu20 (ubuntu/focal64):

vagrant up

Inne wspierane dystrybucje:

vagrant up ubuntu20
vagrant up centos7
vagrant up rockylinux8

Inne metody instalacji

Możesz być zainteresowany innymi metodami wdrożenia StackStorm:

Uzyskiwanie pomocy

Jeśli napotkasz jakiekolwiek problemy, nasza społeczność jest gotowa do pomocy, nie wahaj się:

Twoje pytania, uwagi i wkłady są bardzo mile widziane i doceniane!

O projekcie

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

Zainstaluj
ansible-galaxy install StackStorm.stackstorm
Licencja
apache-2.0
Pobrania
624.6k
Właściciel
Event-driven automation. Used by Netflix & many more....