126 lines
3.5 KiB
HCL
126 lines
3.5 KiB
HCL
locals {
|
|
dhcp_config_path_systemd_unit = {
|
|
name = "dhcp_config.path"
|
|
enabled = true
|
|
contents = templatefile(
|
|
"${path.module}/files/dhcp/dhcp_config.path.tftpl",
|
|
{
|
|
path = "/var/lib/containers/storage/volumes/dhcp_config/_data/writable/"
|
|
}
|
|
)
|
|
}
|
|
|
|
dhcp_config_service_systemd_unit = {
|
|
name = "dhcp_config.service"
|
|
enabled = false
|
|
contents = file("${path.module}/files/dhcp/dhcp_config.service")
|
|
}
|
|
|
|
dhcp_data_filesystem = {
|
|
device = "${local.data_device_path}-part3"
|
|
format = "ext4"
|
|
label = "dhcp_data"
|
|
}
|
|
|
|
dhcp_data_volume_file = {
|
|
path = "/etc/containers/systemd/dhcp_data.volume"
|
|
user = {id = 0}
|
|
group = {id = 0}
|
|
mode = 420 # 0644
|
|
contents = {
|
|
source = format(
|
|
"data:text/plain;base64,%s",
|
|
base64encode(file("${path.module}/files/dhcp/dhcp_data.volume"))
|
|
)
|
|
}
|
|
}
|
|
|
|
dhcp_builddir_dir = {
|
|
path = "/root/dhcp"
|
|
user = {id = 0}
|
|
group = {id = 0}
|
|
mode = 448 # 0700
|
|
}
|
|
|
|
dnsmasq_base_config_file = {
|
|
path = "/root/dhcp/dnsmasq.conf"
|
|
user = {id = 0}
|
|
group = {id = 0}
|
|
mode = 420 # 0644
|
|
contents = {
|
|
source = format(
|
|
"data:text/plain;base64,%s",
|
|
base64encode(templatefile(
|
|
"${path.module}/files/dhcp/dnsmasq.conf.tftpl",
|
|
{
|
|
dhcp_server_ip_addr = var.dhcp_server_ip_addr
|
|
dhcp_range = split("/", var.dhcp_range)[0]
|
|
dhcp_range_netmask = cidrnetmask(var.dhcp_range)
|
|
dhcp_router = var.dhcp_gateway
|
|
config_extension_dir = "/etc/dnsmasq.d/writable/"
|
|
}
|
|
))
|
|
)
|
|
}
|
|
}
|
|
|
|
generate_dhcp_options_script_file = {
|
|
path = "/var/roothome/generate_dhcp_options.sh"
|
|
user = {id = 0}
|
|
group = {id = 0}
|
|
mode = 448 # 0700
|
|
contents = {
|
|
source = format(
|
|
"data:text/plain;base64,%s",
|
|
base64encode(file("${path.module}/files/dhcp/generate_dhcp_options.sh"))
|
|
)
|
|
}
|
|
}
|
|
|
|
dhcp_containerfile_file = {
|
|
path = "/root/dhcp/Containerfile"
|
|
user = {id = 0}
|
|
group = {id = 0}
|
|
mode = 420 # 0644
|
|
contents = {
|
|
source = format(
|
|
"data:text/plain;base64,%s",
|
|
base64encode(file("${path.module}/files/dhcp/dnsmasq.Containerfile"))
|
|
)
|
|
}
|
|
}
|
|
|
|
dhcp_container_file = {
|
|
path = "/etc/containers/systemd/dnsmasq_container.container"
|
|
user = {id = 0}
|
|
group = {id = 0}
|
|
mode = 420 # 0644
|
|
contents = {
|
|
source = format(
|
|
"data:text/plain;base64,%s",
|
|
base64encode(file("${path.module}/files/dhcp/dnsmasq_container.container"))
|
|
)
|
|
}
|
|
}
|
|
|
|
dhcp_filesystems = [
|
|
local.dhcp_data_filesystem,
|
|
]
|
|
|
|
dhcp_directories = [
|
|
local.dhcp_builddir_dir,
|
|
]
|
|
|
|
dhcp_files = [
|
|
local.dhcp_data_volume_file,
|
|
local.dnsmasq_base_config_file,
|
|
local.generate_dhcp_options_script_file,
|
|
local.dhcp_containerfile_file,
|
|
local.dhcp_container_file,
|
|
]
|
|
|
|
dhcp_systemd_units = [
|
|
local.dhcp_config_path_systemd_unit,
|
|
local.dhcp_config_service_systemd_unit,
|
|
]
|
|
}
|