Files
jdelpilarandJordan Del Pilar 1c87c9c78d
Johto Infrastructure Pipeline / Run Ansible Lint (push) Successful in 1m48s
Johto Infrastructure Pipeline / Deploy to Production (push) Successful in 2m52s
docs: update repo info and add role readme (#14)
### Description
This PR updates `README.md` and adds `README.md` files for all roles

### Related Issue
Closes #12

### Testing Done
- [x] Verified docs match current state of repo and roles

### Checklist
- [x] My code follows the project's style guidelines.
- [x] I have performed a self-review of my own code.
- [x] I have updated the documentation (if necessary).

---------

Co-authored-by: Jordan Del Pilar <[email protected]>
Reviewed-on: #14
2026-07-12 15:54:07 -07:00

2.0 KiB

Role: DNS Server

Sets up and deploys DNS server. Current setup deploys Adguard Home as the default DNS server, but any can be used

Tags

  • core
  • dns

Required Variables

Below is an annotated breakdown of the required variables and their structure for this role

These blocks should be defined in the host_vars file for each host as all variables are unique to the specific host.

Warning

Any variable marked # !SENSITIVE should not be stored in plain text under any circumstance

DNS Info

Defines settings for dns server quadlet to be deployed

# (required) List of all DNS containers to be deployed
# in theory you can run multiple containers, however it is highly recommend to only run one
# at least one service is required
dns_services:

    # (required) name of the container in podman, and service name in systemd
    # This is unique to both podman and systemd
    # format: snake_case
  - name:

    # (required) URL of container image
    # can be from any container registry
    # format: url
    image:

    # (optional) category of the container
    # this changes the folder the quadlet is saved to.
    # default: "services"
    # format: string
    category: services

    # (optional) list of volume mounts to be used by the container
    # it is highly recommended to use volume mounts for DNS containers to persist configs
    # format example is listed below
    # default: []
    # format: /local/path/:/container/path
    volumes:
      - /local/path:/container/path

Templates

adguard_quadlet.j2

This template is used to generate .container files for DNS services. Currently it is set up to expect the use of Adguard Home container images.

Execution

Caution

This role targets and can potentially restart core services. As such it is recommended to only run this role when 100% necessary

To run this command without running all roles in the playbook, use the following command

ansible-playbook site.yaml --tags "dns"