feat(adguad): add DNS rewrite

This commit is contained in:
2025-11-28 15:29:04 +01:00
parent 5daf8bb0cd
commit b0d70c4f8d
3 changed files with 91 additions and 0 deletions

44
adguard/.terraform.lock.hcl generated Normal file
View File

@@ -0,0 +1,44 @@
# This file is maintained automatically by "tofu init".
# Manual edits may be lost in future updates.
provider "registry.opentofu.org/camptocamp/pass" {
version = "2.1.1"
constraints = "~> 2.0"
hashes = [
"h1:b26FFbTyOIKCeqpAjnBzLZU1S9jU7XE9U+3+NOxtAq0=",
"zh:2ec5926b48526bc23b99f26dd18138811f6b1f1f81125bce75e841020b58350c",
"zh:32448b55d615ffc4924aab08c5fdea57102cc0f2752003e81367e7d05d42ce9a",
"zh:35c2d4e4551486b3e3befcf5efcf56f94deae0e3293fe8634365e4fb8b632598",
"zh:4d7932ddc0bb0a4f429ce6213d8139c05e54ce0c8f1a60d0a42e84f0dcccf334",
"zh:4f44287a8cab55ad339a04422496f4b607ce257aaa8a8cf1e4bd459f5ac6dbbb",
"zh:6e8f181c187b5c070f6cba458eeabcefb5a8e110a414b349c2f94ccc5952ca64",
"zh:79ae6e5c34221ee6324d57bec033d336f72b96521560ca3ba017c90560e337ba",
"zh:9ff86045990bdac860d9535c2abaaa80794451910f353c8bf71bcc5a6d594fc2",
"zh:c76ed4b72ca17e24b201a2f3365bd0d0ea22f6e93621e61371f1322c1ff33806",
"zh:dc3f2410d08af24d58c3fb5357ec9a8cf74fd02b63f01ff52379b03f147c0b08",
"zh:de0c0ceb0ef2af78fe402ffa860ec1fbc08ff91b18342f17cb55100934ea2c4b",
]
}
provider "registry.opentofu.org/gmichels/adguard" {
version = "1.6.2"
constraints = "~> 1.0"
hashes = [
"h1:mBxI5srrplxBHZLuXfEVZzwph3mCl9SQv0e9nR2GhQ4=",
"zh:0337224a2b6418ba38cedf7f2cef9b154f51db4791b03d6b5745cb26f60614d2",
"zh:09addda402962c46cd236ae1703ba9632f377897e8d321678cf0e4428a5071f7",
"zh:1f7b511933d6ca8fbdcd5bb50bba910e88b73fee57ae2922e01f18470350929e",
"zh:2bd2a45c4cddd19b2a55d6d658184df25f002e0b7a929da48b5086922ae846d6",
"zh:30ed44fd468132273029302fc16de4e76a1f10b816862e2e5dfca545e5b67f70",
"zh:3f73e37f6410509f7811db77b53f6e332c24344ad800a1d56bcf6af2a706d998",
"zh:5215dbeb6edbe0e7fae238580bb649745824d3744cc0d3b407244383ddeefd96",
"zh:543a6b4d814607884791306ae661a1d3475af90785712fb6c94e2b616f75afba",
"zh:8402d7a2d501ff0c9fe2216bf80f6bc133f0277cc3f184d3d37f4628b778f18b",
"zh:894ac1fce4fd92c66684d64d41356d5d02ebcf3a68e4ae1150314732f9ac384f",
"zh:ad547c8c8413de6886cf563129b117a0aab79b9841e7486e58a639c74eeacc12",
"zh:b9d69a6f99256cbd741ddc881f8665eec6e51ee1a4b99918ae8e9bdcf73cf31d",
"zh:d254d2dae145dbe5435be32b821198d9d5dca81fb67e06499eb8a8bd78a34ba5",
"zh:df327c22ba4437fa5e879ae70ce8330363a4e6f320711e7bd2ac249db3a3a551",
"zh:f809ab383cca0a5f83072981c64208cbd7fa67e986a86ee02dd2c82333221e32",
]
}

30
adguard/main.tf Normal file
View File

@@ -0,0 +1,30 @@
terraform {
required_providers {
adguard = {
source = "gmichels/adguard"
version = "~> 1.0"
}
pass = {
source = "camptocamp/pass"
version = "~> 2.0"
}
}
}
data "pass_password" "adguard" {
path = var.adguard_pass_path
}
provider "adguard" {
host = data.pass_password.adguard.data.host
username = data.pass_password.adguard.data.user
password = data.pass_password.adguard.password
scheme = "http"
}
resource "adguard_rewrite" "rewrites" {
for_each = var.dns_rewrites
domain = each.key
answer = each.value
}

17
adguard/variables.tf Normal file
View File

@@ -0,0 +1,17 @@
variable "adguard_pass_path" {
type = string
description = "Path in pass for AdGuard username"
default = "home/adguard/admin"
}
variable "dns_rewrites" {
type = map(string)
description = "DNS rewrites: domain -> IP"
default = {
"bureau.lan" = "192.168.10.91"
"cuisine.lan" = "192.168.10.93"
"nas.lan" = "192.168.10.50"
"*.nas.lan" = "192.168.10.50"
"salon.lan" = "192.168.10.92"
}
}