Ansible playbooks to deploy StackStorm.
StackStorm is event-driven automation platform written in Python. With over 50+ integrations like GitHub, Docker, Nagios, NewRelic, AWS, Ansible it allows you to wire together your existing infrastructure into complex Workflows with auto-remediation and many more. Aka IFTTT orchestration for Ops.
- Ubuntu Trusty (14.04)
- Ubuntu Xenial (16.04)
If you're using the provided Vagrantfile, note that it uses Xenial by default. Due to some of the changes there, Vagrant 1.9.1 or better is required.
At least 2GB of memory and 3.5GB of disk space is required, since StackStorm is shipped with RabbitMQ, PostgreSQL, Mongo and OpenStack Mistral.
# ansible galaxy roles
ansible-playbook requirements.yml
# stackstorm
ansible-playbook stackstorm.yml
Ansible Galaxy roles used by StackStorm installation:
- ANXS.postgresql - PostgreSQL, needed by Mistral
Below is the list of variables you can redefine in your playbook to customize st2 deployment:
Variable | Default | Description |
---|---|---|
st2_pkg_repo |
stable |
StackStorm PackageCloud repository to install. stable , unstable , staging-stable , staging-unstable |
st2_version |
stable |
StackStorm version to install. Use latest stable to get automatic updates or pin it to numeric version like 1.4.0 . |
st2_revision |
1 |
StackStorm revision to install. Used only with pinned st2_version . |
st2_system_user |
stanley |
System user on whose behalf st2 would work, including remote/local action runners. |
st2_system_user_in_sudoers |
yes |
Add st2_system_user to the sudoers (recommended for most st2 features to work). |
st2_auth_username |
testu |
Username used by StackStorm standalone authentication. |
st2_auth_password |
testp |
Password used by StackStorm standalone authentication. |
mistral_db |
mistral |
PostgreSQL DB name for Mistral. |
mistral_db_username |
mistral |
PostgreSQL DB user for Mistral. |
mistral_db_password |
StackStorm |
PostgreSQL DB password for Mistral. |
Install latest stable
StackStorm with all its components on local machine:
ansible-playbook stackstorm.yml -i 'localhost,' --connection=local
Note that keeping
stable
version is useful to update StackStorm by re-running playbook, since it will reinstall st2 if there is new version available. This is default behavior. If you don't want updates - consider pinning version-revision numbers.
Install specific numeric version of st2 with pinned revision number as well:
ansible-playbook stackstorm.yml --extra-vars='st2_version=1.4.0 st2_revision=8'
You might be interested in other methods to deploy StackStorm engine:
-
Configuration Management
-
Manual Instructions
If you're in stuck, our community always ready to help, feel free to:
- Ask questions in our public Slack channel
- Report bug, provide feature request or just give us a ✮ star
Your contribution is more than welcome!