Общая информация
Эти шаблоны можно использовать для создания ресурсов с помощью Terraform.
- Подробная документация: [Terraform Docs](https://www.terraform.io/docs/index.html)
- Инструкция по установке и началу работы доступна по [ссылке](https://www.ps.kz/faq/oblachnaya-platforma-ps-cloud/vpc/terraform-getting-started)
1. Создание сервера с диском и новой серой маршрутизируемой подсетью из образа```hclterraform { required_version = ">= 0.13" required_providers { vcd = { source = "vmware/vcd" } }}
provider "vcd" { user = "vcd_user" password = "vcd_pass" org = "org_name" vdc = "vdc_name" url = "https://vcloud.pscloud.io/api"}
data "vcd_catalog" "catalog" { org = "org_name" name = "catalog_name"}
data "vcd_catalog_media" "image" { org = "org_name" catalog_id = data.vcd_catalog.catalog.id name = "exist_image_name"}
resource "vcd_independent_disk" "disk" { vdc = "vdc_name" name = "volume_test" size_in_mb = 10000 storage_profile = "storage_policies_name"}
resource "vcd_network_routed" "net" { org = "org_name" vdc = "vdc_name" name = "new_subnet_name" edge_gateway = "edge_gateway_name" gateway = "192.168.1.1"
static_ip_pool { start_address = "192.168.1.2" end_address = "192.168.1.100" }}
resource "vcd_vm" "test_vm" { name = "test_vm" computer_name = "test-vm" os_type = "centos7_64Guest" hardware_version = "vmx-14" boot_image_id = data.vcd_catalog_media.image.id cpus = 1 memory = 1024
disk { name = vcd_independent_disk.disk.name bus_number = 1 unit_number = 0 }
guest_properties = { "hostname" = "test-vm" "password" = "your_password_here" "user-data" = base64encode(file("cloud-config.yaml")) }
network { name = vcd_network_routed.net.name type = "none" ip_allocation_mode = "MANUAL" ip = "192.168.1.10" }}```
2. Создание сервера (fast provisioning) с существующей подсетью из темплейта```hclterraform { required_version = ">= 0.13" required_providers { vcd = { source = "vmware/vcd" } }}
provider "vcd" { user = "vcd_user" password = "vcd_pass" org = "org_name" vdc = "vdc_name" url = "https://vcloud.pscloud.io/api"}
data "vcd_catalog" "catalog" { org = "org_name" name = "catalog_name"}
data "vcd_catalog_vapp_template" "vapp" { org = "org_name" catalog_id = data.vcd_catalog.catalog.id name = "exist_template_name"}
resource "vcd_vm" "test" { name = "test_vm" vapp_template_id = data.vcd_catalog_vapp_template.vapp.id cpus = 1 memory = 1024
network { name = "exist_subnet_name" type = "org" ip_allocation_mode = "MANUAL" ip = "192.168.0.10" }}```
3. Создание vApp с сервером и новой изолированной подсетью из темплейта```hclterraform { required_version = ">= 0.13" required_providers { vcd = { source = "vmware/vcd" } }}
provider "vcd" { user = "vcd_user" password = "vcd_pass" org = "org_name" vdc = "vdc_name" url = "https://vcloud.pscloud.io/api"}
data "vcd_catalog" "catalog" { org = "org_name" name = "catalog_name"}
data "vcd_catalog_vapp_template" "vapp" { org = "org_name" catalog_id = data.vcd_catalog.catalog.id name = "exist_template_name"}
resource "vcd_vapp" "test" { name = "test"}
resource "vcd_vapp_network" "vapp_net" { name = "test_net" vapp_name = vcd_vapp.test.name gateway = "192.168.1.1" prefix_length = 24
static_ip_pool { start_address = "192.168.1.2" end_address = "192.168.1.100" }}
resource "vcd_vapp_vm" "test" { vapp_name = vcd_vapp.test.name name = "test_vm" vapp_template_id = data.vcd_catalog_vapp_template.vapp.id cpus = 1 memory = 1024
network { name = vcd_vapp_network.vapp_net.name type = "vapp" ip_allocation_mode = "MANUAL" ip = "192.168.1.10" }}```
4. Создание vApp с сервером, диском и новой маршрутизируемой подсетью из образа```hclterraform { required_version = ">= 0.13" required_providers { vcd = { source = "vmware/vcd" } }}
provider "vcd" { user = "vcd_user" password = "vcd_pass" org = "org_name" vdc = "vdc_name" url = "https://vcloud.pscloud.io/api"}
data "vcd_catalog" "catalog" { org = "org_name" name = "catalog_name"}
data "vcd_catalog_media" "image" { org = "org_name" catalog_id = data.vcd_catalog.catalog.id name = "exist_image_name"}
resource "vcd_independent_disk" "disk" { vdc = "vdc_name" name = "volume_test" size_in_mb = 10000 storage_profile = "storage_policies_name"}
resource "vcd_network_routed" "net" { org = "org_name" vdc = "vdc_name" name = "new_subnet_name" edge_gateway = "edge_gateway_name" gateway = "192.168.1.1"
static_ip_pool { start_address = "192.168.1.2" end_address = "192.168.1.100" }}
resource "vcd_vapp" "test" { depends_on = [vcd_network_routed.net] name = "test" power_on = true}
resource "vcd_vapp_org_network" "routed-network" { depends_on = [vcd_vapp.test] vdc = "vdc_name" vapp_name = vcd_vapp.test.name org_network_name = vcd_network_routed.net.name}
resource "vcd_vapp_vm" "test" { vapp_name = vcd_vapp.test.name name = "test_vm" computer_name = "test" os_type = "centos7_64Guest" hardware_version = "vmx-14" boot_image_id = data.vcd_catalog_media.image.id cpus = 1 memory = 1024
disk { name = vcd_independent_disk.disk.name bus_number = 1 unit_number = 0 }
network { name = vcd_network_routed.net.name type = "org" ip_allocation_mode = "MANUAL" ip = "192.168.1.10" }}
