Compare commits
27 Commits
bfbf0680e2
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 84e45b4c61 | |||
|
|
080752e8a0 | ||
|
|
f063baa349 | ||
| bada1b69da | |||
|
|
7d04a2c475 | ||
|
|
e04f10c5a3 | ||
|
|
0e7860bfe7 | ||
|
|
0c0cbc5def | ||
|
|
fcdde6cf1f | ||
|
|
524bd92da4 | ||
|
|
ba3fe8e7ff | ||
|
|
724a433d5e | ||
| 8d9eea6728 | |||
| 8d49e447e6 | |||
| d634e124a3 | |||
| 70139b2693 | |||
| 1b6eca0f69 | |||
| 3e55a72767 | |||
| b26ff582a4 | |||
| 114bfb9772 | |||
| 5509e14066 | |||
| df088a7903 | |||
| dcec6c3648 | |||
| a0ee1b8a4b | |||
| 39d4e2ac65 | |||
| 6d06cfac02 | |||
| e669353638 |
@@ -16,9 +16,9 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
|
|
||||||
env:
|
env:
|
||||||
TF_VAR_SSH_KEY: ${{ secrets.SSH_KEY }}
|
TF_VAR_SSH_KEY_PUBLIC: ${{ secrets.SSH_KEY_PUBLIC }}
|
||||||
TF_VAR_TS_AUTHKEY: ${{ secrets.TAILSCALE_KEY }}
|
TF_VAR_TS_AUTHKEY: ${{ secrets.TS_AUTHKEY }}
|
||||||
TF_VAR_ssh_key: ${{ secrets.SSH_PUBLIC_KEY }}
|
TF_VAR_proxmox_password: ${{ secrets.PROXMOX_PASSWORD }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
@@ -29,11 +29,6 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
terraform_version: 1.6.6
|
terraform_version: 1.6.6
|
||||||
|
|
||||||
- name: Inject sensitive secrets
|
|
||||||
working-directory: terraform
|
|
||||||
run: |
|
|
||||||
echo 'proxmox_password = "${{ secrets.PROXMOX_PASSWORD }}"' >> terraform.tfvars
|
|
||||||
|
|
||||||
- name: Terraform Init
|
- name: Terraform Init
|
||||||
working-directory: terraform
|
working-directory: terraform
|
||||||
run: terraform init
|
run: terraform init
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
|
|
||||||
env:
|
env:
|
||||||
TF_VAR_SSH_KEY: ${{ secrets.SSH_KEY }}
|
TF_VAR_SSH_KEY: ${{ secrets.TF_VAR_SSH_KEY_PUBLIC }}
|
||||||
TF_VAR_TS_AUTHKEY: ${{ secrets.TAILSCALE_KEY }}
|
TF_VAR_TS_AUTHKEY: ${{ secrets.TF_VAR_TS_AUTHKEY }}
|
||||||
TF_VAR_ssh_key: ${{ secrets.SSH_PUBLIC_KEY }}
|
TF_VAR_PROXMOX_PASSWORD: ${{ secrets.TF_VAR_PROXMOX_PASSWORD }}
|
||||||
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@@ -28,11 +28,6 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
terraform_version: 1.6.6
|
terraform_version: 1.6.6
|
||||||
|
|
||||||
- name: Inject sensitive secrets
|
|
||||||
working-directory: terraform
|
|
||||||
run: |
|
|
||||||
echo 'proxmox_password = "${{ secrets.PROXMOX_PASSWORD }}"' >> terraform.tfvars
|
|
||||||
|
|
||||||
- name: Terraform Init
|
- name: Terraform Init
|
||||||
working-directory: terraform
|
working-directory: terraform
|
||||||
run: terraform init
|
run: terraform init
|
||||||
|
|||||||
@@ -17,9 +17,9 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
|
|
||||||
env:
|
env:
|
||||||
TF_VAR_SSH_KEY: ${{ secrets.SSH_KEY }}
|
TF_VAR_SSH_KEY_PUBLIC: ${{ secrets.SSH_KEY_PUBLIC }}
|
||||||
TF_VAR_TS_AUTHKEY: ${{ secrets.TAILSCALE_KEY }}
|
TF_VAR_TS_AUTHKEY: ${{ secrets.TS_AUTHKEY }}
|
||||||
# TF_VAR_ssh_key: ${{ secrets.SSH_PUBLIC_KEY }}
|
TF_VAR_proxmox_password: ${{ secrets.PROXMOX_PASSWORD }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
@@ -30,11 +30,6 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
terraform_version: 1.6.6
|
terraform_version: 1.6.6
|
||||||
|
|
||||||
- name: Inject sensitive secrets
|
|
||||||
working-directory: terraform
|
|
||||||
run: |
|
|
||||||
echo 'proxmox_password = "${{ secrets.PROXMOX_PASSWORD }}"' >> terraform.tfvars
|
|
||||||
|
|
||||||
- name: Terraform Init
|
- name: Terraform Init
|
||||||
working-directory: terraform
|
working-directory: terraform
|
||||||
run: terraform init
|
run: terraform init
|
||||||
|
|||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,2 +1,6 @@
|
|||||||
./terraform/.terraform
|
./terraform/.terraform
|
||||||
terraform/.terraform/
|
terraform/.terraform/
|
||||||
|
terraform/test-apply.sh
|
||||||
|
terraform/test-plan.sh
|
||||||
|
terraform/test-destroy.sh
|
||||||
|
terraform/tfplan
|
||||||
|
|||||||
19
terraform/.terraform.lock.hcl
generated
19
terraform/.terraform.lock.hcl
generated
@@ -20,25 +20,6 @@ provider "registry.terraform.io/hashicorp/local" {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
provider "registry.terraform.io/hashicorp/null" {
|
|
||||||
version = "3.2.3"
|
|
||||||
hashes = [
|
|
||||||
"h1:+AnORRgFbRO6qqcfaQyeX80W0eX3VmjadjnUFUJTiXo=",
|
|
||||||
"zh:22d062e5278d872fe7aed834f5577ba0a5afe34a3bdac2b81f828d8d3e6706d2",
|
|
||||||
"zh:23dead00493ad863729495dc212fd6c29b8293e707b055ce5ba21ee453ce552d",
|
|
||||||
"zh:28299accf21763ca1ca144d8f660688d7c2ad0b105b7202554ca60b02a3856d3",
|
|
||||||
"zh:55c9e8a9ac25a7652df8c51a8a9a422bd67d784061b1de2dc9fe6c3cb4e77f2f",
|
|
||||||
"zh:756586535d11698a216291c06b9ed8a5cc6a4ec43eee1ee09ecd5c6a9e297ac1",
|
|
||||||
"zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
|
|
||||||
"zh:9d5eea62fdb587eeb96a8c4d782459f4e6b73baeece4d04b4a40e44faaee9301",
|
|
||||||
"zh:a6355f596a3fb8fc85c2fb054ab14e722991533f87f928e7169a486462c74670",
|
|
||||||
"zh:b5a65a789cff4ada58a5baffc76cb9767dc26ec6b45c00d2ec8b1b027f6db4ed",
|
|
||||||
"zh:db5ab669cf11d0e9f81dc380a6fdfcac437aea3d69109c7aef1a5426639d2d65",
|
|
||||||
"zh:de655d251c470197bcbb5ac45d289595295acb8f829f6c781d4a75c8c8b7c7dd",
|
|
||||||
"zh:f5c68199f2e6076bce92a12230434782bf768103a427e9bb9abee99b116af7b5",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
provider "registry.terraform.io/hashicorp/template" {
|
provider "registry.terraform.io/hashicorp/template" {
|
||||||
version = "2.2.0"
|
version = "2.2.0"
|
||||||
hashes = [
|
hashes = [
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ data "template_file" "cloud_init_global" {
|
|||||||
hostname = "generic"
|
hostname = "generic"
|
||||||
domain = "home.arpa"
|
domain = "home.arpa"
|
||||||
TS_AUTHKEY = var.TS_AUTHKEY
|
TS_AUTHKEY = var.TS_AUTHKEY
|
||||||
|
SSH_KEY_PUBLIC = var.SSH_KEY_PUBLIC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -14,19 +15,3 @@ resource "local_file" "cloud_init_global" {
|
|||||||
content = data.template_file.cloud_init_global.rendered
|
content = data.template_file.cloud_init_global.rendered
|
||||||
filename = "${path.module}/files/cloud_init_global.yaml"
|
filename = "${path.module}/files/cloud_init_global.yaml"
|
||||||
}
|
}
|
||||||
|
|
||||||
#resource "null_resource" "upload_cloud_init_alpaca" {
|
|
||||||
# count = var.alpaca_vm_count
|
|
||||||
#
|
|
||||||
# connection {
|
|
||||||
# type = "ssh"
|
|
||||||
# user = "root"
|
|
||||||
# private_key = var.ssh_key
|
|
||||||
# host = var.target_node
|
|
||||||
# }
|
|
||||||
#
|
|
||||||
# provisioner "file" {
|
|
||||||
# source = local_file.cloud_init_alpaca[count.index].filename
|
|
||||||
# destination = "/var/lib/vz/snippets/cloud_init_alpaca_${count.index + 1}.yaml"
|
|
||||||
# }
|
|
||||||
#}
|
|
||||||
|
|||||||
@@ -1,4 +1,11 @@
|
|||||||
#cloud-config
|
#cloud-config
|
||||||
|
#cloud-config
|
||||||
|
hostname: myvm
|
||||||
|
manage_etc_hosts: true
|
||||||
|
resolv_conf:
|
||||||
|
nameservers:
|
||||||
|
- 8.8.8.8
|
||||||
|
- 1.1.1.1
|
||||||
|
|
||||||
package_update: true
|
package_update: true
|
||||||
package_upgrade: true
|
package_upgrade: true
|
||||||
@@ -13,7 +20,6 @@ packages:
|
|||||||
- jq
|
- jq
|
||||||
- curl
|
- curl
|
||||||
- qemu-guest-agent
|
- qemu-guest-agent
|
||||||
- salt-minion
|
|
||||||
|
|
||||||
users:
|
users:
|
||||||
- name: stuart
|
- name: stuart
|
||||||
@@ -24,7 +30,6 @@ users:
|
|||||||
- ${SSH_KEY_PUBLIC}
|
- ${SSH_KEY_PUBLIC}
|
||||||
|
|
||||||
preserve_hostname: false
|
preserve_hostname: false
|
||||||
manage_etc_hosts: false
|
|
||||||
fqdn: ${hostname}.${domain}
|
fqdn: ${hostname}.${domain}
|
||||||
|
|
||||||
#cloud-config
|
#cloud-config
|
||||||
|
|||||||
@@ -28,20 +28,24 @@ resource "proxmox_vm_qemu" "alpacas" {
|
|||||||
cores = var.cores
|
cores = var.cores
|
||||||
memory = var.memory
|
memory = var.memory
|
||||||
scsihw = "virtio-scsi-pci"
|
scsihw = "virtio-scsi-pci"
|
||||||
boot = "order=scsi0"
|
boot = "order=virtio0"
|
||||||
|
bootdisk = "virtio0"
|
||||||
ipconfig0 = "ip=dhcp"
|
ipconfig0 = "ip=dhcp"
|
||||||
cicustom = "user=local:snippets/cloud_init_global.yaml"
|
cicustom = "user=local:snippets/cloud_init_global.yaml"
|
||||||
|
|
||||||
|
|
||||||
disks {
|
disks {
|
||||||
scsi {
|
virtio {
|
||||||
scsi0 {
|
virtio0 {
|
||||||
disk {
|
disk {
|
||||||
size = var.disk_size
|
size = var.disk_size
|
||||||
storage = var.storage
|
storage = var.storage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
scsi1 {
|
}
|
||||||
|
|
||||||
|
ide {
|
||||||
|
ide2 {
|
||||||
cloudinit {
|
cloudinit {
|
||||||
storage = var.storage
|
storage = var.storage
|
||||||
}
|
}
|
||||||
@@ -71,19 +75,23 @@ resource "proxmox_vm_qemu" "llamas" {
|
|||||||
cores = var.cores
|
cores = var.cores
|
||||||
memory = var.memory
|
memory = var.memory
|
||||||
scsihw = "virtio-scsi-pci"
|
scsihw = "virtio-scsi-pci"
|
||||||
boot = "order=scsi0"
|
boot = "order=virtio0"
|
||||||
|
bootdisk = "virtio0"
|
||||||
ipconfig0 = "ip=dhcp"
|
ipconfig0 = "ip=dhcp"
|
||||||
cicustom = "user=local:snippets/cloud_init_global.yaml"
|
cicustom = "user=local:snippets/cloud_init_global.yaml"
|
||||||
|
|
||||||
disks {
|
disks {
|
||||||
scsi {
|
virtio {
|
||||||
scsi0 {
|
virtio0 {
|
||||||
disk {
|
disk {
|
||||||
size = var.disk_size
|
size = var.disk_size
|
||||||
storage = var.storage
|
storage = var.storage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
scsi1 {
|
}
|
||||||
|
|
||||||
|
ide {
|
||||||
|
ide2 {
|
||||||
cloudinit {
|
cloudinit {
|
||||||
storage = var.storage
|
storage = var.storage
|
||||||
}
|
}
|
||||||
@@ -91,6 +99,7 @@ resource "proxmox_vm_qemu" "llamas" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
network {
|
network {
|
||||||
id = 0
|
id = 0
|
||||||
model = "virtio"
|
model = "virtio"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"version": 4,
|
"version": 4,
|
||||||
"terraform_version": "1.8.3",
|
"terraform_version": "1.11.4",
|
||||||
"serial": 31,
|
"serial": 31,
|
||||||
"lineage": "7a39dd41-1655-172c-950b-b8c5398caf69",
|
"lineage": "7a39dd41-1655-172c-950b-b8c5398caf69",
|
||||||
"outputs": {},
|
"outputs": {},
|
||||||
|
|||||||
@@ -10,4 +10,3 @@ disk_type = "scsi"
|
|||||||
storage = "Flash"
|
storage = "Flash"
|
||||||
pm_api_url = "https://100.105.0.115:8006/api2/json"
|
pm_api_url = "https://100.105.0.115:8006/api2/json"
|
||||||
pm_user = "terraform-prov@pve"
|
pm_user = "terraform-prov@pve"
|
||||||
|
|
||||||
|
|||||||
@@ -79,3 +79,7 @@ variable "TS_AUTHKEY" {
|
|||||||
description = "Tailscale auth key used in cloud-init"
|
description = "Tailscale auth key used in cloud-init"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "SSH_KEY_PUBLIC" {
|
||||||
|
type = string
|
||||||
|
description = "My Public SSH key fo ssh auth list"
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user