aboutsummaryrefslogtreecommitdiff
path: root/terraform/libvirt/mini_environment.tf
diff options
context:
space:
mode:
Diffstat (limited to 'terraform/libvirt/mini_environment.tf')
-rw-r--r--terraform/libvirt/mini_environment.tf68
1 files changed, 68 insertions, 0 deletions
diff --git a/terraform/libvirt/mini_environment.tf b/terraform/libvirt/mini_environment.tf
new file mode 100644
index 0000000..4b9965d
--- /dev/null
+++ b/terraform/libvirt/mini_environment.tf
@@ -0,0 +1,68 @@
+terraform {
+ backend "http" {}
+}
+
+variable "machine_name" {
+ type = "string"
+}
+
+variable "uri" {
+ type = "string"
+}
+
+variable "vm_image_and_system" {
+ type = "string"
+}
+
+provider "libvirt" {
+ uri = "${var.uri}"
+}
+
+resource "libvirt_network" "vm_network" {
+ name = "vm_network"
+ addresses = ["10.0.1.0/24"]
+}
+
+# Create the machine
+resource "libvirt_domain" "domain-ubuntu" {
+ name = "${var.machine_name}"
+ memory = "8196"
+ vcpu = 4
+
+ kernel = "${var.vm_image_and_system}/system/kernel/bzImage"
+ initrd = "${var.vm_image_and_system}/system/initrd"
+
+ cmdline {
+ "--root" = "/dev/vda1"
+ "--system" = "${var.vm_image_and_system}/system"
+ "--load" = "${var.vm_image_and_system}/system/boot"
+ }
+
+ filesystem {
+ source = "/gnu/store"
+ target = "TAG_gnu_store"
+ readonly = true
+ accessmode = "passthrough"
+ }
+
+ disk {
+ file = "${var.vm_image_and_system}/image"
+ readonly = true
+ }
+
+ network_interface {
+ network_name = "${libvirt_network.vm_network.name}"
+ }
+
+ console {
+ type = "pty"
+ target_port = "0"
+ target_type = "serial"
+ }
+
+ console {
+ type = "pty"
+ target_type = "virtio"
+ target_port = "1"
+ }
+}