added first ipa client vm
This commit is contained in:
@@ -0,0 +1,32 @@
|
|||||||
|
#cloud-config
|
||||||
|
|
||||||
|
package_update: true
|
||||||
|
package_upgrade: true
|
||||||
|
|
||||||
|
packages:
|
||||||
|
- curl
|
||||||
|
- qemu-guest-agent
|
||||||
|
- vim
|
||||||
|
- htop
|
||||||
|
- bash-completion
|
||||||
|
# - freeipa-server
|
||||||
|
# - freeipa-server-dns
|
||||||
|
|
||||||
|
users:
|
||||||
|
- name: sbxadmin
|
||||||
|
groups: sudo
|
||||||
|
shell: /bin/bash
|
||||||
|
sudo: ['ALL=(ALL) NOPASSWD:ALL']
|
||||||
|
ssh_authorized_keys:
|
||||||
|
- ${ssh_key}
|
||||||
|
|
||||||
|
preserve_hostname: false
|
||||||
|
manage_etc_hosts: false
|
||||||
|
fqdn: ${hostname}.${domain}
|
||||||
|
hostname: ${hostname}
|
||||||
|
prefer_fqdn_over_hostname: true
|
||||||
|
create_hostname_file: true
|
||||||
|
|
||||||
|
runcmd:
|
||||||
|
- systemctl start qemu-guest-agent
|
||||||
|
- systemctl enable --now qemu-guest-agent
|
||||||
32
files/user_data_cloud_init_fedora42_ipa.cfg
Executable file
32
files/user_data_cloud_init_fedora42_ipa.cfg
Executable file
@@ -0,0 +1,32 @@
|
|||||||
|
#cloud-config
|
||||||
|
|
||||||
|
package_update: true
|
||||||
|
package_upgrade: true
|
||||||
|
|
||||||
|
packages:
|
||||||
|
- curl
|
||||||
|
- qemu-guest-agent
|
||||||
|
- vim
|
||||||
|
- htop
|
||||||
|
- bash-completion
|
||||||
|
- freeipa-server
|
||||||
|
- freeipa-server-dns
|
||||||
|
|
||||||
|
users:
|
||||||
|
- name: sbxadmin
|
||||||
|
groups: sudo
|
||||||
|
shell: /bin/bash
|
||||||
|
sudo: ['ALL=(ALL) NOPASSWD:ALL']
|
||||||
|
ssh_authorized_keys:
|
||||||
|
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBzh23ZkSVNbmDKk9esAT9qNkOoYFLhpX2nSLKPJaDVZ petar.cubela@sbx-mac-lab.local
|
||||||
|
|
||||||
|
preserve_hostname: false
|
||||||
|
manage_etc_hosts: false
|
||||||
|
fqdn: ipa.lab.softbox.net
|
||||||
|
hostname: ipa
|
||||||
|
prefer_fqdn_over_hostname: true
|
||||||
|
create_hostname_file: true
|
||||||
|
|
||||||
|
runcmd:
|
||||||
|
- systemctl start qemu-guest-agent
|
||||||
|
- systemctl enable --now qemu-guest-agent
|
||||||
32
files/user_data_cloud_init_fedora42_ipa_clients.cfg
Executable file
32
files/user_data_cloud_init_fedora42_ipa_clients.cfg
Executable file
@@ -0,0 +1,32 @@
|
|||||||
|
#cloud-config
|
||||||
|
|
||||||
|
package_update: true
|
||||||
|
package_upgrade: true
|
||||||
|
|
||||||
|
packages:
|
||||||
|
- curl
|
||||||
|
- qemu-guest-agent
|
||||||
|
- vim
|
||||||
|
- htop
|
||||||
|
- bash-completion
|
||||||
|
# - freeipa-server
|
||||||
|
# - freeipa-server-dns
|
||||||
|
|
||||||
|
users:
|
||||||
|
- name: sbxadmin
|
||||||
|
groups: sudo
|
||||||
|
shell: /bin/bash
|
||||||
|
sudo: ['ALL=(ALL) NOPASSWD:ALL']
|
||||||
|
ssh_authorized_keys:
|
||||||
|
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBzh23ZkSVNbmDKk9esAT9qNkOoYFLhpX2nSLKPJaDVZ petar.cubela@sbx-mac-lab.local
|
||||||
|
|
||||||
|
preserve_hostname: false
|
||||||
|
manage_etc_hosts: false
|
||||||
|
fqdn: vm00.lab.softbox.net
|
||||||
|
hostname: vm00
|
||||||
|
prefer_fqdn_over_hostname: true
|
||||||
|
create_hostname_file: true
|
||||||
|
|
||||||
|
runcmd:
|
||||||
|
- systemctl start qemu-guest-agent
|
||||||
|
- systemctl enable --now qemu-guest-agent
|
||||||
@@ -11,6 +11,11 @@ variable "hostname_ipa" {
|
|||||||
type = string
|
type = string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "hostname_vms" {
|
||||||
|
type = list(string)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
## PVE
|
## PVE
|
||||||
|
|
||||||
variable "student_vm_template" {
|
variable "student_vm_template" {
|
||||||
|
|||||||
@@ -1,14 +1,3 @@
|
|||||||
# Source the Cloud Init Config file
|
|
||||||
#data "template_file" "cloud_init_fed42_ipa" {
|
|
||||||
# template = "${file("${path.module}/files/cloud_init_fedora42_ipa.cloud_config")}"
|
|
||||||
#
|
|
||||||
# vars = {
|
|
||||||
# ssh_key = var.petar_ssh_public_key
|
|
||||||
# hostname = var.hostname_ipa
|
|
||||||
# domain = var.domain
|
|
||||||
# }
|
|
||||||
#}
|
|
||||||
|
|
||||||
# Create a local copy of the file, to transfer to Proxmox
|
# Create a local copy of the file, to transfer to Proxmox
|
||||||
resource "local_file" "cloud_init_fed42_ipa" {
|
resource "local_file" "cloud_init_fed42_ipa" {
|
||||||
#content = data.template_file.cloud_init_deb10_vm-01.rendered
|
#content = data.template_file.cloud_init_deb10_vm-01.rendered
|
||||||
|
|||||||
99
vm_freeipa_clients.tf
Normal file
99
vm_freeipa_clients.tf
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
# Create a local copy of the file, to transfer to Proxmox
|
||||||
|
resource "local_file" "cloud_init_fed42_ipa_clients" {
|
||||||
|
content = templatefile("${var.working_directory}/cloud-inits/cloud_init_fedora42_ipa_clients.cloud_config.tftpl", { ssh_key = var.petar_ssh_public_key, hostname = var.hostname_vms[0] , domain = var.domain })
|
||||||
|
filename = "${path.module}/files/user_data_cloud_init_fedora42_ipa_clients.cfg"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Transfer the file to the Proxmox Host
|
||||||
|
resource "null_resource" "cloud_init_fed42_ipa_clients" {
|
||||||
|
connection {
|
||||||
|
type = "ssh"
|
||||||
|
user = var.prov_user
|
||||||
|
private_key = var.petar_ssh_private_key
|
||||||
|
host = var.proxmox_host
|
||||||
|
}
|
||||||
|
|
||||||
|
provisioner "file" {
|
||||||
|
source = local_file.cloud_init_fed42_ipa_clients.filename
|
||||||
|
destination = "/var/lib/vz/snippets/user_data_cloud_init_fedora42_ipa_clients.yml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
resource "proxmox_vm_qemu" "vm00" {
|
||||||
|
name = var.hostname_vms[0]
|
||||||
|
|
||||||
|
depends_on = [
|
||||||
|
null_resource.cloud_init_fed42_ipa_clients
|
||||||
|
]
|
||||||
|
|
||||||
|
# Node name has to be the same name as within the cluster
|
||||||
|
# this might not include the FQDN
|
||||||
|
target_node = "neo"
|
||||||
|
|
||||||
|
# The template name to clone this vm from
|
||||||
|
clone = "temp-fedora-38"
|
||||||
|
|
||||||
|
# Activate QEMU agent for this VM
|
||||||
|
agent = 1
|
||||||
|
|
||||||
|
#pool = linux
|
||||||
|
|
||||||
|
os_type = "cloud-init"
|
||||||
|
vmid = 1100
|
||||||
|
vm_state = "running"
|
||||||
|
|
||||||
|
cpu {
|
||||||
|
cores = 2
|
||||||
|
sockets = 1
|
||||||
|
type = "host"
|
||||||
|
}
|
||||||
|
memory = 2048
|
||||||
|
scsihw = "virtio-scsi-pci"
|
||||||
|
|
||||||
|
# Setup the disk
|
||||||
|
disks {
|
||||||
|
scsi {
|
||||||
|
scsi0 {
|
||||||
|
# We have to specify the disk from our template, else Terraform will think it's not supposed to be there
|
||||||
|
disk {
|
||||||
|
storage = "local-lvm"
|
||||||
|
# The size of the disk should be at least as big as the disk in the template. If it's smaller, the disk will be recreated
|
||||||
|
size = "16G"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ide {
|
||||||
|
# Some images require a cloud-init disk on the IDE controller, others on the SCSI or SATA controller
|
||||||
|
ide1 {
|
||||||
|
cloudinit {
|
||||||
|
storage = "local-lvm"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Setup the network interface and assign a vlan tag: 256
|
||||||
|
|
||||||
|
network {
|
||||||
|
id = 0
|
||||||
|
model = "virtio"
|
||||||
|
bridge = "vmbr0"
|
||||||
|
macaddr = "bc:24:11:de:cb:31"
|
||||||
|
}
|
||||||
|
nameserver = "fde4:ed21:b2c0:5600:be24:11ff:fede:cb30"
|
||||||
|
|
||||||
|
onboot = true
|
||||||
|
boot = "order=scsi0"
|
||||||
|
tags = "ldap,samba,kerberos,dns,pki"
|
||||||
|
|
||||||
|
# Setup the ip address using cloud-init.
|
||||||
|
# Keep in mind to use the CIDR notation for the ip.
|
||||||
|
#ipconfig0 = "ip=10.11.12.65/24,gw=10.11.12.254"
|
||||||
|
ipconfig0 = "ip6=auto"
|
||||||
|
ciuser = var.prov_user
|
||||||
|
cicustom = "user=local:snippets/user_data_cloud_init_fedora42_ipa_clients.yml"
|
||||||
|
ciupgrade = true
|
||||||
|
|
||||||
|
sshkeys = var.petar_ssh_public_key
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user