Алибаба и Terraform — Раскатываем большую сеть ВМ в Alibaba Cloud — Часть 2

Продолжаем поднимать сеть из ВМ. Теперь настало время остальных нод, 90 штук.

Посовещавшись с коллегами, решили размазать оставшиеся ВМ по 15-и регионам, итого по 6 ВМ на регион.

Подготовка

В нашем репозитории, создаю каталог mgd10-15 и копирую файлы с mgd00.

Начинаю с региона India (Mumbai).

Все осталось как прежде, единственное, меняю название mainnet на secondnet и так же необходимо указать для instance count или for_each.

Т.к мне нужно соблюдать порядок ВМ, я выбираю for_each и наполняю его именами сам. Ну и ресурс теперь называется нейтрально — instances.

Еще поправим имя ключа, проброс ключа и outputs.tf. В связи с тем, что мы разом создаем несколько ВМ с помощью for_each, нужно учитывать следующее:

The [*] and .* operators are intended for use with lists only. Because this resource uses for_each rather than count, its value in other expressions is a map, not a list.

Поэтому, делать будем так.

Сам ключ уже существует в тех же самых регионах, поэтому его надо переименовать.

Для attachment ключа.

Для outputs.tf

Так же, пока тестирую, переключаю instance_charge_type на PostPaid (оплата по факту использования).

Инициализирую

Результат

Запустим terraform plan

Внимательно все проверяем.

Теперь можно запускать terraform apply.

Ждем

Готово

Сразу проверим подключение по SSH, должно быть ОК.

Примечание. Нашел баг, что после создания ВМ, не ко всем применяется мой ключ. Достаточно просто перезагрузить ВМки пачкой и подключение заработает.

Проверив что все ОК, уничтожаю машины (можно и переприменить манифест, но я хочу потестить сразу и уничтожение) с помощью команды terraform destroy.

Теперь меняю оплату на PrePaid.

И запускаю еще раз terraform apply.

Готово. И минус 374 Юаня

Продолжаем.

Создаю каталог, копирую файлы, произвожу инициализацию, меняю регион, его название, имена ВМ…

Готово. И минус еще 383 Юаня

По итогу, получилось так

Еще осталось 6 ВМ и один регион — Dubai. Но там ВМ стоит по 15$ за штуку. И мы решили размазать оставшиеся 6 ВМ по другим регионам.

Открываю манифест и дописываю имя ВМ, начиная с крайнего 6-го региона, что бы в каждый регион засунуть по одной дополнительной ВМ.

Здесь я уже поменял нумерацию целиком, с добавлением 7-й ВМ

Появилась такая проблема. При переименовании имён ВМ в манифесте, Terraform очень хотел уничтожить одну, считая, что раз такого имени в манифесте нет, то и ВМ не должно быть. В следующем манифесте уже 2 ВМ, далее 3 и т.д.

Предлагает убить всё и создать новые

Нам это не нужно. Я попытался решить проблему с помощью terraform mv, но не получилось.

Поэтому я решил отредактировать terraform.tfstate, подсказав ему что нужно делать.

Ищу первую в списке ВМ.

Нужно поменять имя в трех местах

И меняю имя.

Делаю так для всех 6-и ВМ и запускаю terraform plan

Больше ничего уничтожаться (кроме монтирования ключей) не будет. То что нужно.

Можно делать terraform apply.

Финальный результат

На этом всё.

Оставьте комментарий