Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Обновление портала

1. Обновление версий портала

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

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

1.1 - 1.6

1.0

1.7 - 1.24

1.6

1.25 - 1.26

1.21

1.27 - 1.30

1.25

1.31 и новее

1.30

Пример: До версии 1.26 можно обновиться с версий 1.21 - 1.25

Чтобы обновить портал, выполните следующие действия:

  1. Разархивируйте новую версию дистрибутива в отдельную директорию.

  2. Скопируйте inventory/sample в inventories/box. Процесс аналогичен установке портала Cloudlink. Это будет новый inventory для обновленного портала.

  3. Перенесите значения из старых файлов config.yml и hosts в соответствующие разделы нового inventory.

    Не копируйте старые файлы целиком: структура нового файла конфигурации могла измениться, поэтому совместимость не гарантируется.

  4. Продолжите процесс обновления портала после заполнения нового inventory значениями. Процесс аналогичен установке портала Cloudlink.

  5. Выполните действия после обновления, если они есть.

    При обновлении через несколько версий (например, с 1.10 до 1.12), выполняйте действия для каждой промежуточной версии по порядку (1.10, 1.11, 1.12 и т.д.). Если действий для какой-то версии нет, пропустите её.

2. Установка патчей для портала

Для установки патча выполните следующие шаги:

  1. Скопируйте архив с патчем.

  2. Выполните команду, где PATH_TO_PATCH_ARCHIEVE — путь до файла архива:

    manage-tool --update-services PATH_TO_PATCH_ARCHIEVE
  3. После сообщения об успешном обновлении запустите команду развертывания, чтобы применить обновления.

3. Миграция данных между разными инсталляциями

Установщик Cloudlink поддерживает миграцию данных между различными инсталляциями, начиная с версии 1.9.

Миграцию рекомендуется проводить между одинаковыми версиями портала.

Для выполнения миграции:

  1. Разверните инсталляции source и destination, используя стандартный процесс установки.

  2. В файле migration.yml укажите пути к kubeconfig для обеих инсталляций: source и destination.

  3. Запустите playbook с помощью команды:

    ansible-playbook migration.yml -vv

    В результате миграции все текущие объекты в destination-кластере будут удалены и заменены данными из source-кластера.

  4. Разверните destination-кластер повторно, используя стандартный процесс установки.

4. Действия после обновления

После обновления версии выполните следующие действия:

  1. Подключитесь к хосту по SSH:

    ssh root@${IP/DNS}
    # или
    ssh ${USERNAME}@${IP/DNS}
    sudo su
  2. Убедитесь, что у вас есть root-права.

  3. Получите список подов в пространстве имён portal-box:

    kubectl get pods -n portal-box
    # или для поиска конкретного сервиса
    kubectl get pods -n portal-box | grep ${SERVICE_NAME}

    $SERVICE_NAME — имя сервиса (например, lucrum-back, auditor и т.д.).

  4. После получения имени нужного пода выполните следующую команду:

    kubectl -n portal-box exec -it ${POD_NAME} -- ${COMMAND}

4.1. Release 1.15

Для сервиса Order Manager выполните следующую команду:

  • Если сервис запущен вне Kubernetes:

    1. Запустите Rails-консоль:

      rails c
    2. В консоли выполните команду:

      Platform.without_deleted.update_all(disable_reservation: true, disable_reservation_for_action: true)
  • Если сервис запущен в Kubernetes, то выполните следующую команду:

    kubectl -n portal-box exec -it ${POD_NAME} -- rails runner 'Platform.without_deleted.update_all(disable_reservation: true, disable_reservation_for_action: true)'

Команда отключает механизм резервации для всех платформ.

Команду через kubectl необходимо выполнять только после установки системы с нуля. В остальных случаях выполнение не требуется.

4.2. Release 1.20

Сервис Команда kubectl Описание и комментарии

order-manager

bundle exec rake init_data:add_orders_to_iam

kubectl -n portal-box exec -it ${POD_NAME} — bundle exec rake init_data:add_orders_to_iam

Выполнить задачу по добавлении информации о существующих заказах.

Команду нужно выполнять в main поде, если производится обновление портала. В иных случаях не требуется.

order-manager

bundle exec rake update_data:orders:rename_simple_mode

kubectl -n portal-box exec -it ${POD_NAME} — bundle exec rake update_data:orders:rename_simple_mode

Выполнить задачу по добавлении информации о существующих заказах.

Команду нужно выполнять в main поде, если производится обновление портала. В иных случаях не требуется.

calculator

python manage.py fix_manual_deleted

kubectl -n portal-box exec -it ${POD_NAME} — python manage.py fix_manual_deleted

Выполнить задачу, она пересчитывает поврежденные ручным удалением объекты.

# Команду нужно выполнять, если производится обновление портала. В иных случаях не требуется.#

calculator

python manage.py calc_not_calculated_prices

kubectl -n portal-box exec -it ${POD_NAME} — python manage.py calc_not_calculated_prices

Выполнить задачу, она пересчитывает пропущенные/не посчитанные заказы.

Команду нужно выполнять, если производится обновление портала. В иных случаях не требуется.

4.3. Release 1.22

Сервис Команда kubectl Описание и комментарии

netbox

Изменились теги для префиксов (Prefixes) сетей в Netbox для zVirt и redvirt. Новые теги основанные на cluster_id создаются автоматически, но необходимо заменить cluster_name на cluster_id вручную во вкладке Prefixes по ссылке https://netbox.{hostname}/ipam/prefixes.

4.4. Контрольные суммы

Версия MD5

1.21

9f61fc0cd11706d7eec28cd71541a599

1.22

f68e04cc580390d09c62fbb55e3743ca