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.

Tests E2E Dépôt deb/rpm Rejoignez notre communauté Slack

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 :

Obtenir de l'aide

Si vous rencontrez des problèmes, notre communauté est prête à aider, n'hésitez pas à :

Vos questions, commentaires et contributions sont les bienvenus et grandement appréciés !

À propos du projet

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

Installer
ansible-galaxy install StackStorm.stackstorm
Licence
apache-2.0
Téléchargements
624.6k
Propriétaire
Event-driven automation. Used by Netflix & many more....