Commit graph

16 commits

Author SHA1 Message Date
Slavi Pantaleev
d2c9ed3e45 Initial work on optimization commands
The playbook can now optimize itself based on the enabled components in
for all hosts in the inventory (`just optimize`) or for a specific host
(`just optimize-for-host HOSTNAME`).

The optimized playbook will have:

- fewer requirements (fewer roles need to be installed by `just roles`)
- a shorter and quicker to evaluate `group_vars/mash_servers` file
- a `setup.yml` file which includes less roles

Running the playbook optimized is still work in progress.
There still probably exist various role dependencies in the group-vars file, etc.

The `optimize-reset` command aims to restore your playbook to a
non-optimized state, which should work as before (and not experience bugs).

The playbook takes care to notice of changes to the various files in
`templates/` (`setup.yml`, `requirements.yml`, `group_vars_mash_servers`)
and update your optimized or non-optimized copies that are derived from
these templates. To do this, it keeps `.srchash` files in the `run/` directory.
When it notices a change in the source file's hash (by comparing to the `.srchash` file),
it will update you to the new template.

Optimization state is stored in a file in `run/` as well (`optimization-vars-files.state`).
Should the playbook notice changes in the source `template/` files, it
should update you and re-optimize using the same parameters as before (read from the state file).
2023-11-20 16:29:06 +02:00
Slavi Pantaleev
490f01bba2 Remove debug lines 2023-11-20 11:21:28 +02:00
Slavi Pantaleev
e71a879748 Create group_vars/mash_servers based on a template (group_vars/mash_servers_all)
In the future, we'll also have optional optimization steps, which could
trim down `group_vars/mash_servers` based on the components being used.
2023-11-20 11:07:31 +02:00
Slavi Pantaleev
3273f475bb Ensure setup.yml and requirements.yml are updated when .all.yml files change 2023-11-20 11:05:18 +02:00
Slavi Pantaleev
7a06bd9588 Create setup.yml based on a template (setup.all.yml)
In the future, we'll also have optional optimization steps, which could
trim down `setup.yml` based on the components being used.

Related to e2132a3c51 which did the same
for the `requirements.yml` file.
2023-11-19 15:25:28 +02:00
Slavi Pantaleev
e2132a3c51 Create requirements.yml based on a template (requirements.all.yml)
In the future, we'll also have optional optimization steps, which could
trim down `requirements.yml` based on the components being used.
2023-11-19 14:26:32 +02:00
Aine
50a844bb8a
add OPML generator script 2023-07-22 11:27:49 +03:00
Slavi Pantaleev
27892369e1 Remove time from "just run" command
People who need to time things should do it themselves, explicitly.
Forcing `time` on people is a little rude.
2023-04-01 06:33:54 +03:00
Slavi Pantaleev
dbf84d1249 Always restart services one by one when doing install-service
This way, something like `just install-service postgres` will
definitely do a `restart` and not a `stop` + `start` (which may leave
dependant services stopped).

This has potentially been addressed by
7acb5f4b85
as well.
2023-03-28 10:52:48 +03:00
Slavi Pantaleev
798b37d2fe Remove shell configuration for better compatibility 2023-03-26 14:13:14 +03:00
Aine
0a27d99b1a
justfile - fix formatting 2023-03-25 16:50:46 +02:00
Aine
b7d2bebd13
just roles - replace bash with sh 2023-03-25 16:15:08 +02:00
Aine
f8202aeb05
add just update 2023-03-25 15:41:54 +02:00
Aine
9e3069277d
format justfile, safely integrate agru 2023-03-25 15:40:07 +02:00
Slavi Pantaleev
11cafe8f26 Add extra_args support to install-service justfile command
It's now possible to do: `just install-service gitea -l host.example.com`
2023-03-20 14:46:35 +02:00
Slavi Pantaleev
488864d29e Initial commit 2023-03-15 10:58:12 +02:00