diff --git a/.gitignore b/.gitignore index ebec91b..a8ea09d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ .terraform *.tfstate.backup + +base/images/* +!base/images/.gitkeep \ No newline at end of file diff --git a/base/libvirtd.tf b/base/libvirtd.tf new file mode 100644 index 0000000..61aaa6c --- /dev/null +++ b/base/libvirtd.tf @@ -0,0 +1,45 @@ +# https://github.com/dmacvicar/terraform-provider-libvirt/blob/master/website/docs/r + +terraform { + required_version = ">= 0.12" + + required_providers { + null = "~> 2.1" + template = "~> 2.1" + libvirt = ">= 0.0.0" + } + + backend "etcdv3" { + endpoints = ["https://100.64.0.19:2379"] + lock = true + prefix = "/terraform-state/" + cacert_path = "/home/antoine/virtualization/kubernetes-the-hard-way/certs/ca.pem" + cert_path = "/home/antoine/virtualization/kubernetes-the-hard-way/certs/kubernetes.pem" + key_path = "/home/antoine/virtualization/kubernetes-the-hard-way/certs/kubernetes-key.pem" + } + +} + +provider "libvirt" { + uri = "qemu+tcp://dx30.localdomain/system" +} + +resource "libvirt_pool" "pool_1" { + name = "pool_1" + type = "dir" + path = "/var/lib/libvirt/pool/pool_1" +} + +resource "libvirt_volume" "centos7_qcow2" { + name = "centos7.qcow2" + pool = libvirt_pool.pool_1.name + source = "./images/CentOS-7-x86_64-GenericCloud.qcow2" + format = "qcow2" +} + +resource "libvirt_volume" "debian_buster_qcow2" { + name = "debian-buster.qcow2" + pool = libvirt_pool.pool_1.name + source = "./images/debian-10-openstack-amd64.qcow2" + format = "qcow2" +} diff --git a/docker-kvm-qemu-libvirt b/docker-kvm-qemu-libvirt index 29eadc7..6e6f8cb 160000 --- a/docker-kvm-qemu-libvirt +++ b/docker-kvm-qemu-libvirt @@ -1 +1 @@ -Subproject commit 29eadc7b92bef861bf699822b751520ba2764253 +Subproject commit 6e6f8cb6470380c8b4c07910d98f744bad8852a3 diff --git a/persitent/libvirtd_base.tf b/persitent/libvirtd_base.tf deleted file mode 100644 index fd5517a..0000000 --- a/persitent/libvirtd_base.tf +++ /dev/null @@ -1,38 +0,0 @@ -# https://github.com/dmacvicar/terraform-provider-libvirt/blob/master/website/docs/r - -terraform { - required_version = ">= 0.12" - - required_providers { - libvirt = ">= 0.0.0" - } - -} - -provider "libvirt" { - uri = "qemu+tcp://127.0.0.1/system" - # uri = "qemu+ssh://root@192.168.100.10/system" -} - -resource "libvirt_pool" "pool_1" { - name = "pool_1" - type = "dir" - path = "/var/lib/libvirt/pool" -} - -# -------- volume disk -------- -# https://github.com/dmacvicar/terraform-provider-libvirt/blob/master/website/docs/r/volume.html.markdown - -resource "libvirt_volume" "centos7_qcow2" { - name = "centos7.qcow2" - pool = "default" - source = "https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2" - format = "qcow2" -} - -resource "libvirt_volume" "debian_buster_qcow2" { - name = "debian-buster.qcow2" - pool = "default" - source = "https://cdimage.debian.org/cdimage/openstack/current/debian-10.4.3-20200610-openstack-amd64.qcow2" - format = "qcow2" -} diff --git a/persitent/terraform.tfstate b/persitent/terraform.tfstate deleted file mode 100644 index 6822a8f..0000000 --- a/persitent/terraform.tfstate +++ /dev/null @@ -1,79 +0,0 @@ -{ - "version": 4, - "terraform_version": "0.12.28", - "serial": 203, - "lineage": "e57b8df5-87bd-3954-0ba8-9cbedff9b460", - "outputs": {}, - "resources": [ - { - "mode": "managed", - "type": "libvirt_pool", - "name": "pool_1", - "provider": "provider.libvirt", - "instances": [ - { - "schema_version": 0, - "attributes": { - "allocation": 69478645760, - "available": null, - "capacity": 73445531648, - "id": "3a205457-1e97-455a-8fe6-9ed621f7ba99", - "name": "pool_1", - "path": "/var/lib/libvirt/pool", - "type": "dir", - "xml": [] - }, - "private": "bnVsbA==" - } - ] - }, - { - "mode": "managed", - "type": "libvirt_volume", - "name": "centos7_qcow2", - "provider": "provider.libvirt", - "instances": [ - { - "schema_version": 0, - "attributes": { - "base_volume_id": null, - "base_volume_name": null, - "base_volume_pool": null, - "format": "qcow2", - "id": "/var/lib/libvirt/pool/default/centos7.qcow2", - "name": "centos7.qcow2", - "pool": "default", - "size": 8589934592, - "source": "https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2", - "xml": [] - }, - "private": "bnVsbA==" - } - ] - }, - { - "mode": "managed", - "type": "libvirt_volume", - "name": "debian_buster_qcow2", - "provider": "provider.libvirt", - "instances": [ - { - "schema_version": 0, - "attributes": { - "base_volume_id": null, - "base_volume_name": null, - "base_volume_pool": null, - "format": "qcow2", - "id": "/var/lib/libvirt/pool/default/debian-buster.qcow2", - "name": "debian-buster.qcow2", - "pool": "default", - "size": 2147483648, - "source": "https://cdimage.debian.org/cdimage/openstack/current/debian-10.4.3-20200610-openstack-amd64.qcow2", - "xml": [] - }, - "private": "bnVsbA==" - } - ] - } - ] -} diff --git a/stack/computes.tf b/stack/computes.tf index 49fcaa5..df7f9d4 100644 --- a/stack/computes.tf +++ b/stack/computes.tf @@ -6,7 +6,7 @@ resource "libvirt_domain" "db1" { name = "db1" memory = "1024" vcpu = 1 - running = "false" + running = "true" autostart = "true" boot_device { @@ -14,12 +14,11 @@ resource "libvirt_domain" "db1" { } network_interface { - network_name = "default" - # network_name = libvirt_network.private_network.name + network_name = libvirt_network.private_network.name } disk { - volume_id = libvirt_volume.debian_buster_qcow2.id + volume_id = libvirt_volume.my_root_debian.id } # disk { @@ -40,11 +39,3 @@ resource "libvirt_domain" "db1" { autoport = "true" } } - - -resource "libvirt_volume" "debian_buster_qcow2" { - name = "debian-buster.qcow2" - pool = "default" - source = "https://cdimage.debian.org/cdimage/openstack/current/debian-10.4.3-20200610-openstack-amd64.qcow2" - format = "qcow2" -} diff --git a/stack/libvirtd.tf b/stack/libvirtd.tf index b3cc696..d775240 100644 --- a/stack/libvirtd.tf +++ b/stack/libvirtd.tf @@ -9,21 +9,47 @@ terraform { libvirt = ">= 0.0.0" } + backend "etcdv3" { + endpoints = ["https://100.64.0.19:2379"] + lock = true + prefix = "/terraform-state/stack" + cacert_path = "/home/antoine/virtualization/kubernetes-the-hard-way/certs/ca.pem" + cert_path = "/home/antoine/virtualization/kubernetes-the-hard-way/certs/kubernetes.pem" + key_path = "/home/antoine/virtualization/kubernetes-the-hard-way/certs/kubernetes-key.pem" + } + } provider "libvirt" { - uri = "qemu+tcp://127.0.0.1/system" - # uri = "qemu+ssh://root@192.168.100.10/system" + uri = "qemu+tcp://dx30.localdomain/system" } data "template_file" "user_data" { template = "${file("${path.module}/cloud_init.cfg")}" } +variable "pool_1" { + type = string + default = "pool_1" + description = "already created pool name, set with variable because libvirt provider dont' wotk with data resource" +} + +variable "debian_buster_qcow2" { + type = string + default = "debian-buster.qcow2" + description = "already created debian vol, set with variable because libvirt provider dont' wotk with data resource" +} + +variable "centos7_qcow2" { + type = string + default = "centos7.qcow2" + description = "already created centos vol, set with variable because libvirt provider dont' wotk with data resource" +} + # Use CloudInit to add the instance resource "libvirt_cloudinit_disk" "commoninit" { name = "commoninit.iso" - pool = "default" + pool = var.pool_1 user_data = data.template_file.user_data.rendered } diff --git a/stack/terraform.tfstate b/stack/terraform.tfstate deleted file mode 100644 index 5234692..0000000 --- a/stack/terraform.tfstate +++ /dev/null @@ -1,8 +0,0 @@ -{ - "version": 4, - "terraform_version": "0.12.28", - "serial": 121, - "lineage": "67fe8f67-1e0d-4c6e-4440-3eac0ca3aadd", - "outputs": {}, - "resources": [] -} diff --git a/stack/volumes.tf b/stack/volumes.tf index c3a691a..329efd0 100644 --- a/stack/volumes.tf +++ b/stack/volumes.tf @@ -6,20 +6,19 @@ resource "libvirt_volume" "my_root_centos" { name = "my-root-centos" - base_volume_name = "centos7.qcow2" - # base_volume_id = libvirt_volume.centos7_qcow2.id + pool = var.pool_1 + base_volume_name = var.centos7_qcow2 } resource "libvirt_volume" "my_root_debian" { name = "my-root-debian" - base_volume_name = "debian-buster.qcow2" - # base_volume_id = libvirt_volume.debian_buster_qcow2.id + pool = var.pool_1 + base_volume_name = var.debian_buster_qcow2 } resource "libvirt_volume" "external_disk_1" { name = "external-disk-1" # 10Gb size = 10737418240 - pool = "pool_1" - # pool = libvirt_pool.pool_1.name + pool = var.pool_1 }