diff --git a/.gitignore b/.gitignore index a24153f..e0c9c9f 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,5 @@ terraform.rc # End of https://www.toptal.com/developers/gitignore/api/terraform +# Other +.vscode diff --git a/opentofu/README.md b/opentofu/README.md index 00e4f8a..ee6cd62 100644 --- a/opentofu/README.md +++ b/opentofu/README.md @@ -4,6 +4,26 @@ --- +## Что такое OpenTofu/Terraform + +**Terraform** — это инструмент для создания и управления инфраструктурой. +С его помощью можно создавать, обновлять и удалять любые интересующие вас ресурсы в различных облачных и не только облачных сервисах. + +**Terraform** позволяет описывать инфраструктуру в виде кода, что делает процесс её создания более эффективным и управляемым. +Код на языке **HCL** (HashiCorp Configuration Language) описывает требуемую инфраструктуру, а **Terraform** автоматически создаёт или обновляет её. + +Информация об **OpenTofu** взята с [habr.com](https://habr.com/ru/companies/flant/news/762356/). + +20 сентября, на сайте **Linux Foundation** появилась новость о том, что фонд принял **OpenTofu** в число своих проектов. +Теперь свободный форк **Terraform** будет развиваться под управлением **Linux Foundation**, что дает ряд преимуществ: + +- Он будет всегда **Open Source** — то есть соответствовать **Open Source Definition**, а не размытому определению «открытые исходники». +- Он будет управляться открытым сообществом, а значит, прозрачно реализовывать и отражать видение разных разработчиков, а не единственного вендора. +- Он будет беспристрастным — то есть не зависящим от прихотей одной компании. + +Кроме того, сами создатели открытого форка **Terraform** отмечают еще две особенности, которые повлечет за собой принятие проекта в **Linux Foundation**: +обратная совместимость и хорошо проработанная модульная архитектура. + Официальный сайт проекта [OpenTofu](https://opentofu.org/). Репозиторий провайдера [bpg/terraform-provider-proxmox](https://github.com/bpg/terraform-provider-proxmox). @@ -13,19 +33,19 @@ ### Создание шаблона Ubuntu 22.04 -На узле Promox создаем шаблон **Cloud Init** **Ubuntu 22.04** +На узле Proxmox создаем шаблон **Cloud Init** **Ubuntu 22.04** ```sh export PROXMOX_STORAGE=proxmox-data-01 apt update && apt install libguestfs-tools -y && \ wget --backups=1 https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img && \ virt-customize -a jammy-server-cloudimg-amd64.img --install qemu-guest-agent && \ -qm create 9000 --name "ubuntu-22.04-cloudinit-template" --cores 2 --memory 2048 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci && \ -qm set 9000 --virtio0 ${PROXMOX_STORAGE}:0,import-from=/root/jammy-server-cloudimg-amd64.img && \ -qm set 9000 --ide2 ${PROXMOX_STORAGE}:cloudinit && \ -qm set 9000 --boot order=virtio0 && \ -qm set 9000 --serial0 socket --vga serial0 && \ -qm template 9000 +qm create 2204 --name "ubuntu-22.04-cloudinit-template" --cores 2 --memory 2048 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci && \ +qm set 2204 --virtio0 ${PROXMOX_STORAGE}:0,import-from=/root/jammy-server-cloudimg-amd64.img && \ +qm set 2204 --ide2 ${PROXMOX_STORAGE}:cloudinit && \ +qm set 2204 --boot order=virtio0 && \ +qm set 2204 --serial0 socket --vga serial0 && \ +qm template 2204 ``` --- diff --git a/opentofu/test_vm/.terraform.lock.hcl b/opentofu/test_vm/.terraform.lock.hcl index e1ea28e..f2f1ec4 100644 --- a/opentofu/test_vm/.terraform.lock.hcl +++ b/opentofu/test_vm/.terraform.lock.hcl @@ -2,24 +2,24 @@ # Manual edits may be lost in future updates. provider "registry.opentofu.org/bpg/proxmox" { - version = "0.53.1" + version = "0.54.0" constraints = ">= 0.53.1" hashes = [ - "h1:MkkMFotq+rW2sdVlqLk0Uu5NaIvMtsHBT5RJDvnM8Hs=", - "zh:0afa2f8a6aab79973ce792001d5a479a596ed81cc4c44b0d60bcef9dfee093c7", - "zh:0e8a2b62fa0e0e5e83420b391d78bd8f4d7fba6d2df52787c4c9469508642252", - "zh:210a672e445d238538109f2894294199438b776ed89b1a8495d83368811e91e0", - "zh:56c26cb77a07278b2468960b035f53ee47067a51309d8945a1f6c01d66e5a50c", - "zh:854c70381decb32f942f7498d2c0bddc11aa80b73c0c32e12ba5f492dd382245", - "zh:85f4450113086b9004d19febef298f7cafb71cb0b550c420c8c28bc1b4186a3a", - "zh:93003276ec5bc2fc830dc165784cc9b32cc8d2aa41ebbb5f00f0ce12802f1ab2", - "zh:933ad1d9062bbdf63481e6d93d045472d09436ec5624651dec97e1229d725963", - "zh:aa64b56e3e13abe7c06ef1e18ac2dfab0cabda3d9e5e0efe24c8ba5a77755a01", - "zh:ad00656559244ad4a867c271b37a1e8bbb57b63681e98565f287e9d583a316bb", - "zh:ca58d28866723552ecf4c50b1271ec2747c61ed812fb791262a5f0e0ace1c9a4", - "zh:d04bffe5df2a03fa4fc6dbb8d24c389ac8510cc2ed2659dcf57bce3ede0b7809", - "zh:e5fa0efaf38602b4567b0dff3ea334d8b7b618cd15f4f30ca4b332b9a12aacf4", - "zh:f049e50b7f40d678d3e312fb7f837cb46047a8ce27500c7f56e53ecd0fda7e5c", + "h1:xgDrDol/cYu93YOPTL0UVpURchPzdxPXaHjcoieoXXI=", + "zh:4521f8893b4645c93e75ffc3545ea59d3f31aed7cea4c26dcd0fbd7c0cce6ca8", + "zh:520e56abd10d888935047ef07a7577c2a1cce5bc54e25b03a0dbdc4356997ca9", + "zh:53469dd058ef8b2ea29577f69a2681f8ffb9f79494b8c1d1594dd42ad314d7bd", + "zh:6948adb6e088fe652b7273906a5c11032528f84eb5a5ca797534ab3b6076a8c6", + "zh:72655e9765b7791e3e37508c70a847172561bff348c7d5f916794e5823a84efe", + "zh:7faa281319d90026ad9b2dce00ac059896f451cb9305ed11bb90fcfda7c5d143", + "zh:8fe20fa893e9545aa30672392f76948ed56a93a2decb1d3bd8693c5e1d2dd85a", + "zh:b175411aa820c1a47473ef691c743670eeb900999576c6cdcb113d14a7c499aa", + "zh:b59205ad7981f263ff287d3eb0a93296f8cd6b166a01ddd3b16606fc39d456ec", "zh:f26e0763dbe6a6b2195c94b44696f2110f7f55433dc142839be16b9697fa5597", + "zh:f3524bc67d995e98ad9d7e17f3be91f7a975608180fad6b227fc42087b5facc1", + "zh:f4bf087717e1b0f5f3ee7d3b6b47fb66e5f821097f15ec0cf6714a39c7d80959", + "zh:fc14a29b1aef50872d60f338af89f7cbbac307c630f973c07a7951bdde8be2a5", + "zh:fc72da3d651bf0f0e20a0860e9217a94797b4c1d5cae1742f1b8e15d28f8ceeb", + "zh:fff2299a427e1590775611bf186220686795af966772e61e44234f0df44b6c22", ] } diff --git a/opentofu/test_vm/vm-01.tf b/opentofu/test_vm/vm-01.tf index cf19da2..815faf2 100644 --- a/opentofu/test_vm/vm-01.tf +++ b/opentofu/test_vm/vm-01.tf @@ -1,6 +1,7 @@ # Машинка resource "proxmox_virtual_environment_vm" "vm-01" { name = "vm-01" + migrate = true description = "Managed by OpenTofu" tags = ["opentofu", "test"] on_boot = true @@ -10,7 +11,7 @@ resource "proxmox_virtual_environment_vm" "vm-01" { # Шоблон из которого будет создавать ВМ clone { - vm_id = "9000" + vm_id = "2204" node_name = "pve-01" retries = 2 }