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.
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:
Zarządzanie konfiguracją
Instrukcje ręczne
Uzyskiwanie pomocy
Jeśli napotkasz jakiekolwiek problemy, nasza społeczność jest gotowa do pomocy, nie wahaj się:
- Zadawaj pytania w naszym publicznym kanale Slack
- Zgłaszaj problemy, dostarczaj prośby o funkcje lub po prostu daj temu projektowi ✮ gwiazdkę
Twoje pytania, uwagi i wkłady są bardzo mile widziane i doceniane!
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