База знаний LinxCloud Services

Управление сетями и группами безопасности

Прежде всего убедитесь, что вы установили Terraform и создали файл main.tf с необходимыми провайдерами.

Чтобы создать сеть или группу безопасности, создайте файл network.tf, где будет описана конфигурация создаваемых сущностей. Добавьте текст из примеров ниже, и исправьте значения настроек для ваших сетей и групп безопасности.

Для создания сети и групп безопасности нам потребуются следующие объекты:

  1. Ресурсы (resource):
  • linxcs_networking_network — сеть, в которую будут вноситься изменения.
  • linxcs_networking_subnet — подсеть из сети. В примере: subnetwork.
  • linxcs_networking_router — роутер для внешней сети и взаимодействия с внешним миром. В примере: router.
  • linxcs_networking_router_interface — подключить роутер к внутренней сети.
  • linxcs_networking_secgroup — группа безопасности, в которую будут включены правила доступа.
  • linxcs_networking_secgroup_rule — правило для группы безопасности. В примере, открываем доступ к сети с любого IP по портам 22 и 3389.
  • linxcs_networking_port — создать ресурс сетевого порта внутри Linx Cloud.
  • linxcs_networking_port_secgroup_associate — привязать порт к группе безопасности.
  1. Источники данных (data source):
  • linxcs_networking_network – внешняя сеть для получения публичного IP (Floating IP).
1data "linxcs_networking_network" "extnet" {
2  name = "ext-net"
3}
4
5resource "linxcs_networking_network" "network" {
6  name = "net"
7}
8
9resource "linxcs_networking_subnet" "subnetwork" {
10  name       = "subnet_1"
11  network_id = linxcs_networking_network.network.id
12  cidr       = "192.168.199.0/24"
13  ip_version = 4
14}
15
16resource "linxcs_networking_router" "router" {
17  name                = "router"
18  admin_state_up      = true
19  external_network_id = data.linxcs_networking_network.extnet.id
20}
21
22resource "linxcs_networking_router_interface" "db" {
23  router_id = linxcs_networking_router.router.id
24  subnet_id = linxcs_networking_subnet.subnetwork.id
25}
26
27
28resource "linxcs_networking_secgroup" "secgroup" {
29  name = "security_group"
30  description = "terraform security group"
31}
32
33resource "linxcs_networking_secgroup_rule" "secgroup_rule_1" {
34  direction = "ingress"
35  ethertype = "IPv4"
36  port_range_max = 22
37  port_range_min = 22
38  protocol = "tcp"
39  remote_ip_prefix = "0.0.0.0/0"
40  security_group_id = linxcs_networking_secgroup.secgroup.id
41	description = "secgroup_rule_1"
42}
43
44resource "linxcs_networking_secgroup_rule" "secgroup_rule_2" {
45  direction = "ingress"
46  ethertype = "IPv4"
47  port_range_max = 3389
48  port_range_min = 3389
49  remote_ip_prefix = "0.0.0.0/0"
50  protocol = "tcp"
51  security_group_id = linxcs_networking_secgroup.secgroup.id
52}
53
54resource "linxcs_networking_port" "port" {
55  name = "port_1"
56  admin_state_up = "true"
57  network_id = linxcs_networking_network.network.id
58
59  fixed_ip {
60    subnet_id =  linxcs_networking_subnet.subnetwork.id
61    ip_address = "192.168.199.23"
62  }
63}
64
65resource "linxcs_networking_port_secgroup_associate" "port" {
66  port_id = linxcs_networking_port.port.id
67  enforce = "false"
68  security_group_ids = [
69    linxcs_networking_secgroup.secgroup.id,
70  ]
71}

 

Добавьте пример в файл network.tf и выполните следующие команды:

terraform init

 

terraform apply
Что вас интересует?
Получить промокод
остались вопросы?

Закажите консультацию специалиста

заказать тест-драйв
Получить демо-доступ

Спасибо за ваш запрос, мы свяжемся с вами в ближайшее время!