Особенности обновлений на старых версиях(до 1.59)
Проверка переменных окружения
- Открыть файл
/etc/profile.d/alpine-octopus-variables.sh
для редактирования. -
Убедиться, что содержимое файла соответствует следующему:
export OCTOPUS_WORKDIR=~/octopus export PRIVATETOKEN=glpat-... export DOCKER_USER=... export DOCKER_REGISTRY=registry.usetech.ru
-
Актуальное значение для переменных
PRIVATETOKEN
,DOCKER_USER
необходимо запросить у службы поддержки.
Проверка авторизации в реестре контейнеров Octopus
Проверка имеет смысл для обновлений на версиях до 1.59.20. Для выполнения авторизации выполните следующую команду:
docker login -u <логин> -p <glpat-...<токен>> registry.usetech.ru
Результат успешной авторизации представлен на скриншоте ниже:
Значения логина и токена необходимо получить у службы поддержки
Проверка наличия SSL сертификатов
На последних версиях продукта Октопус, пользовательский интерфейст стал использовать протокол HTTPS
вместо HTTP
.
Для его корректной работы нужны либо пользовательские сертификаты, либо сертификаты, поставляемые с продуктом
Октопус
.
- Найти и скачать сертификаты можно на официальном сайте обновлений
Октопус
- Создать директорию
/home/octopus/octopus/certificates
при необходимости - Скачанные сертификаты необходимо разместить в директории
/home/octopus/octopus/certificates
Установка необходимых пакетов для процесса обновления
- Для работы скрипта обновления нужны следующие пакеты:
- busybox-extras;
- grep;
- rsync;
- unzip.
-
При онлайн обновлении и наличии выхода в интернет необходимо поставить пакеты следующей командой:
sudo apk add busybox-extras grep rsync unzip
-
При офлайн обновлении необходимо вместе с пакетом обновления Octopus скачать все необходимые недостающие пакеты либо из официального репозитория
alpine
, либо специально подготовленный архив пакетами с сайта Octopus. -
Далее необходимо выполнить следующие команды из домашнего каталога пользователя
octopus
:mkdir offline-update-begin tar -xf octopus-begin-offline-update.tar -C offline-update-begin/
-
После распаковки архива внутрь директории
offline-update-begin
, необходимо вручную запустить следующую команду установки пакетов из каждой вложенной директории:sudo apk add --no-network --allow-untrusted *.apk
-
Убедиться, что инструменты обновлены:
grep --version
unzip -v
rsync --version
Обновить скрипт обновления
- Скачать файл update_begin.sh с официального сайта обновлений
Octopus
- Заменить файл, расположенный по пути
/home/octopus/octopus/scripts/update_being.sh
на тот, который был скачан в пункте 1.
Ручное выполнение миграции с неподдерживаемой версии 1.0.181.21
К сожалению, на старых версиях 1.0.181.21
необходимо ПЕРЕД обновлением вручную произвести миграцию.
- Скачать файл миграции manual_181.sql и поместить его внутрь ВМ Октопус
-
Выполнить команды миграции:
docker compose stop && docker compose up -d postgres docker exec -i octopus.postgres psql -U postgres -d octopus --single-transaction --set ON_ERROR_STOP=on -f - < manual_181.sql
Изменение пользователя и прав доступа
Постепенно вносятся критически важные изменения в модель безопасности и управления правами доступа. В версии 1.59 платформа Octopus должна запускаться от имени специально созданного системного пользователя octopus
.
В старых версиях некоторые контейнеры могут запускаться от пользователя root
и создавать файлы и директории, к которым не будет доступа у пользователя octopus
. Поэтому перед началом обновления необходимо вручную исправить права доступа для некоторых директорий, чтобы обеспечить корректность процесса обновления и предотвратить возможную потерю данных.
Выполните следующие команды на сервере под учетной записью, обладающей правами sudo
:
-
Изменение владельца рабочей директории
octopus
:sudo chown -R octopus:octopus /home/octopus/octopus
-
Настройте права на запись для директории дампов: Это обеспечит корректную работу механизма резервного копирования и восстановления ClickHouse под новым пользователем.
sudo chmod 775 /home/octopus/octopus/config/clickhouse/dumps/
Обновление скрипта управления брандмауэром (iptables
)
- Скачать файл closeports.sh с официального сайта обновлений
Octopus
- Заменить файл, расположенный по пути
/home/octopus/octopus/scripts/closeports.sh
на тот, который был скачан в пункте 1. - Запуск скрипта. Запустите обновленный скрипт, указав в качестве аргументов номера портов, которые необходимо открыть (например, 22, 80, 443 для SSH, HTTP и HTTPS).
sudo /home/octopus/octopus/scripts/closeports.sh 22 80 443
Скрипт выполнит следующие действия:
- Сбросит текущие правила
iptables
. - Установит политики по умолчанию (закрытый входящий и переадресуемый трафик, открытый исходящий).
- Разрешит работу через локальный интерфейс (
lo
). - Разрешит уже установленные и связанные соединения.
- Перезапустит службу Docker.
- Добавит правила для приема входящего трафика на указанные порты.
- Сохранит примененные правила для восстановления после перезагрузки.
Важно: После выполнения этого скрипта будут открыты только те порты, которые вы указали в команде.