summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjerome <jerome@xlinfo.fr>2025-01-29 18:51:37 +0100
committerjerome <jerome@xlinfo.fr>2025-01-29 18:51:37 +0100
commit51f8d2c817097492cd762f2a1b151b0efeba0315 (patch)
treecbcc1fce7efc9d78d23d05a8a428b9505cfc1e29
parent81b6cff609c1f70a62fda6e437756875244e2c55 (diff)
downloadkvm-51f8d2c817097492cd762f2a1b151b0efeba0315.tar.gz
kvm-51f8d2c817097492cd762f2a1b151b0efeba0315.zip
ajout de variables
-rw-r--r--cloud_init.cfg17
-rw-r--r--debian_planbin0 -> 6560 bytes
-rw-r--r--libvirt.tf28
-rw-r--r--rocky_planbin0 -> 9837 bytes
-rw-r--r--terraform.tfvars14
-rw-r--r--variables.tf16
6 files changed, 56 insertions, 19 deletions
diff --git a/cloud_init.cfg b/cloud_init.cfg
index 8fc5b6e..1bd0db6 100644
--- a/cloud_init.cfg
+++ b/cloud_init.cfg
@@ -1,18 +1,22 @@
#cloud-config
+hostname: ${nom}
+manage_etc_hosts: true
+fqdn: ${nom}
users:
- name: jerome
+ lock_passwd: false
+ passwd: $6$HiJy.FDst/oZW34k$yY/T.VDsZJgI7o7kvbpRbLe7JLfyxAso6KPTb6TbqdHKCNE5fVq2.eJWxCP9QfsI/7rpluw9HKy7LHVSfLPdC0
ssh_authorized_keys:
- - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDobbYBfvqhgsBEsW3hp98g/XYzqAZd3Zft+se52RJ5MOvNoHNTHmjBBFXqFWCK3ugKjK38Esr+ncQKuOMRZQpQkdJ6RhcSqc8UZsKnmw+5RtZ8sJ/rDAOW5c37G7e459KozNNQAJ0TAWzonDkVEDRA+OOz/zyvOYDTZF1MRAunFTdxxHuP08Et0hAj7irjlTuXhh7hwX+o4ejN2dI+zkH0qc401INYFXPg9E3EdeX8maWfJpJvVi0aRDvP32iOnFKTjNPvpQaF6hL53QNnDqUCCxpEUP2ebVKvI/bt40RvwxuqTu8qlxnsyIqpX/UjPMtCTAINPzNCTJ8Gg2j3zyirlP9jO+6kPYNP/+uQ6RXDFBQJm6ew1okBkk2gCB1fDhERrKo7GIHYhcu6rT1mWv2v+8+FG1y6DL7qN4Q9XQSxfqNPXh+rCU5wZsGXgLHhqoKSer3eB7eAKoP9tqiddyRU+YImHGgj4v8c07U/KziSmhScrzxNh7s1pQ9V5149UnM= jerome@jerome-laptop
+ - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCZJG/XcIIvW0JOJb6ftEpopS4szOo8dRehASGIOAswPRko6JFMT9QuAvl9YkmzgSorn0KpyQrqAxNTklADocMGPW2BJzKb/1fQyZYKY9bLXxyKaYZKbDZNaUJmW92ThDmUrIWPgjh5BhUxOTwRbDhTsRu/pvulnGw+8yOp7Tz8nUgAoJEZ/7fGkm7AaJPLmF/szQEhL/WSNqTtNdCHNYpQqgRIUZh5zqcb2jXa0pZ7GMnPmoSUMlz1OfAxMOIuziaP3i1J/KHVhXdxj4nrOtUjrUULfqk9vyfKkf7BLYKO3fO3BLR9H5HgeTlaB2aXNuDgRAQposNZ0FEK/VkWj+DQuqjuj9nYo57GbfMfhWr/dTKxTVj3xsbFdThDWtlp7sVI2jguqntwwlmhhexJp1fAYZn92KYkaxGHWLbR0bxLEWVjHXciVW2D12IUZfGWXh5wInoQN1gs1i6NUqgf1uDZhAax5H9G07YySR2fnM9TB5c5apyf7PFCg1kZAnqVHrE= jerome@parrot
sudo: ['ALL=(ALL) NOPASSWD:ALL']
shell: /bin/bash
- groups: wheel
-runcmd:
- - cp /etc/skel/.bash* /home/jerome/
- - chown jerome:jerome /home/jerome/.bash*
- - hostnamectl set-hostname rocky
+runcmd:
+ - cp /etc/skel/.* /home/jerome/
+ - chown jerome:jerome /home/jerome/.*
+ - ${package}
write_files:
- path: /home/jerome/helloworld
@@ -21,4 +25,3 @@ write_files:
echo "Hello World !"
permissions: 0755
-
diff --git a/debian_plan b/debian_plan
new file mode 100644
index 0000000..c8c0095
--- /dev/null
+++ b/debian_plan
Binary files differ
diff --git a/libvirt.tf b/libvirt.tf
index d1caeaf..c7cbb5a 100644
--- a/libvirt.tf
+++ b/libvirt.tf
@@ -1,15 +1,18 @@
# Defining VM Volume
-resource "libvirt_volume" "rocky-qcow2" {
- name = "rocky.qcow2"
+resource "libvirt_volume" "qcow2_vol" {
+ name = "${var.nom}.qcow2"
pool = "default"
- #source = "https://download.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud-Base.latest.x86_64.qcow2"
- source = "/home/jerome/Téléchargements/isos/Rocky-9-GenericCloud-Base.latest.x86_64.qcow2"
+ source = var.image
format = "qcow2"
}
# get user data info
data "template_file" "user_data" {
template = file("${path.module}/cloud_init.cfg")
+ vars = {
+ nom = var.nom
+ package = var.package
+ }
}
# Use CloudInit to add the instance
@@ -20,25 +23,25 @@ resource "libvirt_cloudinit_disk" "commoninit" {
}
# Define KVM domain to create
-resource "libvirt_domain" "rocky" {
- name = "rocky"
- memory = "2048"
- vcpu = 2
+resource "libvirt_domain" "vm_domain" {
+ name = var.nom
+ memory = "2048"
+ vcpu = 2
qemu_agent = true
- cpu {
+ cpu {
mode = "host-passthrough"
}
network_interface {
#network_name = "default"
- bridge = "nm-bridge"
+ bridge = "bridge0"
wait_for_lease = true
}
disk {
- volume_id = libvirt_volume.rocky-qcow2.id
+ volume_id = libvirt_volume.qcow2_vol.id
}
cloudinit = libvirt_cloudinit_disk.commoninit.id
@@ -57,6 +60,7 @@ resource "libvirt_domain" "rocky" {
}
# Output Server IP
+# Nécessite qemu-guest-agent sinon bloque la fin de l'installation !!!
output "ip" {
- value = libvirt_domain.rocky.network_interface.0.addresses
+ value = libvirt_domain.vm_domain.network_interface.0.addresses
}
diff --git a/rocky_plan b/rocky_plan
new file mode 100644
index 0000000..03bfdc2
--- /dev/null
+++ b/rocky_plan
Binary files differ
diff --git a/terraform.tfvars b/terraform.tfvars
new file mode 100644
index 0000000..f8d043f
--- /dev/null
+++ b/terraform.tfvars
@@ -0,0 +1,14 @@
+# Assignation des variables
+
+########## machine rocky ##########
+nom = "rocky"
+image = "/home/jerome/Téléchargements/isos/Rocky-9-GenericCloud-Base.latest.x86_64.qcow2"
+#image = "https://download.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud-Base.latest.x86_64.qcow2"
+package = "# rien à faire : qemu-guest-agent pré-installé"
+
+########## machine debian ##########
+#nom = "debian"
+#image = "/home/jerome/Téléchargements/isos/debian-12-generic-amd64.qcow2"
+#image = "https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2"
+#package = "apt update && apt install -y qemu-guest-agent && systemctl start qemu-guest-agent"
+
diff --git a/variables.tf b/variables.tf
new file mode 100644
index 0000000..0dbb12f
--- /dev/null
+++ b/variables.tf
@@ -0,0 +1,16 @@
+# définition des variables
+
+variable "nom" {
+ description = "nom distribution"
+ type = string
+}
+
+variable "image" {
+ description = "source de l'image disque"
+ type = string
+}
+
+variable "package" {
+ description = "nom du package manager (dnf/apt) pour installer qemu-guest-agent le cas échéant)"
+ type = string
+}