parameterize more values
This commit is contained in:
parent
d41794e65d
commit
20199a65f4
3 changed files with 43 additions and 14 deletions
|
@ -2,11 +2,9 @@
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
|
|
||||||
CAHOST=root@hermes.dmz
|
eval "$(jq -r '@sh "PUBKEY=\(.pubkey) HOST=\(.host) CAHOST=\(.cahost)"')"
|
||||||
|
|
||||||
eval "$(jq -r '@sh "PUBKEY=\(.pubkey) HOST=\(.host)"')"
|
|
||||||
|
|
||||||
# TODO: Can this be done more eye-pleasingly?
|
# TODO: Can this be done more eye-pleasingly?
|
||||||
CERT=$(ssh $CAHOST '/root/ca.sh host "'"$PUBKEY"'" "'"$HOST"'".dmz')
|
CERT=$(ssh root@$CAHOST '/root/ca.sh host "'"$PUBKEY"'" "'"$HOST"'".dmz')
|
||||||
|
|
||||||
jq -n --arg cert "$CERT" '{"cert":$cert}'
|
jq -n --arg cert "$CERT" '{"cert":$cert}'
|
||||||
|
|
11
main.tf
11
main.tf
|
@ -32,6 +32,7 @@ data "external" "cert" {
|
||||||
query = {
|
query = {
|
||||||
pubkey = trimspace(data.tls_public_key.debian.public_key_openssh)
|
pubkey = trimspace(data.tls_public_key.debian.public_key_openssh)
|
||||||
host = var.name
|
host = var.name
|
||||||
|
cahost = var.ca_host
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,10 +50,10 @@ resource "null_resource" "cert" {
|
||||||
|
|
||||||
resource "libvirt_volume" "debian" {
|
resource "libvirt_volume" "debian" {
|
||||||
name = "${var.name}.iso"
|
name = "${var.name}.iso"
|
||||||
pool = "disk"
|
pool = var.disk_pool
|
||||||
size = var.disk_size
|
size = var.disk_size
|
||||||
base_volume_name = "debian-bookworm.qcow2"
|
base_volume_name = var.disk_base
|
||||||
base_volume_pool = "iso"
|
base_volume_pool = var.disk_base_pool
|
||||||
|
|
||||||
lifecycle {
|
lifecycle {
|
||||||
replace_triggered_by = [
|
replace_triggered_by = [
|
||||||
|
@ -63,7 +64,7 @@ resource "libvirt_volume" "debian" {
|
||||||
|
|
||||||
resource "libvirt_cloudinit_disk" "debian" {
|
resource "libvirt_cloudinit_disk" "debian" {
|
||||||
name = "${var.name}.iso"
|
name = "${var.name}.iso"
|
||||||
pool = "init"
|
pool = var.cloudinit_pool
|
||||||
user_data = local.cloudinit_user_data
|
user_data = local.cloudinit_user_data
|
||||||
network_config = file("${path.module}/files/network_config.cfg")
|
network_config = file("${path.module}/files/network_config.cfg")
|
||||||
}
|
}
|
||||||
|
@ -79,7 +80,7 @@ resource "libvirt_domain" "debian" {
|
||||||
}
|
}
|
||||||
|
|
||||||
network_interface {
|
network_interface {
|
||||||
bridge = "dmzbr"
|
bridge = var.bridge_name
|
||||||
hostname = var.name
|
hostname = var.name
|
||||||
mac = var.mac
|
mac = var.mac
|
||||||
}
|
}
|
||||||
|
|
40
variables.tf
40
variables.tf
|
@ -3,7 +3,7 @@ variable "name" {
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "disk_size" {
|
variable "disk_size" {
|
||||||
type = number
|
type = number
|
||||||
default = 1024 * 1024 * 1024 * 15
|
default = 1024 * 1024 * 1024 * 15
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,21 +16,51 @@ variable "admin_authorized_keys" {
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "memory" {
|
variable "memory" {
|
||||||
type = number
|
type = number
|
||||||
default = 1024
|
default = 1024
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "mac" {
|
variable "mac" {
|
||||||
type = string
|
type = string
|
||||||
default = null
|
default = null
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "insecure_password" {
|
variable "insecure_password" {
|
||||||
type = bool
|
type = bool
|
||||||
default = false
|
default = false
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "use_host_cert" {
|
variable "use_host_cert" {
|
||||||
type = bool
|
type = bool
|
||||||
default = true
|
default = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "disk_pool" {
|
||||||
|
type = string
|
||||||
|
default = "disk"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "disk_base" {
|
||||||
|
type = string
|
||||||
|
default = "debian-bookworm.qcow2"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "disk_base_pool" {
|
||||||
|
type = string
|
||||||
|
default = "iso"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "cloudinit_pool" {
|
||||||
|
type = string
|
||||||
|
default = "init"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "bridge_name" {
|
||||||
|
type = string
|
||||||
|
default = "dmzbr"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "ca_host" {
|
||||||
|
type = string
|
||||||
|
default = "hermes.dmz"
|
||||||
|
}
|
||||||
|
|
Reference in a new issue