This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
технология_terraform [2026/09/27 06:31] val [terraform-provider-virtualbox] |
технология_terraform [2026/09/28 10:33] (current) val [terraform-provider-virtualbox] |
||
|---|---|---|---|
| Line 13: | Line 13: | ||
| * [[https://stackoverflow.com/questions/69860280/how-to-properly-reset-terraform-default-tfstate|How to properly reset Terraform default tfstate?]] | * [[https://stackoverflow.com/questions/69860280/how-to-properly-reset-terraform-default-tfstate|How to properly reset Terraform default tfstate?]] | ||
| + | * Вебинар: [[On-premise Terraform|Развертывание инфраструктуры в On-premise облаке с использованием Terraform]] | ||
| ===== Установка ===== | ===== Установка ===== | ||
| Line 32: | Line 33: | ||
| * https://mirror.selectel.ru/3rd-party/hashicorp-releases/terraform/1.9.2/terraform_1.9.2_windows_amd64.zip | * https://mirror.selectel.ru/3rd-party/hashicorp-releases/terraform/1.9.2/terraform_1.9.2_windows_amd64.zip | ||
| + | * [[Материалы по Windows#Установить PATH]] | ||
| <code> | <code> | ||
| PS C:\Users\Administrator> $Env:PATH | PS C:\Users\Administrator> $Env:PATH | ||
| - | ...;C:\terraform\;C:\Program Files\Oracle\VirtualBox;... | + | ...;C:\terraform\;... |
| </code> | </code> | ||
| ===== terraform-provider-libvirt ===== | ===== terraform-provider-libvirt ===== | ||
| Line 379: | Line 381: | ||
| * https://github.com/terra-farm/terraform-provider-virtualbox | * https://github.com/terra-farm/terraform-provider-virtualbox | ||
| - | * https://github.com/terra-farm/terraform-provider-virtualbox/releases/download/v0.2.2-alpha.1/terraform-provider-virtualbox_0.2.2-alpha.1_windows_amd64.zip | ||
| + | * [[Материалы по Windows#Установить PATH]] | ||
| <code> | <code> | ||
| PS C:\Users\Administrator\nodes> $Env:PATH | PS C:\Users\Administrator\nodes> $Env:PATH | ||
| ...;C:\Program Files\Oracle\VirtualBox;... | ...;C:\Program Files\Oracle\VirtualBox;... | ||
| - | PS C:\Users\Administrator\nodes> mkdir terraform.d\plugins\registry.terraform.io\terra-farm\virtualbox\0.2.2-alpha.1\windows_amd64\ | + | PS C:\Users\Administrator\nodes> $env:TF_LOG="DEBUG" |
| - | PS C:\Users\Administrator\nodes> $env:TF_LOG="DEBUG" | + | PS C:\Users\Administrator\nodes> notepad providers.tf |
| - | </code> | + | </code><code> |
| - | <code> | + | |
| terraform { | terraform { | ||
| required_providers { | required_providers { | ||
| Line 401: | Line 402: | ||
| provider "virtualbox" { | provider "virtualbox" { | ||
| } | } | ||
| + | </code><code> | ||
| + | PS C:\Users\Administrator\nodes> mkdir terraform.d\plugins\registry.terraform.io\terra-farm\virtualbox\0.2.2-alpha.1\windows_amd64\ | ||
| + | </code> | ||
| + | * https://github.com/terra-farm/terraform-provider-virtualbox/releases/download/v0.2.2-alpha.1/terraform-provider-virtualbox_0.2.2-alpha.1_windows_amd64.zip | ||
| + | * [[#Управление проектом]] | ||
| + | <code> | ||
| + | PS C:\Users\Administrator\nodes> notepad main.tf | ||
| + | </code><code> | ||
| resource "virtualbox_vm" "node" { | resource "virtualbox_vm" "node" { | ||
| count = 3 | count = 3 | ||
| Line 442: | Line 450: | ||
| } | } | ||
| } | } | ||
| + | </code><code> | ||
| + | PS C:\Users\Administrator\nodes> notepad outputs.tf | ||
| + | </code><code> | ||
| #output "IPAddr" { | #output "IPAddr" { | ||
| # value = element(virtualbox_vm.node.*.network_adapter.0.ipv4_address, 1) | # value = element(virtualbox_vm.node.*.network_adapter.0.ipv4_address, 1) | ||
| Line 449: | Line 459: | ||
| # value = element(virtualbox_vm.node.*.network_adapter.0.ipv4_address, 2) | # value = element(virtualbox_vm.node.*.network_adapter.0.ipv4_address, 2) | ||
| #} | #} | ||
| + | output "node_ips" { | ||
| + | value = [for vm in virtualbox_vm.node : vm.network_adapter.0.ipv4_address] | ||
| + | description = "IP for VM" | ||
| + | } | ||
| </code> | </code> | ||
| + | * [[#Управление проектом]] | ||
| + | <code> | ||
| + | PS C:\Users\Administrator\nodes> start notepad++ pre_network.sh | ||
| + | </code> | ||
| + | * Правка->Формат Конца Строк-> Преобразовать в Unix (LF) | ||
| <code> | <code> | ||
| #!/bin/bash | #!/bin/bash | ||
| - | N=$1 | + | #!!! CHANGE IT !!! |
| X=13 | X=13 | ||
| + | |||
| + | N=$1 | ||
| echo 'vagrant:strongpassword' | sudo /usr/sbin/chpasswd | echo 'vagrant:strongpassword' | sudo /usr/sbin/chpasswd | ||
| Line 490: | Line 510: | ||
| sudo shutdown -r +1 | sudo shutdown -r +1 | ||
| </code> | </code> | ||
| + | |||
| + | * [[#Управление проектом]] | ||
| ===== Провайдеры Selectel и OpenStack ===== | ===== Провайдеры Selectel и OpenStack ===== | ||