fixing
This commit is contained in:
parent
56d2e90373
commit
7a1ad932bf
5 changed files with 139 additions and 68 deletions
68
arm.tf
68
arm.tf
|
@ -1,68 +0,0 @@
|
||||||
resource "proxmox_virtual_environment_vm" "ARM" {
|
|
||||||
|
|
||||||
# VM General Settings
|
|
||||||
node_name = "prox"
|
|
||||||
vm_id = 8100
|
|
||||||
name = "ARM"
|
|
||||||
description = "Ubuntu 24 ARM"
|
|
||||||
tags = ["tofu", "ubuntu-22", "auto-homelab-repo", "infrastructure"]
|
|
||||||
bios = "ovmf"
|
|
||||||
started = false
|
|
||||||
|
|
||||||
agent {
|
|
||||||
enabled = false # read 'Qemu guest agent' section, change to true only when ready
|
|
||||||
}
|
|
||||||
|
|
||||||
# VM Memory Settings
|
|
||||||
memory {
|
|
||||||
dedicated = 2048
|
|
||||||
}
|
|
||||||
|
|
||||||
# VM Network Settings
|
|
||||||
network_device {
|
|
||||||
bridge = "vmbr0"
|
|
||||||
vlan_id = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# VM Disk Settings
|
|
||||||
disk {
|
|
||||||
datastore_id = "Fast2Tb"
|
|
||||||
file_id = proxmox_virtual_environment_download_file.latest_ubuntu_22_arm_jammy_qcow2_img.id
|
|
||||||
size = 100
|
|
||||||
interface = "scsi0"
|
|
||||||
}
|
|
||||||
|
|
||||||
efi_disk {
|
|
||||||
type = "4m"
|
|
||||||
}
|
|
||||||
|
|
||||||
vga {
|
|
||||||
type = "serial0"
|
|
||||||
}
|
|
||||||
|
|
||||||
initialization {
|
|
||||||
ip_config {
|
|
||||||
ipv4 {
|
|
||||||
address = "dhcp"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
user_account {}
|
|
||||||
}
|
|
||||||
|
|
||||||
lifecycle {
|
|
||||||
ignore_changes = [
|
|
||||||
initialization[0].user_account[0].keys,
|
|
||||||
initialization[0].user_account[0].password,
|
|
||||||
initialization[0].user_account[0].username,
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "proxmox_virtual_environment_download_file" "latest_ubuntu_22_arm_jammy_qcow2_img" {
|
|
||||||
content_type = "iso"
|
|
||||||
datastore_id = "local"
|
|
||||||
node_name = "prox"
|
|
||||||
url = "https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-arm64.img"
|
|
||||||
}
|
|
35
cloud-init.tf
Normal file
35
cloud-init.tf
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
data "local_file" "ssh_public_key" {
|
||||||
|
filename = "/home/mafyuh/.ssh/main_key.pub"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "proxmox_virtual_environment_file" "cloud_config" {
|
||||||
|
content_type = "snippets"
|
||||||
|
datastore_id = "Slow4tb"
|
||||||
|
node_name = "prox"
|
||||||
|
|
||||||
|
source_raw {
|
||||||
|
data = <<-EOF
|
||||||
|
#cloud-config
|
||||||
|
users:
|
||||||
|
- default
|
||||||
|
- name: mafyuh
|
||||||
|
groups:
|
||||||
|
- sudo
|
||||||
|
- docker
|
||||||
|
shell: /bin/bash
|
||||||
|
ssh_authorized_keys:
|
||||||
|
- ${trimspace(data.local_file.ssh_public_key.content)}
|
||||||
|
sudo: ALL=(ALL) NOPASSWD:ALL
|
||||||
|
runcmd:
|
||||||
|
- apt update
|
||||||
|
- apt install -y qemu-guest-agent net-tools nfs-common
|
||||||
|
- timedatectl set-timezone America/New_York
|
||||||
|
- systemctl enable qemu-guest-agent
|
||||||
|
- systemctl start qemu-guest-agent
|
||||||
|
- curl -fsSL https://get.docker.com | sudo sh
|
||||||
|
- echo "done" > /tmp/cloud-config.done
|
||||||
|
EOF
|
||||||
|
|
||||||
|
file_name = "cloud-config.yaml"
|
||||||
|
}
|
||||||
|
}
|
48
ubuntu22-template.tf
Normal file
48
ubuntu22-template.tf
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
resource "proxmox_virtual_environment_vm" "Ubuntu-22-Template" {
|
||||||
|
name = "ubuntu-22"
|
||||||
|
node_name = "prox"
|
||||||
|
vm_id = 8100
|
||||||
|
tags = ["tofu", "ubuntu-22"]
|
||||||
|
template = true
|
||||||
|
started = false
|
||||||
|
|
||||||
|
disk {
|
||||||
|
datastore_id = "Fast2Tb"
|
||||||
|
file_id = proxmox_virtual_environment_download_file.ubuntu_cloud_image_22.id
|
||||||
|
interface = "scsi0"
|
||||||
|
size = 4
|
||||||
|
}
|
||||||
|
|
||||||
|
agent {
|
||||||
|
enabled = true
|
||||||
|
}
|
||||||
|
|
||||||
|
initialization {
|
||||||
|
ip_config {
|
||||||
|
ipv4 {
|
||||||
|
address = "dhcp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
user_data_file_id = proxmox_virtual_environment_file.cloud_config.id
|
||||||
|
}
|
||||||
|
|
||||||
|
serial_device {}
|
||||||
|
|
||||||
|
network_device {
|
||||||
|
bridge = "vmbr0"
|
||||||
|
}
|
||||||
|
|
||||||
|
vga {
|
||||||
|
type = "serial0"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
resource "proxmox_virtual_environment_download_file" "ubuntu_cloud_image_22" {
|
||||||
|
content_type = "iso"
|
||||||
|
datastore_id = "local"
|
||||||
|
node_name = "prox"
|
||||||
|
url = "https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img"
|
||||||
|
}
|
48
ubuntu22-template2.tf
Normal file
48
ubuntu22-template2.tf
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
resource "proxmox_virtual_environment_vm" "Ubuntu-22-Template2" {
|
||||||
|
name = "ubuntu-22"
|
||||||
|
node_name = "pve2"
|
||||||
|
vm_id = 8101
|
||||||
|
tags = ["tofu", "ubuntu-22"]
|
||||||
|
template = true
|
||||||
|
started = false
|
||||||
|
|
||||||
|
disk {
|
||||||
|
datastore_id = "local-lvm"
|
||||||
|
file_id = proxmox_virtual_environment_download_file.ubuntu_cloud_image_22_2.id
|
||||||
|
interface = "scsi0"
|
||||||
|
size = 4
|
||||||
|
}
|
||||||
|
|
||||||
|
agent {
|
||||||
|
enabled = true
|
||||||
|
}
|
||||||
|
|
||||||
|
initialization {
|
||||||
|
ip_config {
|
||||||
|
ipv4 {
|
||||||
|
address = "dhcp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
user_data_file_id = proxmox_virtual_environment_file.cloud_config.id
|
||||||
|
}
|
||||||
|
|
||||||
|
serial_device {}
|
||||||
|
|
||||||
|
network_device {
|
||||||
|
bridge = "vmbr0"
|
||||||
|
}
|
||||||
|
|
||||||
|
vga {
|
||||||
|
type = "serial0"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
resource "proxmox_virtual_environment_download_file" "ubuntu_cloud_image_22_2" {
|
||||||
|
content_type = "iso"
|
||||||
|
datastore_id = "local"
|
||||||
|
node_name = "pve2"
|
||||||
|
url = "https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img"
|
||||||
|
}
|
8
vars.tf
8
vars.tf
|
@ -37,3 +37,11 @@ variable "prox_ip_address" {
|
||||||
variable "npm_ip_address" {
|
variable "npm_ip_address" {
|
||||||
type = string
|
type = string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "init_username" {
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "init_password" {
|
||||||
|
type = string
|
||||||
|
}
|
Reference in a new issue