Ascender provides a web-based user interface, REST API, and task engine built on top of Ansible. It is the automation platform at the centre of this project, based on the upstream AWX project and maintained by Ctrl IQ.
- Docker with Compose, for the development environment
- Python 3.12, matching what the container images build against
- A Kubernetes cluster for production, which the installer can provision for you
For production, use the Ascender installer. It deploys onto a single VM using k3s, or onto AKS, DKP, EKS, GKE, RKE2, OCP, or TKGI with a kubeconfig and a namespace.
For development, bring up the containerised environment:
make docker-composeSee Running the Development Environment in Docker for the full walkthrough, and kind.md or minikube.md for cluster-based alternatives.
Once the development stack is up, create an administrator and start the services:
make adduser
make migrateThe Makefile is the entry point for day-to-day work, covering requirements, develop, and collectstatic.
To drive a running server from the command line or from a playbook, use ascender-kit or the ctrliq.ascender collection.
Ascender uses pytest, with tox for environment management.
- Unit and functional:
py.test awx/main/tests/ - Configuration:
pytest.iniandtox.ini
- Product documentation is at docs.ascender-automation.org
- Developer documentation lives in docs/, covering clustering, credentials, and mesh
| Repository | Description |
|---|---|
| ascender | The platform itself: web UI, REST API, and task engine |
| ascender-install | Installer for Ascender and Ledger, with Galaxy Proxy support |
| ascender-k8s-install | Kubernetes installer for Ascender, Ledger, and React |
| ascender-pro-install | Enhanced installer adding Reaqt, Registry, and Galaxy Proxy |
| ascender-operator | Kubernetes operator that deploys and manages Ascender |
| ascender-ee | Default execution environment image for Ascender jobs |
| ascender-kit | The ascender command line client and Python API library |
| ascender-collection | The ctrliq.ascender Ansible collection for a controller |
| ascender-ledger | Reporting tool for host facts and playbook changes |
| ascender-galaxy-proxy | Caching proxy for Ansible Galaxy collection downloads |
| ascender-playbooks | Example playbooks for use with Ascender |
- See CONTRIBUTING.md for development setup, testing, and pull requests.
- Contributions require a Developer Certificate of Origin sign-off, per DCO_1_1.md.
- Report bugs and feature ideas via GitHub Issues.
- For security vulnerabilities, follow SECURITY.md rather than opening an issue.
- Join the Ascender forum to discuss development topics.
Licensed under the Apache License 2.0. See LICENSE and NOTICE.txt.
Third-party component licenses are collected in licenses/.