benschubert.infrastructure.main role – Configure a suite of basic infrastructure services in podman to serve as a foundation for a Homelab.
Note
This role is part of the benschubert.infrastructure collection (version 0.0.1).
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it use: ansible-galaxy collection install benschubert.infrastructure
.
To use it in a playbook, specify: benschubert.infrastructure.main
.
Entry point main
– Configure a suite of basic infrastructure services in podman to serve as a foundation for a Homelab.
Synopsis
This role configures a suite of services connected together via podman and exposed to the host.
You can find the entire list of services configured by this role in the the main description.
Parameters
Parameter |
Comments |
---|---|
The title to show users when they are trying to login on Authentik Default: |
|
The name of the file to use as a background for Authentik when users login |
|
The directory in which the configuration files for Authentik will be stored |
|
The configuration to allow Authentik to send emails when needed |
|
The email address authentik will send from In order to change the display name, use |
|
The email provider host |
|
The password to authenticate with the email provider |
|
The port for the SMTP service to send emails to |
|
Whether to use SSL to connect to the email provider Choices:
|
|
Whether to use TLS to connect to the email provider Choices:
|
|
The username to authenticate with the email provider |
|
The hostname under which Authentik should be reachable |
|
Name of the SVG file to use as an icon for Authentik on login screen |
|
The container image path and tag to use for Authentik Default: |
|
Secret key used for cookie signing and unique user IDs, don’t change this after the first install. |
|
The password for the super admin that Authentik creates at bootstrap Only required for the first run. |
|
The value of the token to create for the super admin at bootstrap This is then used to connect to Authentik |
|
The token to use to connect to Authentik Defaults to auth_authentik_superadmin_bootstrap_token if not set It is recommended, after the bootstrap, to create a new token, and remove the bootstrap one, so that it does not linger in the environment needlessly Default: |
|
The container image path and tag to use for Alloy Default: |
|
The path on disk where to store the monitoring’s agent configuration files |
|
The path on disk where to store the monitoring’s agent data |
|
A group name to which to add the role account that is created for monitoring Authentik. This is useful if you want to restrict apps per user, so you can have those bots publish their metrics correctly. Defaults to |
|
The path on disk where the PostgreSQL instance for Authentik should store its data |
|
The container image path and tag to use for Postgres Default: |
|
The password used to connect to the Authentik PostgreSQL database |
|
The path on disk where the Redis instance for Authentik should store its configurations |
|
The path on disk where the Authentik Redis instance should store its data |
|
The container image path and tag to use for Redis Default: |
|
The password to allow the metric gathering agent to connect to the Authentik Redis instance |
|
The password that Authentik will use to connect to Redis This is also used to configure the Redis instance |
|
A list of additional podman networks that need to be attached to the Authentik worker pod. This is useful if you want to configure a SMTP gateway for sending emails via Authentik. For example, this would allow validating and resetting emails. Default: |
|
A group name to which to add the role account that is created for monitoring services. This is useful if you want to restrict apps per user, so you can have those bots publish their metrics correctly. This is the default value that each service-specific values will take if they are not individually overridden |
|
A list of additional podman networks that need to be attached to the ingress pod. This is useful if you want to expose other services that are not part of this collection through the ingress. For a definition of what the entries can accept, see ingress_networks Default: |
|
The path on disk to a custom certificate to validate the TLS certificates if they are not available in the root certificate authorities |
|
The port that Traefik should use to expose its http interface on the host. Default: |
|
The port that Traefik should use to expose its https interface on the host. Default: |
|
The container image path and tag to use for Alloy Default: |
|
The path on disk where to store the monitoring’s agent configuration files for the ingress services |
|
The path on disk where to store the monitoring’s agent data for the ingress services |
|
A group name to which to add the role account that is created for monitoring Traefik. This is useful if you want to restrict apps per user, so you can have those bots publish their metrics correctly. |
|
In most cases, setting this should not be required, and you should leverage ingress_additional_networks instead. The list of podman networks that the Traefik pod should attach to. This is to let Traefik act as a reverse proxy for other services hosted in podman, without exposing them to other places. |
|
A list of groups to restrict the Traefik dashboard to. Users not in any of the specified groups won’t be able to see or login to the dashboard.
|
|
The configuration for the certificate resolvers When created, it expects at least a ‘default’ entry, which will be used for all services that don’t specify an explicit resolver in their configuration See Traefik’s documentation for more information Default: |
|
The directory in which the configuration files for Traefik will be stored |
|
The hostname under which to expose the Traefik dashboard |
|
A list of environment variables to set for Traefik as <key: value> This can be used, e.g., to configure the certificate resolver. For secrets, use ingress_traefik_secrets instead. Default: |
|
The container image path and tag to use for Traefik Default: |
|
A list of secrets to inject into the Traefik container as <key: value> The key of each secret will be set as an environment variable pointing to the secret containing the value Default: |
|
Whether the TLS certificate to access the Traefik should be validated or not Choices:
|
|
The password to give to the Grafana admin user |
|
The name of the group in Authentik that should be admins in Grafana Default: |
|
The password to authenticate as admin on Grafana for setting up dashboards and other resources Defaults to monitoring_grafana_admin_bootstrap_password if not set. Default: |
|
The name of the admin user for Grafana. This user will not exist on the Authentik service Default: |
|
A list of groups to restrict Grafana to. Users not in any of the specified groups won’t be able to see or login to Grafana.
When setting this, you should at least add |
|
The path to where the Grafana configuration is kept This is used to install dashboards for viewing metrics |
|
The directory in which the Grafana data will be stored |
|
The hostname at which the Grafana instance is reachable |
|
The container image path and tag to use for Grafana Default: |
|
The path on disk where the PostgreSQL instance for Grafana should store its data |
|
The container image path and tag to use for Postgres Default: |
|
The password used to connect to PostgreSQL database |
|
The secret key to use in Grafana to encrypt various sensitive data |
|
A list of groups to restrict Loki to. Users not in any of the specified groups won’t be able to see or login to Loki.
|
|
The path on disk where the Loki configuration files should be stored. |
|
The path on disk where the Loki data should be stored. |
|
The hostname at which the Loki instance is reachable. |
|
The container image path and tag to use for Loki Default: |
|
A list of additional podman networks that need to be attached to the Mimir pod. This is useful if you want to configure a SMTP gateway for sending emails via AlertManager. Default: |
|
The name of the template to use to configure the AlertManager routing Default: |
|
A list of groups to restrict Mimir to. Users not in any of the specified groups won’t be able to see or login to Mimir.
|
|
The path on disk where the Mimir configuration files should be stored. |
|
The path on disk where the Mimir data should be stored. |
|
The hostname at which the Mimir instance is reachable. |
|
The container image path and tag to use for Mimir Default: |
|
A list of secrets to inject into the Mimir container as <key: value> The secrets will be exposed under /run/secrets/monitoring-mimir-<key> with the key having ‘_’ replaced by ‘-’ Default: |
|
The container image path and tag to use for Alloy Default: |
|
The path at which the Grafana Alloy monitoring the monitoring stack should store its configuration |
|
The path at which the Grafana Alloy monitoring the monitoring stack should store its data |
|
A group name to which to add the role account that is created for monitoring the monitoring stack. This is useful if you want to restrict apps per user, so you can have those bots publish their metrics correctly. Defaults to |
|
A warning that is added to the top of each file created by this collection so users know it is managed by an automated process. |