С помощью данного решения можно развернуть виртуальный маршрутизатор Mikrotik Cloud Hosted Router (CHR) в Yandex Cloud.
Процесс развёртывания CHR
в Yandex Cloud состоит из 2х этапов:
- Подготовка образа диска для развертывания ВМ. При подготовке образа для развертывания используется оригинальное ПО из раздела
Cloud Hosted Router
на сайте Mikrotik. - Создание виртуальной машины (ВМ) из подготовленного в п.1 образа диска.
После развёртывания виртуальный маршрутизатор CHR
будет доступен только по протоколу SSH (tcp 22) и Winbox (tcp 8291) с указанных IP-адресов, остальные протоколы доступа будут отключены.
Для выполнения развёртывания необходимо использовать операционную систему Linux или MacOS.
Развёртывание в среде Windows Subsystem for Linux (WSL) не гарантируется!
- Убедиться, что все необходимые инструменты для развёртывания установлены и настроены:
git
- установлен и настроен.curl
- установлен.yc CLI
- установлен и настроен.Terraform
- установлен и настроен.
-
Загрузить решение из репозитория на github.com:
git clone https://github.com/yandex-cloud-examples/yc-deploy-mikrotik-chr.git
-
Перейти в папку с развёртыванием.
cd yc-deploy-mikrotik-chr
-
Выбрать на сайте Mikrotik в разделе
Cloud Hosted Router
нужную версию для развёртывания. -
Подготовить окружение для выполнения развёртывания.
source ./env-yc.sh
-
Запустить сборку образа диска для выбранной версии CHR. При запуске сборки необходимо указать:
- выбранную
версию CHR
- идентификатор облачного каталога в котором образ будет создаваться.
./chr-build-image.sh 7.18.2 b1g28**********yvxc3
После успешной сборки, в указанном облачном каталоге будет создан образ диска с именем вида
mikrotik-chr-<version>
, а на экран показаны идентификаторы каталога и созданного в нём образа диска.... chr_image_folder_id = "b1g28**********yvxc3" chr_image_id = "fd8to**********1ejrf"
- выбранную
-
Заполнить параметры развёртывания ВМ с CHR в файле terraform.tfvars.
Ниже приведен список параметров с примерами их заполнения. Подробнее со всеми параметрами развёртывания можно ознакомиться в файле variables.tf.
-
zone_id
- идентификатор зоны доступности в которой будет развёртываться ВМ, например,ru-central1-d
. -
vpc_subnet_id
- идентификатор подсети, куда будет подключаться создаваемая ВМ, например,fl83k**********jbvnt
. -
chr_ip
- IP-адрес из подсетиvpc_subnet_id
для сетевого интерфейса ВМ, например,10.150.0.150
. -
allowed_ip_list
- список доверенных IPv4-адресов от которых будут разрешаться соединения к CHR ВМ. Например,["10.120.1.0/24", "10.150.0.0/24"]
. Поддерживаются толькоIPv4
адреса. Ограничение доступа обеспечивается механизмом групп безопасности, который будет настроен на сетевом интерфейсе ВМ. В список доверенных IP-адресов автоматически будет добавлен публичный IP-адрес с которого будет выполняться развёртывание (seed_ip). -
chr_name
- имя для виртуального маршрутизатора CHR, например,yc-chr
. -
admin_name
- имя для администратора ВМ, например,oper
. Учётная запись администратора по-умолчаниюadmin
будет удалена в процессе развёртывания. -
admin_key_file
- путь к файлу с публичным SSH ключём для учётной записи администратора, например,~/.ssh/id_ed25519.pub
. -
Параметры образа диска, полученные на предыдущем шаге. Могут быть скопированы из вывода процесса сборки образа диска (п.6), например:
chr_image_folder_id = "b1g28**********yvxc3" chr_image_id = "fd8to**********1ejrf"
Если ВМ разворачивается в том же облачном каталоге, где ранее был создан образ, то значение идентификатора каталога можно не указывать (оставить пустым).
-
-
Проверить и скорректировать (при необходимости) конфигурацию CHR в файле chr-init.tpl.
-
Запустить развёртывание CHR с помощью инструмента Terraform.
terraform apply
Ожидаемый результат:
connection-string = "ssh oper@<public-ip-address>"
-
Подключиться к CHR по протоколу SSH с помощью
connection-string
из предыдущего шага.ssh oper@<public-ip-address>
После подключения к CHR нажать в терминале
n
или пробел для отказа от просмотра лицензионного соглашения.Ожидаемый результат:
[oper@yc-chr] >
-
Перейти в каталог с развёртыванием.
cd yc-deploy-mikrotik-chr
-
Подготовить окружение для удаления развёртывания.
source ./env-yc.sh
-
Удалить развёртывание CHR ВМ с помощью инструмента
Terraform
.terraform destroy
-
Удалить образ диска для CHR ВМ с помощью инструмента
YC CLI
.yc compute image delete --id fd8to**********1ejrf --folder-id b1g28**********yvxc3