Skip to main content Skip to docs navigation
Check
View on GitHub

Provisioner Runtime

Python powered CLI for dynamic plugins management.

On this page

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"