The `repos` tag was slightly broken because it was applied to the
include task but not to the included tasks. This is now fixed by simply
adding the necessary tag declaration to the included tasks.
Furthermore, I experienced a bad deadlock when the PGP key for the
Spotify packages expired. Because of that, every APT operation failed
and Ansible was unable to gather the facts required by package-related
tasks. Since the installation of the base utilities was coupled to the
`repos` tag, that tag failed as well. Because I use that tag to update
repository keys, I ended up in a deadlock.
The solution is the new `base` tag, which is only responsible for
installing the base utilities. This allows repository keys to be updated
independently of any preceding APT installations.
This change moves the QEMU configuration for multiarch builds into a
dedicated role. Furthermore the execution will always be treated as
unchanged, unless an error occured!
This change further changes the name of the only host in question form
localhost to "127.0.0.1" to resolve the annoying warning about the
duplicated declaration of "localhost" at the start of the execution of
the playbook.
The local config is intended to be configured per environment. Therefore
it feels awkward to navigate deeply into the structures simply to adjust
a local configuration. Furthermore this change allows me to make an
assumption about the file right in the executed code, so if the file is
not setup properly ansible will fail even before execution!
Here we start to have some delicate secrets in the code. Therefore I
need a vault for ansible. This vault contains the tokens to upload
ssh-keys to github and my lovely gitea server.
Note, that this change also adds a `requirements.yml`, this is necessary
because I use the paramater "api_url" of the github_key resource which
was only added in v11, but the debian ansible was shippped with an older
collection.
The group_vars dir is the standard destination for ansible to look for
variable-files. So I do not have to declare them in the main.yml
anymore. This change will make it easier for me to reason about upcoming
changes, like using a vault for sensitive information.