Set up a dissolvable, ephemeral salt minion using salt-ssh
Project description
Soluble is a tool for setting up, managing, and tearing down ephemeral Salt minions on remote systems u sing 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 aims to streamline the deployment of ephemeral nodes with Salt leveraging 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 -R /path/to/roster 'test.ping'
In this example: - The -R flag specifies the path to the roster file for salt-ssh. - The first positional argument (test.ping) 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
Img Shields for making repository badges easy.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file soluble-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: soluble-0.2.0-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85169060ec57f0d2d806bdc692db9374e2695b534dbc0a85c6919d8087e2fd46 |
|
MD5 | 9572dc5f01468f30ad6df99f7e91b790 |
|
BLAKE2b-256 | 70f5533042bf3fb00500f599af43e7feedbf30e5cac7dc005dd5895de0559ebf |