Provisioner Runtime
Python powered CLI for dynamic plugins management.
Quickstart
Provisioner has a built-in plugins
CLI command for plugins management. To get a list of available commands:
provisioner plugins
Task | Description |
---|---|
install |
Search and install plugins from remote |
list |
List locally installed provisioner plugins |
uninstall |
Select local plugins to uninstall |
Runtime Engine
The provisioner-runtime
pip package is required to dynamically load plugins from local pip.
Provisioner plugins are configured to hook into provisioner CLI menu, their commands become visibile once those are identified and loaded by provisioner at runtime.
Removing such plugins from pip will remove their commands from provisioner
CLI menu as well.
Framework
Provisioner is used as a framework for creating new plugins in a no-brainer manner, simple and quick.
Is is a fully featured Python CLI framework supports a wide range of common utilities, interactive terminal and core capabilities such as config-management, flag modifiers (verbose, dry-run, auto-prompt) and much more…
Partial list of available features:
- Configuration management (internal and custom user config)
- Collaborators utilities (lightweight wrappers for common actions)
- Ansible programmatic wrapper for running as-hoc commands or Ansible playbooks - simply and easily
- Flags modifiers out of the box (verbose, silent, dry-run, auto-prompt, non-interactive)
- CLI application lifecycle made easy, simply structured and extensible
- (Optional) Functional library for writing functional plugins (see installers plugin for example)
- Remote connector that encapsulates all remote SSH info collection from different sources (config, user, flags, env vars), acts as a single connection point to any remote machine
- And much more…
Poetry
This section is relevant when using the Poetry package manager to pacakge your Python modules. To use provisioner-runtime
as a Python dependency simply add it to the pyproject.toml
file:
[tool.poetry.dependencies]
python = "^3.11"
provisioner-shared = "^0.1.10"