Skip to main content

Set up a dissolvable, ephemeral salt minion using salt-ssh

Project description

Made with pop, a Python implementation of Plugin Oriented Programming Made with Python

Soluble is a tool for setting up, managing, and tearing down ephemeral Salt minions on remote systems using a streamlined Python-based approach. It simplifies the deployment of temporary nodes that can execute Salt commands and clean up afterward, making it ideal for transient infrastructure needs.

About

Soluble is designed to replace the discontinued Heist project by SaltStack/VMware/Broadcom, which aimed to streamline the deployment of ephemeral nodes with Salt. Soluble leverages salt-ssh for setting up and tearing down temporary Salt minions, allowing users to execute Salt commands on these minions before safely removing them. The entire process is managed by a Python script, ensuring ease of use, flexibility, and integration with existing Python-based infrastructure.

What is POP?

This project is built with pop, a Python-based implementation of Plugin Oriented Programming (POP). POP seeks to bring together concepts and wisdom from the history of computing in new ways to solve modern computing problems.

For more information:

Getting Started

Prerequisites

  • Python 3.10+

  • git (if installing from source, or contributing to the project)

  • SaltStack installed on the master node

  • salt-ssh and salt-key commands available

Installation

If wanting to use soluble, you can do so by either installing from PyPI or from source.

Install from PyPI

If package is available via PyPI, include the directions.

pip install soluble

Install from source

# clone repo
git clone git@<your-project-path>/soluble.git
cd soluble

# Setup venv
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Usage

Soluble is designed to simplify the process of setting up ephemeral Salt minions, running commands, and then cleaning up those minions. Here’s a basic usage example:

# Example usage of soluble.py
./soluble.py -r /path/to/roster -m /path/to/minion.conf 'state.highstate' -- -c /etc/salt --verbose

In this example: - The -R flag specifies the path to the roster file for salt-ssh. - The –minion-config flag specifies the minion configuration template. If not provided, it defaults to /etc/salt/minion. - The first positional argument (state.highstate) is the Salt command to be executed on the ephemeral minions.

Examples

Here are a few more examples of how you can use Soluble:

# Install a package on ephemeral nodes
soluble minion '*' 'pkg.install vim'

# Apply a state file
soluble '*' 'state.apply my_state'

# Ping minions
soluble minion '*' 'test.ping'

Roadmap

Reference the open issues for a list of proposed features (and known issues).

The project roadmap includes: - Expanding support for additional Salt modules and functions. - Enhancing error handling and logging for more robust operation. - Integration with other infrastructure management tools.

Acknowledgements

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

soluble-0.1.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

soluble-0.1.0-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file soluble-0.1.0.tar.gz.

File metadata

  • Download URL: soluble-0.1.0.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for soluble-0.1.0.tar.gz
Algorithm Hash digest
SHA256 df0dd0bcd22b32f89a6a03ae9c238e269db760186fc212cbedb4ac5d8b4ade99
MD5 26676bdc1a466a7548ad9c64eab88cb1
BLAKE2b-256 1b917afd5ce2aa5bdd6f26b38142757084196445cfd9c14f3898213e1127cd7f

See more details on using hashes here.

File details

Details for the file soluble-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: soluble-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for soluble-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 36deb83825a99b7ccc8b80fbb9f20fb6bb1261fb0e2cccb5845702405ca3c3c3
MD5 fe60813669035abb5f10c3977fc87ead
BLAKE2b-256 0c8acf95507cb16ac4f90674a764925a4538b243f33d795bb09c3d08858226a9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page