Docker Compose deployment for StackStorm + Rundeck with the Pathgate workflows pack.
This repository provides a ready-to-run StackStorm environment with a custom action runner for modern Ansible/Junos, a development pack pathgate (Orquesta workflows) with Jinja templates, and a preloaded Rundeck job to trigger the main workflow.
- Custom action runner image built from
Dockerfile.override - Ansible + Juniper collections preinstalled and wired via an entrypoint shim
packs.dev/pathgatewith actions and workflows (e.g.,epl_aso_v1)- Playbooks and inventory for Junos devices
- Rundeck job which calls StackStorm via API Key
Quick start and details are in this document. For the original upstream st2-docker README, see the StackStorm project docs.
- Spanish version of this README:
readme.es.md
- Services: st2api, st2auth, st2web, st2stream, st2scheduler, st2workflowengine, st2rulesengine, st2sensorcontainer, st2notifier, st2garbagecollector, st2client
- Custom runner:
st2actionrunner-custom - Rundeck
rundeck/rundeck:5.15.0with bootstrap jobs/tools - Datastores: MongoDB 4.4, RabbitMQ 3.12, Redis 7.2
- Key mounts: playbooks, inventory, templates, packs.dev, configs, virtualenvs
- Docker with Compose v2
- Free ports: 80 (st2web), 4440 (Rundeck) – configurable
# From repo root
docker compose up -d --build
# Install Exchange packs used by workflows
docker compose exec st2client bash -lc "st2 pack install ansible netbox"
# Configure NetBox pack if used
docker compose exec st2client bash -lc "st2 pack config netbox"
# Register and set up the development pack
docker compose exec st2client bash -lc "st2 run packs.load packs=pathgate register=all"
docker compose exec st2client bash -lc "st2 run packs.setup_virtualenv packs=pathgate"
# Create a StackStorm API key for Rundeck and store it in Rundeck Key Storage
docker compose exec st2client bash -lc "st2 apikey create -k"docker compose exec st2client bash -lc "\
st2 run pathgate.epl_aso_v1 \
sid=12345 pad=PE-A paif=xe-0/0/0 \
pbd=PE-B pbif=xe-0/0/1 \
bw=50 lmpvlan=123 prov=ACME dry_run=true"Or use the preloaded Rundeck job “pathgate - epl_aso_v1” and provide the same inputs.
- Inventory template is provided as
ansible_inventory.example. Copy toansible_inventoryand edit safely (the real file is gitignored). - The custom runner exposes a modern Ansible toolchain and Juniper modules for the
ansiblerunner. - Templates live under
templates/and can be referenced by therender_vplsaction.
Based on StackStorm st2-docker (see LICENSE). This repository adds the Pathgate customization on top of upstream.