A modern, agentless, zero-dependency system state assurance
Project description
Hidori
Hidori is a modern, agentless, zero-dependency[^1] variation on updating system state. General rule of thumb is that changes to the system are only done if the requested state is different from the actual state. Hidori modules are idempotent if the system is already in the desired state. Every change in the destination system is reported through the modules log as "affected".
Hidori communicates with destination machines through appropriate protocol that is designated by the chosen driver.
Install
Depending on your environment you might wish to install Hidori globally or locally using chosen Python dependency manager such as poetry or pip. Ultimately, the choice is yours. Either way, Hidori is safe for your Python environment - it does not pull any dependencies from PyPI.
Example using pip:
pip install hidori
Hello World
With Hidori installed you need a single TOML file that provides where and what should be done. A simple 'hello world' example assuming that some machine is available at the given target:
[destinations]
[destinations.vm]
target = "192.168.122.31"
user = "root"
[tasks]
[tasks."Say hello"]
module = "hello"
Now you just need to run it (example assumes the file is named pipeline.toml
):
hidori-pipeline run pipeline.toml
The result on my machine is:
[root@vm: Say hello]
[16:03:19] OK: Hello from Linux debian 4.19.0-21-amd64
Support
In general, Hidori is based on Python 3.11, but hidori_core
runs with any version of Python that is still supported.
Reason for that is vast majority of destination systems don't have the latest Python runtime installed, so therefore hidori_core
which includes all the code that runs on a destination system can be expected to be supported according to the following table:
Python Version | EOL Date |
---|---|
3.8 | November 2024 |
3.9 | November 2025 |
3.10 | November 2026 |
3.11 | November 2027(?) |
Development
The dev environment can be setup with poetry:
poetry install
[^1]: Except for the necessary runtime - python, and system libraries that are used by modules
License
Hidori is licensed under both the MIT and the EUPL-1.2 licenses.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file hidori-0.3.0.tar.gz
.
File metadata
- Download URL: hidori-0.3.0.tar.gz
- Upload date:
- Size: 24.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2d1e93f338a1f43a5eadfd30a075a0019f03cc015fe3a64b4f93ad4a89ba19c |
|
MD5 | e18ae108c86398454080e21204694b5b |
|
BLAKE2b-256 | 120ece66c0ecda7c2f30270a1256a4fbe06a0bf2285d5ac99446f2c5b8f27b33 |
File details
Details for the file hidori-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: hidori-0.3.0-py3-none-any.whl
- Upload date:
- Size: 30.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed48bed94635d70219ef1db0a70fd88cdc1c5895365d80d0d71394efde83f6ac |
|
MD5 | 6e9cd21a8ea12c021072bd45e1031db2 |
|
BLAKE2b-256 | 63f1867a39a5ffcce53f2cd7a148bfe27e99ae48bb9397259d90e87113ee532c |