Skip to content

Ascender Kit

CI License PyPI Python

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.

Requirements

  • Python 3.11 or newer

Installation

From PyPI

pip install ascender-kit

Some 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 support

From source

git clone https://github.com/ctrliq/ascender-kit.git
pip install -e ascender-kit

Using the client

Point 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 config

Because 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 action

A 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.json

Authentication

Connection 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)

Included content

  • ascender CLI: the command line client, with resources discovered at runtime
  • ascenderkit library: 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 export and import

Testing

Ascender Kit uses tox to manage test environments.

  • Full suite: tox
  • Tests only: tox -e test
  • Lint only: tox -e lint

Documentation

The Ascender ecosystem

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

Contributing

License

Licensed under the Apache License 2.0. See LICENSE and NOTICE.txt.

About

The official command line interface for Ascender Automation

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages