{"id":10,"date":"2025-08-02T10:58:47","date_gmt":"2025-08-02T10:58:47","guid":{"rendered":"http:\/\/blog.kola.com.ua\/?p=10"},"modified":"2025-08-12T19:15:19","modified_gmt":"2025-08-12T17:15:19","slug":"proxmox-terraform","status":"publish","type":"post","link":"https:\/\/blog.kola.com.ua\/?p=10","title":{"rendered":"Proxmox Terraform"},"content":{"rendered":"\n<h1 class=\"wp-block-heading has-text-align-center\">CloudinitVM Terraform Project<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b Debian 12 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Proxmox \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Terraform.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"#%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D0%B0-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0\" rel=\"noreferrer noopener\" target=\"_blank\"><\/a>\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>provider.tf<\/code> \u2014 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 Proxmox.<\/li>\n\n\n\n<li style=\"font-size:0.2rem\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"439\" class=\"wp-image-45\" style=\"width: 600px;\" src=\"http:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_32.png\" alt=\"\" srcset=\"https:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_32.png 687w, https:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_32-300x220.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/li>\n\n\n\n<li><code>vars.tf<\/code> \u2014 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438.<\/li>\n\n\n\n<li style=\"font-size:4px\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"399\" class=\"wp-image-46\" style=\"width: 600px;\" src=\"http:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_33.png\" alt=\"\" srcset=\"https:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_33.png 826w, https:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_33-300x199.png 300w, https:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_33-768x510.png 768w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/li>\n\n\n\n<li><code>credentials.auto.tfvars<\/code> \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 (API, \u0442\u043e\u043a\u0435\u043d\u044b, storage).<\/li>\n\n\n\n<li style=\"font-size:1px\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"206\" class=\"wp-image-50\" style=\"width: 600px;\" src=\"http:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_34.png\" alt=\"\" srcset=\"https:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_34.png 643w, https:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_34-300x103.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/li>\n\n\n\n<li><code>vm-debian.tf<\/code> \u2014 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b Debian 12.<\/li>\n\n\n\n<li style=\"font-size:2px\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"779\" class=\"wp-image-54\" style=\"width: 600px;\" src=\"http:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_35.png\" alt=\"\" srcset=\"https:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_35.png 913w, https:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_35-231x300.png 231w, https:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_35-788x1024.png 788w, https:\/\/blog.kola.com.ua\/wp-content\/uploads\/2025\/08\/Screenshot_35-768x998.png 768w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"#%D0%B1%D1%8B%D1%81%D1%82%D1%80%D1%8B%D0%B9-%D1%81%D1%82%D0%B0%D1%80%D1%82\" rel=\"noreferrer noopener\" target=\"_blank\"><\/a>\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 <a href=\"https:\/\/www.terraform.io\/downloads.html\" target=\"_blank\" rel=\"noreferrer noopener\">Terraform<\/a>.<\/li>\n\n\n\n<li>\u0421\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0438 \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/li>\n\n\n\n<li>\u0417\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u0444\u0430\u0439\u043b <code>credentials.auto.tfvars<\/code> \u0441\u0432\u043e\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.<\/li>\n\n\n\n<li>\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 Terraform: <code>terraform init<\/code><\/li>\n\n\n\n<li>\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043f\u043b\u0430\u043d \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f: <code>terraform plan<\/code><\/li>\n\n\n\n<li>\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e: <code>terraform apply<\/code><\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"#%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5\" rel=\"noreferrer noopener\" target=\"_blank\"><\/a>\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>proxmox_api_url<\/code> \u2014 URL API Proxmox.<\/li>\n\n\n\n<li><code>proxmox_api_token_id<\/code> \u2014 ID \u0442\u043e\u043a\u0435\u043d\u0430.<\/li>\n\n\n\n<li><code>proxmox_api_token_secret<\/code> \u2014 \u0441\u0435\u043a\u0440\u0435\u0442 \u0442\u043e\u043a\u0435\u043d\u0430.<\/li>\n\n\n\n<li><code>storage_name<\/code> \u2014 \u0438\u043c\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0434\u043b\u044f \u0434\u0438\u0441\u043a\u0430 VM.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"#%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5-vm\" rel=\"noreferrer noopener\" target=\"_blank\"><\/a>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 VM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 cloud-init, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0435\u0442\u044c, \u0434\u0438\u0441\u043a\u0438 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0430<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">wget https:\/\/cloud.debian.org\/images\/cloud\/bookworm\/latest\/debian-12-genericcloud-amd64.qcow2<br>ls<br>qm create 9000 &#8211;name debian12-cloudinit<br>qm set 9000 &#8211;scsi0 local-lvm:0,import-from=\/root\/debian-12-genericcloud-amd64.qcow2<br>qm template 9000<br>mkdir \/var\/lib\/vz\/snippets<br>tee \/var\/lib\/vz\/snippets\/qemu-guest-agent.yml &lt;&lt;EOF<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CloudinitVM Terraform Project \u042d\u0442\u043e\u0442 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b Debian 12 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Proxmox \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Terraform. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442 \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 VM \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0441\u044f \u0438\u0437 \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 cloud-init, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0435\u0442\u044c, \u0434\u0438\u0441\u043a\u0438 \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u0430 wget https:\/\/cloud.debian.org\/images\/cloud\/bookworm\/latest\/debian-12-genericcloud-amd64.qcow2lsqm create 9000 &#8211;name debian12-cloudinitqm set 9000 &#8211;scsi0 local-lvm:0,import-from=\/root\/debian-12-genericcloud-amd64.qcow2qm template 9000mkdir \/var\/lib\/vz\/snippetstee \/var\/lib\/vz\/snippets\/qemu-guest-agent.yml &lt;&lt;EOF<\/p>\n","protected":false},"author":1,"featured_media":64,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-10","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.kola.com.ua\/index.php?rest_route=\/wp\/v2\/posts\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.kola.com.ua\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.kola.com.ua\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.kola.com.ua\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.kola.com.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10"}],"version-history":[{"count":7,"href":"https:\/\/blog.kola.com.ua\/index.php?rest_route=\/wp\/v2\/posts\/10\/revisions"}],"predecessor-version":[{"id":67,"href":"https:\/\/blog.kola.com.ua\/index.php?rest_route=\/wp\/v2\/posts\/10\/revisions\/67"}],"wp:attachment":[{"href":"https:\/\/blog.kola.com.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.kola.com.ua\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.kola.com.ua\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}