Общая информация
Эти шаблоны можно использовать для создания ресурсов с помощью Terraform.
- Подробная документация: [Terraform Docs](https://www.terraform.io/docs/index.html)
- Инструкция по установке и началу работы доступна по [ссылке](https://www.ps.kz/faq/oblachnaya-platforma-ps-cloud/vpc/terraform-getting-started)
1. Создание сервера с диском и новой серой маршрутизируемой подсетью из образа```hcl
terraform {
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) с существующей подсетью из темплейта```hcl
terraform {
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 с сервером и новой изолированной подсетью из темплейта```hcl
terraform {
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 с сервером, диском и новой маршрутизируемой подсетью из образа```hcl
terraform {
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"
}
}