-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
108 additions
and
85 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,17 @@ | ||
# fup | ||
|
||
A [pyinfra](https://pyinfra.com/) based workstation initializer. | ||
A simple-minded workstation initializer. | ||
|
||
## Why? | ||
|
||
Because that moment when you first start using a newly provisioned OS is like trying to walk without moving your legs. | ||
One advantage over using established configuration management tools for the same purpose is that you don't need to worry about installing packages or ensuring that SSH access works correctly. On a pristine installation you can use a static `fup` binary which only operates on the local host. | ||
|
||
For a better explanation and implementation see [comtrya](https://github.com/comtrya/comtrya). | ||
## How? | ||
|
||
## Why Not Ansible? | ||
Just point to a config file (default `~/.config/fup/fup.yml`, override with `-f`, `--file`, can be a remote URL). | ||
|
||
Because it causes me create monstrosities like [this](https://github.com/femnad/casastrap). Seriously, who writes hundreds of playbooks which do one single thing? | ||
There is a config file with a non-zero number of comments under [contrib/simple.yml](https://github.com/femnad/fup/blob/main/contrib/simple.yml). | ||
|
||
## Why Not SaltStack? | ||
## Better Alternatives? | ||
|
||
SaltStack is great and the enabler of the provisioning method I was most happy with: [anr](https://github.com/femnad/anr) which relies on `salt-ssh`. Since it's pretty flexible and expressive you can make it work as provisioner for your user's home and perform elevated privilege steps with dedicated states. | ||
|
||
However, this is a finicky setup and needs some hacks, like resetting permissions on `/var/tmp` between runs ([embarrassing script](https://gitlab.com/femnad/chezmoi/-/blob/9c379c8105456d53bcf38de8410fc7193dafadce/bin/executable_salt-pre-flight)), always specifying the user or changing permissions for states because some states have to mix root and non-root operations. Also, when I last tried to provision with SaltStack I had hit two show-stopper bugs, one dependency pinning issue and another Python 3.10 incompatibility, meaning I was stuck with a non-usable OS state. | ||
|
||
## So Another Python base provisioning tool is the answer then? | ||
|
||
Well, not really, but it's what I can hack together in a relatively short time. | ||
|
||
## No, Really, Why Not Comtrya Then? | ||
|
||
I don't know, scratching an itch maybe?. Let me have this? | ||
https://github.com/comtrya/comtrya, of course. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters