diff --git a/examples/main.tf b/examples/main.tf deleted file mode 100644 index ec53aba..0000000 --- a/examples/main.tf +++ /dev/null @@ -1,63 +0,0 @@ -# Создаем проект с пользователем -# данный модуль создать проект/пользователя и креды для него -module "project-with-user" { - source = "../modules/os_project_with_user" - os_project_name = "gh_test_multiple_ports" - os_username = "gh_test_tf_user" -} - -# Создаём виртуалку и все что необходимо для ее работы -module "vm" { - source = "../modules/vm" - os_region = "ru-9" - os_zone = "ru-9a" - vm_name = "test-vm" - server_root_disk_gb = ["10"] - vm_vcpus = 4 - vm_ram_mb = 4096 - enable_dhcp = true - - depends_on = [ - module.project-with-user - ] -} - -# Приатачим плавающий ip к виртуалке -# создадим floating ip -module "fl_ip1" { - source = "../modules/floatingip" - region = "ru-9" - - depends_on = [ - module.vm - ] -} - -resource "openstack_networking_floatingip_associate_v2" "association_1" { - port_id = module.vm.vm1_port_id - floating_ip = module.fl_ip1.floatingip_address - region = "ru-9" - - depends_on = [ - module.fl_ip1 - ] -} - -module "fl_ip2" { - source = "../modules/floatingip" - region = "ru-9" - - depends_on = [ - module.vm - ] -} - -resource "openstack_networking_floatingip_associate_v2" "association_2" { - port_id = module.vm.vm2_port_id - floating_ip = module.fl_ip2.floatingip_address - region = "ru-9" - - depends_on = [ - module.fl_ip2 - ] -} diff --git a/examples/providers.tf b/examples/providers.tf deleted file mode 100644 index 3a08017..0000000 --- a/examples/providers.tf +++ /dev/null @@ -1,15 +0,0 @@ -provider "selectel" { - domain_name = var.selectel_domain_name - username = var.selectel_user_admin_user - password = var.selectel_user_admin_password -} - -provider "openstack" { - auth_url = var.os_auth_url - user_name = module.project-with-user.user_name - tenant_id = module.project-with-user.project_id - password = module.project-with-user.user_password - project_domain_name = var.selectel_domain_name - user_domain_name = var.selectel_domain_name - region = "ru-9" -} diff --git a/examples/vars.tf b/examples/vars.tf deleted file mode 100644 index 08f8bfd..0000000 --- a/examples/vars.tf +++ /dev/null @@ -1,22 +0,0 @@ -# Selectel provider vars -variable "selectel_domain_name" { - type = string - description = "ID Selectel аккаунта" -} - -variable "selectel_user_admin_user" { - type = string - description = "Имя сервисного пользователя, необходимо создать через панель my.selectel" -} - -variable "selectel_user_admin_password" { - type = string - description = "Пароль от сервисного пользователя" -} - -# Openstack provider vars -variable "os_auth_url" { - type = string - default = "https://cloud.api.selcloud.ru/identity/v3" - description = "URL до openstack api" -} diff --git a/examples/versions.tf b/examples/versions.tf deleted file mode 100644 index 242775e..0000000 --- a/examples/versions.tf +++ /dev/null @@ -1,13 +0,0 @@ -terraform { - required_providers { - selectel = { - source = "selectel/selectel" - version = "4.0.2" - } - openstack = { - source = "terraform-provider-openstack/openstack" - version = "1.53.0" - } - } - required_version = ">= 1.0.0" -} diff --git a/modules/nat/main.tf b/modules/nat/main.tf index 23f5035..1ba7302 100644 --- a/modules/nat/main.tf +++ b/modules/nat/main.tf @@ -18,6 +18,7 @@ resource "openstack_networking_subnet_v2" "subnet_1" { cidr = var.subnet_cidr name = var.subnet_cidr enable_dhcp = var.enable_dhcp + no_gateway = var.no_gateway } resource "openstack_networking_router_interface_v2" "router_interface_1" { diff --git a/modules/vm/main.tf b/modules/vm/main.tf index 283bdcc..ab087fe 100644 --- a/modules/vm/main.tf +++ b/modules/vm/main.tf @@ -18,43 +18,58 @@ module "volume" { image_name = var.image_name[count.index] } -module "nat1" { +module "nat" { source = "../nat" router_external_net_name = var.router_external_net_name dns_nameservers = var.dns_nameservers subnet_cidr = var.subnet_cidr - router_name = var.router1_name - network_name = var.network1_name + router_name = var.router_name + network_name = var.network_name enable_dhcp = var.enable_dhcp + no_gateway = var.no_gateway } -module "nat2" { - source = "../nat" +module "network_1" { + source = "../network" - router_external_net_name = var.router_external_net_name dns_nameservers = var.dns_nameservers - subnet_cidr = var.subnet_cidr - router_name = var.router2_name - network_name = var.network2_name - enable_dhcp = var.enable_dhcp + subnet_cidr = var.local_network_1_subnet_cidr + network_name = var.local_network_1_name +} + +module "network_2" { + source = "../network" + + dns_nameservers = var.dns_nameservers + subnet_cidr = var.local_network_2_subnet_cidr + network_name = var.local_network_2_name } resource "openstack_networking_port_v2" "port_1" { name = "${var.vm_name}-eth0" - network_id = module.nat1.network_id + network_id = module.nat.network_id fixed_ip { - subnet_id = module.nat1.subnet_id + subnet_id = module.nat.subnet_id } } resource "openstack_networking_port_v2" "port_2" { name = "${var.vm_name}-eth1" - network_id = module.nat2.network_id + network_id = module.network_1.network_id fixed_ip { - subnet_id = module.nat2.subnet_id + subnet_id = module.network_1.subnet_id + } +} + +resource "openstack_networking_port_v2" "port_3" { + name = "${var.vm_name}-eth2" + network_id = module.network_2.network_id + + fixed_ip { + subnet_id = module.network_2.subnet_id } } @@ -69,7 +84,7 @@ resource "openstack_compute_instance_v2" "instance_1" { } network { - port = openstack_networking_port_v2.port_2.id + port = openstack_networking_port_v2.port_1.id } dynamic "block_device" { @@ -92,3 +107,8 @@ resource "openstack_compute_instance_v2" "instance_1" { ] } } + +resource "openstack_compute_interface_attach_v2" "port_3_attach" { + instance_id = openstack_compute_instance_v2.instance_1.id + port_id = openstack_networking_port_v2.port_3.id +} diff --git a/modules/vm/vars.tf b/modules/vm/vars.tf index fc2a600..818d093 100644 --- a/modules/vm/vars.tf +++ b/modules/vm/vars.tf @@ -65,33 +65,45 @@ variable "dns_nameservers" { } variable "subnet_cidr" { - description = "Subnet CIRD to be created" + description = "Subnet CIDR to be created" type = string default = "192.168.0.0/24" } -variable "router1_name" { +variable "router_name" { description = "Router name to be created" type = string default = "router_1" } -variable "network1_name" { +variable "network_name" { description = "Network name to be created" type = string default = "network_1" } -variable "router2_name" { - description = "Router name to be created" +variable "local_network_1_name" { + description = "Local network name to be created" type = string - default = "router_2" + default = "local_network_1" } -variable "network2_name" { - description = "Network name to be created" +variable "local_network_2_name" { + description = "Local network name to be created" + type = string + default = "local_network_2" +} + +variable "local_network_1_subnet_cidr" { + description = "Subnet CIDR to be created" type = string - default = "network_2" + default = "192.168.1.0/24" +} + +variable "local_network_2_subnet_cidr" { + description = "Subnet CIDR to be created" + type = string + default = "192.168.2.0/24" } variable "enable_dhcp" { @@ -99,3 +111,8 @@ variable "enable_dhcp" { type = bool default = false } + +variable "no_gateway" { + type = string + default = false +} \ No newline at end of file