С помощью данного решения можно развернуть виртуальный маршрутизатор 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