https://github.com/vdmitriyev/pymultissher
pymultissher is a simple CLI tool that runs commands on multiple servers over SSH
https://github.com/vdmitriyev/pymultissher
Last synced: 5 months ago
JSON representation
pymultissher is a simple CLI tool that runs commands on multiple servers over SSH
- Host: GitHub
- URL: https://github.com/vdmitriyev/pymultissher
- Owner: vdmitriyev
- License: mit
- Created: 2024-07-11T16:41:16.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-11-02T18:05:14.000Z (8 months ago)
- Last Synced: 2025-11-02T19:13:15.850Z (8 months ago)
- Language: Python
- Homepage:
- Size: 187 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: HISTORY.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE
Awesome Lists containing this project
README
## About
pymultissher is a simple CLI tool that runs commands on multiple servers over SSH.
## Why "yet another" SSH tool?
There is already endless number of tools and utilities, which are able to run commands on a cluster of servers over SSH (e.g., [ansible](https://github.com/ansible/ansible), [fabric](https://github.com/fabric/fabric), [paramiko](https://github.com/paramiko/paramiko), `you-name-it`). However, from time to time you just need a simple and straightforward CLI tool, which take a list of domains and runs a list of command on them over SSH and aggregates output. This is exactly what [pymultissher](https://github.com/vdmitriyev/pymultissher) is trying to accomplish.
P.S. SSH heavy-lifting is done by [Paramiko](https://www.paramiko.org/)
## How it works?
The utility relies on two YAML configuration files to control its operations:
* `domains.yml`: This file defines default SSH values and domain names. Each domain can have its own set of SSH parameters.
* `commands.yml`: This file specifies the commands to be executed over SSH connections.
You can generate these initial configuration files using the `init` argument.
The utility also allows using custom YAML configuration files to store domain information and commands.
## Getting Started
* Install (TestPyPI)
```
pip install --index-url https://test.pypi.org/simple/ --upgrade pymultissher
```
* Generate initial configuration files
```
pymultissher init
```
* Edit YAML configuration files according to needs
* List available CLI parameters
```
pymultissher --help
```
* Running with `--dry-run` option, which will not executed any commands over SSH
```
pymultissher run-command --command "whoiam" --dry-run
```
* Utility could also be started as a Python module. Here is an example:
```
python -m pymultissher --help
```
## Usage: CLI
Output of the CLI command:
```
pymultissher --help
```

N.B. CLI could be also run as a Python module: ```python -m pymultissher --help```
## Documentation
[Documentation](https://vdmitriyev.github.io/pymultissher/)
## Contributing
Please, check [CONTRIBUTING.rst](https://github.com/vdmitriyev/pymultissher/blob/main/CONTRIBUTING.rst)
## License
[MIT](https://github.com/vdmitriyev/pymultissher/blob/main/LICENSE)