Ascender Kit provides ascender, the official command line client for Ascender, along with the Python library that backs it. Rather than hard-coding a list of commands, the CLI discovers what your server supports at runtime by issuing HTTP OPTIONS requests against the REST API, so the resources and arguments you see are the ones your Ascender version actually offers.
- Python 3.11 or newer
pip install ascender-kitSome capabilities are kept behind extras so the base install stays small:
pip install ascender-kit[websockets] # job output streaming
pip install ascender-kit[formatting] # jq-style filtering of JSON output
pip install ascender-kit[crypto] # encrypted credential supportgit clone https://github.com/ctrliq/ascender-kit.git
pip install -e ascender-kitPoint the client at your server and confirm it can authenticate:
export CONTROLLER_HOST=https://ascender.example.org
export CONTROLLER_USERNAME=alice
export CONTROLLER_PASSWORD=secret
ascender configBecause the command set is discovered from the server, --help is the reference:
ascender --help # every available resource
ascender job_templates --help # every action on job templates
ascender job_templates launch --help # every argument for one actionA few common operations:
ascender jobs list -f human --filter name,created,status
ascender job_templates launch 'Example Job Template' --monitor -f human
ascender export > resources.jsonConnection settings resolve from highest to lowest precedence:
| Precedence | Source |
|---|---|
| 1 | Command line flags, such as --conf.host and --conf.token |
| 2 | Environment variables: CONTROLLER_HOST, CONTROLLER_USERNAME, CONTROLLER_PASSWORD |
| 3 | The config file written by ascender login and ascender config |
For repeated use, generate a token instead of passing credentials each time:
$(ascender login -f human)ascenderCLI: the command line client, with resources discovered at runtimeascenderkitlibrary: the same API client, importable for your own tooling- Output formats: JSON by default, plus YAML and human-readable tables via
-f - Field filtering: narrow output to the columns you care about with
--filter - Job monitoring: follow job output over a websocket with
--monitor - Import and export: move resources between servers with
exportandimport
Ascender Kit uses tox to manage test environments.
- Full suite:
tox - Tests only:
tox -e test - Lint only:
tox -e lint
- CLI documentation lives in
ascenderkit/cli/docs - Product documentation is at docs.ascender-automation.org
| 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.
- 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.