StackStorm.stackstorm
Ansible-st2
Ansible est un outil qui permet de déployer StackStorm.
StackStorm est une plateforme d'automatisation basée sur des événements, écrite en Python. Avec plus de 50+ intégrations comme GitHub, Docker, Nagios, NewRelic, AWS et Ansible, elle vous permet de connecter votre infrastructure existante en des flux de travail complexes avec auto-rémédiation et bien plus encore. En gros, c'est une orchestration similaire à IFTTT pour les opérations.
Plateformes prises en charge
- Ubuntu Focal (20.04)
- RHEL 7 et CentOS 7
- RHEL 8 et Rocky Linux 8
Si vous utilisez le fichier
Vagrantfile
fourni, sachez qu'il utilise Focal par défaut.
Pour accéder à l'interface Web de StackStorm, n'oubliez pas de vous assurer que les ports http et https sont autorisés par le pare-feu.
Exigences
Une version prise en charge d'Ansible et ses dépendances. Il est nécessaire d'avoir au moins 2 Go de mémoire et 3,5 Go d'espace disque, car StackStorm est livré avec RabbitMQ, Mongo, Redis et nginx.
Installation
# Déployer StackStorm
ansible-playbook stackstorm.yml
Variables
Voici la liste des variables que vous pouvez redéfinir dans votre playbook ou votre inventaire pour personnaliser le déploiement de StackStorm :
Variable | Par défaut | Description |
---|---|---|
st2repo | ||
st2repo_name |
stable |
Dépôt du package StackStorm à installer. stable , unstable , staging-stable , staging-unstable |
st2 | ||
st2_version |
latest |
Version de StackStorm à installer. present pour installer le package disponible, latest pour obtenir des mises à jour automatiques, ou épingler à une version numérique comme 2.2.0 ou avec une révision comme 2.2.0-1 |
st2_config |
{} |
Hash avec les paramètres de configuration de StackStorm à mettre dans le fichier ini st2.conf . |
st2_system_user |
stanley |
Utilisateur système à partir duquel st2 exécutera des actions shell locales/à distance. |
st2_system_user_in_sudoers |
yes |
Ajouter st2_system_user aux sudoers (recommandé pour la plupart des fonctionnalités de st2 ). |
st2_ssh_key_file |
/home/{{st2_system_user}}/.ssh/{{st2_system_user}}_rsa |
Chemin vers la clé privée SSH de st2_system_user . Elle sera générée par défaut. |
st2_auth_enable |
yes |
Activer l'authentification autonome de StackStorm. |
st2_auth_username |
testu |
Nom d'utilisateur utilisé par l'authentification autonome de StackStorm. |
st2_auth_password |
testp |
Mot de passe utilisé par l'authentification autonome de StackStorm. |
st2_save_credentials |
yes |
Sauvegarder les identifiants pour le CLI local dans le fichier /root/.st2/config . |
st2_rbac_enable |
no |
Activer RBAC. |
st2_rbac |
Voir la variable st2_rbac dans les valeurs par défaut du rôle |
Rôles et attributions RBAC. C'est un dictionnaire avec trois clés roles , assignments et mappings (basé sur l'appartenance au groupe LDAP). roles , assignments et mappings sont des tableaux. Chaque élément du tableau suit exactement le schéma YAML pour les rôles, les attributions définies dans la documentation ST2. mappings est un peu différent, il utilise une clé name et une clé mapping , voir ./roles/StackStorm.st2/defaults/main.yml pour un exemple. |
st2_ldap_enable |
no |
Activer le backend d'authentification LDAP. |
st2_ldap |
Voir la variable st2_ldap dans les valeurs par défaut du rôle |
Paramètres pour le backend d'authentification LDAP. st2_ldap est un dictionnaire et contient un élément backend_kwargs . backend_kwargs doit être fourni comme exactement listé dans la documentation ST2 pour la configuration LDAP. |
st2_packs |
[ st2 ] |
Liste des packs à installer. Ce paramètre ne fonctionne pas avec un pack uniquement --python3 . |
st2_python_packages |
[ ] |
Liste des paquets Python à installer dans l'environnement virtuel de /opt/stackstorm/st2 . Cela est nécessaire lors du déploiement d'authentifications alternatives ou de backends de coordination qui dépendent de modules Python pour fonctionner. |
st2web | ||
st2web_version |
latest |
Version de st2web à installer. present pour installer le package disponible, latest pour obtenir des mises à jour automatiques, ou épingler à une version numérique comme 2.2.0 ou avec une révision comme 2.2.0-1 . |
st2web_ssl_certificate |
null |
Chaîne contenant un certificat SSL personnalisé (.crt ). S'il n'est pas fourni, un certificat auto-signé sera généré. |
st2web_ssl_certificate_key |
null |
Chaîne contenant la clé secrète du certificat SSL personnalisé (.key ). S'il n'est pas fourni, un certificat auto-signé sera généré. |
st2web_nginx_config |
null |
Chaîne contenant un fichier de configuration nginx personnalisé (st2.conf ). S'il n'est pas fourni, le st2.conf par défaut sera utilisé. |
st2chatops | ||
nodejs_major_version |
14 |
La valeur par défaut convient à st2chatops version >= 3.5.0. |
st2chatops_version |
latest |
Version de st2chatops à installer. present pour installer le package disponible, latest pour obtenir des mises à jour automatiques, ou épingler à une version numérique comme 2.2.0 ou avec une révision comme 2.2.0-1 . |
st2chatops_st2_api_key |
Clé API st2 à mettre à jour dans st2chatops.env en utilisant "st2 apikey create -k" dans une tâche. | |
st2chatops_hubot_adapter |
Adaptateur Hubot à utiliser pour st2chatops. La valeur par défaut est shell , mais doit être changée pour l'un des adaptateurs pris en charge . [Requis] |
|
st2chatops_config |
{ } |
En fonction de l'adaptateur dans st2chatops_hubot_adapter , fournir un hash pour les paramètres de l'adaptateur, pour mettre à jour st2chatops.env . Par exemple, pour l'adaptateur hubot Slack : st2chatops_config: HUBOT_SLACK_TOKEN: xoxb-CHANGE-ME-PLEASE |
st2chatops_version |
latest |
Version de st2chatops à installer. Utilisez latest pour obtenir des mises à jour automatiques ou épinglez-le à une version numérique comme 2.2.0 . |
Exemples
Installer la dernière version stable
de StackStorm avec tous ses composants sur une machine locale :
ansible-playbook --inventory localhost, --connection local stackstorm.yml
Pour installer StackStorm sur une machine distante nommée stackstorm.example.com
, créez et référencez un inventaire :
echo "stackstorm.example.com" > inventory
ansible-playbook --inventory inventory stackstorm.yml
Conserver la version
latest
est utile pour mettre à jour StackStorm en exécutant de nouveau le playbook, car il réinstallera (mettra à niveau) st2 lorsqu'une nouvelle version sera disponible.
C'est le comportement par défaut. Si vous ne souhaitez pas de mises à jour, envisagez d'épingler des numéros de version et de révision spécifiques.
Installer une version spécifique de st2 avec un numéro de révision épinglé :
ansible-playbook stackstorm.yml --extra-vars "st2_version=2.2.0 st2_revision=8"
Installation derrière un proxy
Si vous installez derrière un proxy, vous pouvez utiliser les variables d'environnement http_proxy
, https_proxy
et no_proxy
dans le playbook. Pour les tests st2smoketests, vous devrez désactiver le proxy pour localhost.
environment:
http_proxy: http://proxy.example.net:3128
https_proxy: http://proxy.example.net:3128
no_proxy: 127.0.0.1,localhost
Développement
Il y a quelques exigences lors du développement sur ansible-st2
.
Voici les plateformes que nous devons prendre en charge (doivent passer des tests de bout en bout) :
- Ubuntu Focal (20.04)
- CentOS 7
- Rocky Linux 8
- RHEL 7 (via AWS)
- RHEL 8 (via AWS)
Les playbooks et rôles doivent prendre en charge l'idempotence d'Ansible.
C'est-à-dire que relancer le playbook stackstorm.yml
doit se terminer avec le résultat changed=0.*failed=0
(à condition que les versions et révisions soient épinglées).
Pour le développement local, un Vagrantfile est disponible.
Par défaut, la commande suivante mettra en place une machine virtuelle Ubuntu 20 (ubuntu/focal64
) :
vagrant up
Autres distributions prises en charge :
vagrant up ubuntu20
vagrant up centos7
vagrant up rockylinux8
Autres méthodes d'installation
Vous pourriez être intéressé par d'autres méthodes pour déployer StackStorm :
Gestion de configuration
Instructions manuelles
Obtenir de l'aide
Si vous rencontrez des problèmes, notre communauté est prête à aider, n'hésitez pas à :
- Poser des questions dans notre canal Slack public
- Signaler des problèmes, proposer des demandes de fonctionnalités, ou simplement donner une étoile à ce projet ✮
Vos questions, commentaires et contributions sont les bienvenus et grandement appréciés !
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