StackStorm.stackstorm
Ansible-st2
This contains Ansible roles and playbooks to set up StackStorm.
StackStorm is an automation platform that runs on events and is written in Python. It integrates with over 50 tools like GitHub, Docker, Nagios, and AWS, allowing you to connect your current infrastructure into complex workflows for tasks like automatic recovery.
Supported Platforms
- Ubuntu Focal (20.04)
- RHEL 7 and CentOS 7
- RHEL 8 and Rocky Linux 8
If you use the provided
Vagrantfile
, it defaults to Ubuntu Focal.
Remember to allow HTTP and HTTPS ports in your firewall to access the StackStorm Web UI.
Requirements
You need a compatible version of Ansible and its dependencies. You also need at least 2 GB of RAM and 3.5 GB of disk space, as StackStorm includes RabbitMQ, Mongo, Redis, and nginx.
Installation
# Deploy StackStorm
ansible-playbook stackstorm.yml
Variables
Here are the variables you can change in your playbook or inventory to customize your StackStorm setup:
Variable | Default | Description |
---|---|---|
st2repo | ||
st2repo_name |
stable |
StackStorm package repository (choose from stable, unstable, or staging versions). |
st2 | ||
st2_version |
latest |
Version of StackStorm to install (use present for the latest package without updates). |
st2_config |
{} |
Configuration settings for StackStorm. |
st2_system_user |
stanley |
The user account StackStorm will use for actions. |
st2_ssh_key_file |
/home/{{st2_system_user}}/.ssh/{{st2_system_user}}_rsa |
Path to the SSH private key for st2_system_user (generated automatically). |
st2_auth_enable |
yes |
Enable standalone authentication for StackStorm. |
st2_auth_username |
testu |
Username for authentication. |
st2_auth_password |
testp |
Password for authentication. |
st2web | ||
st2web_version |
latest |
Version of st2web to install. |
st2chatops | ||
st2chatops_version |
latest |
Version of st2chatops to install. |
st2chatops_hubot_adapter |
Adapter to use for st2chatops (must select from supported options). |
Examples
To install the latest stable StackStorm on a local machine:
ansible-playbook --inventory localhost, --connection local stackstorm.yml
To install StackStorm on a remote machine named stackstorm.example.com
, create an inventory file:
echo "stackstorm.example.com" > inventory
ansible-playbook --inventory inventory stackstorm.yml
You can keep StackStorm updated by re-running the playbook with the
latest
version setting.
To install a specific version of StackStorm:
ansible-playbook stackstorm.yml --extra-vars "st2_version=2.2.0 st2_revision=8"
Installing Behind a Proxy
If you're installing from behind a proxy, you can specify environment variables in the playbook:
environment:
http_proxy: http://proxy.example.net:3128
https_proxy: http://proxy.example.net:3128
no_proxy: 127.0.0.1,localhost
Development
For development with ansible-st2
, ensure compatibility with the following platforms:
- Ubuntu Focal (20.04)
- CentOS 7
- RHEL 7 (via AWS)
- RHEL 8 (via AWS)
The playbooks should support Ansible idempotence, which means running the playbook multiple times should not produce changes unless you've updated versions.
For local development, you can use the provided Vagrantfile:
vagrant up
You can also set up other supported distributions:
vagrant up centos7
vagrant up rockylinux8
Other Installation Methods
Other ways to deploy StackStorm include:
Configuration Management
Manual Instructions
Getting Help
If you run into issues, join our community for support:
- Ask questions in our public Slack channel
- Report issues, request features, or give this project a star.
We welcome your input and contributions!
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