quick system configuration tool
Project description
A sysplan apply command in the fashion of netplan.
Overview
In /etc/sysplan.d, you can add .yaml configuration files that sysplan will be able to apply on your system. You will be able to generate systemd stuff, add your custom bash modules, and even more complex python modules to infinitely extend sysplan to your taste.
The structure of the yaml file is as such:
plugin_name:
your-first-plan-name:
any: config
for:
- your
- plan
Tutorial
Basics and systemd
Try adding the following content into /etc/sysplan.d/example_systemd.yaml:
services:
sysplan-test-service:
TEST_ENV_VAR: 2
Unit:
Description: Example Service
Service:
Type: oneshot
ExecStart: /bin/bash -c 'echo nice!'
WorkingDirectory: /tmp
timers:
sysplan-test-service:
Timer:
OnCalendar: '*-*-* 23:00:00'
mounts:
mnt-backups:
Unit:
Description: Mount NFS Share
Mount:
What: 172.24.0.5:/srv/backups
Where: /mnt/backups
Type: nfs
Options: defaults
TimeoutSec: 10
Install:
WantedBy: multi-user.target
Then, try the following commands:
sysplan diff
sysplan apply
sysplan destroy
sysplan help
Custom bash modules
Add the following to /etc/sysplan.d/bash_example.yaml:
bash_example.sh:
plan-one:
somevar: date
nested:
- item: /tmp/$plan_name
plan-two:
somevar: uname -a
Add the following to /etc/sysplan.d/bash_example.sh:
write() {
$somevar > /tmp/$plan_name
cat /tmp/$plan_name
}
diff() {
if [ ! -f $nested_0_item ]; then
echo + $nested_0_item TO CREATE
else
$somevar | $(which diff) -u $nested_0_item -
fi
}
activate() {
echo activated >> /tmp/$plan_name
}
destroy() {
rm -rf /tmp/$plan_name
}
Then again, play with the sysplan commands.
Custom python module
Custom Python modules are registered on the sysplan_plans entry points. For example, this is how the systemd plans are registered is setup.py:
entry_points={
'sysplan_plans': [
'services = sysplan.systemd:ServicePlan',
'mounts = sysplan.systemd:MountPlan',
'timers = sysplan.systemd:TimerPlan',
],
},
As such, the pointed python plan classes will be used for the services, mounts and timers keys in sysplan yaml.
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
File details
Details for the file sysplan-0.0.1.dev22.tar.gz
.
File metadata
- Download URL: sysplan-0.0.1.dev22.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 132111a0eaf583dcc8e7822c1c7b734b9861a1fa6d887f0c2fd8ec0a21f3ff31 |
|
MD5 | 9762715ef21f53a6f473ab2de4042eb3 |
|
BLAKE2b-256 | 30f7bc4b43ef6c5459b5cd9f2f8b21180f15c029c575c7ed867e90330058d6e4 |