[B]Дополнение 1 к релизу VMBitrix 9.0.4: проблема доступа к репозиториям Percona
[/B]
[B]Проблема[/B]
Информация актуальна для РФ, и для тех, кто использует хостинг/размещает в РФ.
С начала ноября 2024 наблюдаются проблемы с доступом к репам percona. Урл repo.percona.com не отдает данные реп и пакеты.
Сайт percona.com то открывается, то нет. Тоже самое с поддоменами вида docs.percona.com и т.д.
По базам блокировок РКН указанный сайт не находит.
Скорей всего связано с блокировкой ECH, под которую попали Cloudflare/OVH/Hetzner: [URL=https://habr.com/ru/news/856344/]https://habr.com/ru/news/856344/[/URL]
ТСПУ провайдеров не дает трафику ходить на эти ресурсы. Никакой информации нет, как всегда(
Репа repo.percona.com находится в Германии, провайдер Hetzner: [URL=https://2ip.ru/info/49.12.125.205/]https://2ip.ru/info/49.12.125.205/[/URL]
[B]Последствия[/B]
Виртуальная машина VMBitrix любой версии:
- не ставится через sh скрипт на чистую ОС
- не может выполнить обновления пакетов
- задачи, запускаемые из меню не отрабатывают (падают при обращение за любыми пакетами в сеть)
[B]Диагностика[/B]
Чтобы понять, есть ли у вашей сети/провайдера блокировка репы, достаточно попробовать "по-curl-ить" repo.percona.com, пример:
[CODE][root@server1 ~]# curl -4 -Ivk repo.percona.com
* Trying 49.12.125.205:80...
^C
[root@server1 ~]#[/CODE]
Если заголовки сервера не возвращаются и зависает на trying как выше - блокировка есть.
Аналогично с wget, коннект весит:
[CODE][root@server1 ~]# wget -4 repo.percona.com
--2024-12-22 13:40:51-- http://repo.percona.com/
Resolving repo.percona.com (repo.percona.com)... 49.12.125.205
Connecting to repo.percona.com (repo.percona.com)|49.12.125.205|:80... ^C
[root@server1 ~]#[/CODE]
[B]Решение[/B]
На данный момент есть два решения проблемы:
- использовать зеркало на Яндексе
- использовать зеркало расположенное в США
[B]Зеркало на Яндексе[/B]
У Яндекса есть зеркало репы percona, живет оно тут: [URL=https://ftp.yandex.ru/mirrors/percona/]https://ftp.yandex.ru/mirrors/percona/[/URL].
Чтоб исправить ситуацию переключаем репы с [URL=http://repo.percona.com/]http://repo.percona.com/[/URL] на зеркало [URL=https://ftp.yandex.ru/mirrors/percona/]https://ftp.yandex.ru/mirrors/percona/[/URL].
Выбор решения ниже зависит от вашего пути:
1) установка машины sh скриптом на чистую ОС, где есть блокировка реп percona
2) исправление для уже имеющихся машин с блокировкой реп percona
[B]Решение 1 - планируется установка машины sh скриптом на чистую ОС[/B]
План действий:
- обновляем чистую ОС, её пакеты - dnf clean all && dnf update -y
- выполняем диагностику (см выше)
- запускаем скрипт percona_from_yandex.sh который:
-- установит wget
-- добавит gpg ключики percona в вашу ОС
-- установит пакет percona-release в тихом режиме, чтобы он был в ОС
-- добавит репы для percona, разместив percona-***.repo файлы в /etc/yum.repos.d/
-- во всех урлах реп использует зеркало Яндекса
Работа скрипта это аналог того, что происходит при работе bitrix-env-9.sh при добавление реп percona, команды по шагам.
Экшен:
- создаем скрипт: touch percona_from_yandex.sh && chmod +x percona_from_yandex.sh
- добавляем содержимое: mcedit percona_from_yandex.sh
[CODE]#!/usr/bin/bash
#
echo "Install wget"
dnf install -y wget > /dev/null 2>&1
#
echo "Add gpg keys"
wget https://ftp.yandex.ru/mirrors/percona/yum/PERCONA-PACKAGING-KEY -O /etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY > /dev/null 2>&1
wget https://ftp.yandex.ru/mirrors/percona/yum/RPM-GPG-KEY-Percona -O /etc/pki/rpm-gpg/RPM-GPG-KEY-Percona > /dev/null 2>&1
#
echo "Pseudo install percona-release package"
wget https://ftp.yandex.ru/mirrors/percona/yum/percona-release-latest.noarch.rpm -O /tmp/percona-release-latest.noarch.rpm > /dev/null 2>&1
rpm -Uvh --nodeps --noscripts /tmp/percona-release-latest.noarch.rpm > /dev/null 2>&1
rm -f /tmp/percona-release-latest.noarch.rpm > /dev/null 2>&1
#
echo "Add percona repofiles mirrored to Yandex"
cat > /etc/yum.repos.d/percona-prel-release.repo << EOF
#
# This repo is managed by "percona-release" utility, do not edit!
#
[prel-release-noarch]
name = Percona Release release/noarch YUM repository
# baseurl = http://repo.percona.com/prel/yum/release/\$releasever/RPMS/noarch
baseurl = https://ftp.yandex.ru/mirrors/percona/prel/yum/release/\$releasever/RPMS/noarch
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY
EOF
#
cat > /etc/yum.repos.d/percona-ps-80-release.repo << EOF
#
# This repo is managed by "percona-release" utility, do not edit!
#
[ps-80-release-x86_64]
name = Percona Server for MySQL 8.0 release/x86_64 YUM repository
#baseurl = http://repo.percona.com/ps-80/yum/release/\$releasever/RPMS/x86_64
baseurl = https://ftp.yandex.ru/mirrors/percona/ps-80/yum/release/\$releasever/RPMS/x86_64
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY
[ps-80-release-sources]
name = Percona Server for MySQL 8.0 release/sources YUM repository
#baseurl = http://repo.percona.com/ps-80/yum/release/\$releasever/SRPMS
baseurl = https://ftp.yandex.ru/mirrors/percona/ps-80/yum/release/\$releasever/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY
EOF
#
cat > /etc/yum.repos.d/percona-telemetry-release.repo << EOF
#
# This repo is managed by "percona-release" utility, do not edit!
#
[telemetry-release-x86_64]
name = Percona Telemetry release/x86_64 YUM repository
#baseurl = http://repo.percona.com/telemetry/yum/release/\$releasever/RPMS/x86_64
baseurl = https://ftp.yandex.ru/mirrors/percona/telemetry/yum/release/\$releasever/RPMS/x86_64
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY
[telemetry-release-sources]
name = Percona Telemetry release/sources YUM repository
#baseurl = http://repo.percona.com/telemetry/yum/release/\$releasever/SRPMS
baseurl = https://ftp.yandex.ru/mirrors/percona/telemetry/yum/release/\$releasever/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY
EOF
#
cat > /etc/yum.repos.d/percona-tools-release.repo << EOF
#
# This repo is managed by "percona-release" utility, do not edit!
#
[tools-release-x86_64]
name = Percona Tools release/x86_64 YUM repository
#baseurl = http://repo.percona.com/tools/yum/release/\$releasever/RPMS/x86_64
baseurl = https://ftp.yandex.ru/mirrors/percona/tools/yum/release/\$releasever/RPMS/x86_64
enabled = 1
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY
[tools-release-sources]
name = Percona Tools release/sources YUM repository
#baseurl = http://repo.percona.com/tools/yum/release/\$releasever/SRPMS
baseurl = https://ftp.yandex.ru/mirrors/percona/tools/yum/release/\$releasever/SRPMS
enabled = 0
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY
EOF
#
echo "Clear cache"
dnf clean all > /dev/null 2>&1
echo "All done!"
#[/CODE]
- запускаем: ./percona_from_yandex.sh
- после ставим машину с помощью bitrix-env-9.sh
[B]Решение 2 - машина была установлена sh скриптом раннее или используется образ машины[/B]
План действий:
- выполняем диагностику (см выше)
- если есть блок - переключаем репы percona на зеркало Яндекса
- запускаем скрипт percona_to_yandex.sh который:
-- добавит копию файлов реп percona-***.repo в /etc/yum.repos.d/percona-***.repo.backup
-- подменит урлы в файлах реп /etc/yum.repos.d/percona-***.repo
Экшен:
- создаем скрипт: touch percona_to_yandex.sh && chmod +x percona_to_yandex.sh
- добавляем содержимое: mcedit percona_to_yandex.sh
[CODE]#!/usr/bin/bash
#
PERCONA_URL='http://repo.percona.com'
YANDEX_URL='https://ftp.yandex.ru/mirrors/percona'
#
PERCONA_PREL='/etc/yum.repos.d/percona-prel-release.repo'
PERCONA_PS80='/etc/yum.repos.d/percona-ps-80-release.repo'
PERCONA_TELEMETRY='/etc/yum.repos.d/percona-telemetry-release.repo'
PERCONA_TOOLS='/etc/yum.repos.d/percona-tools-release.repo'
#
echo "Backup percona-*.repo files"
cp -f ${PERCONA_PREL} ${PERCONA_PREL}.backup > /dev/null 2>&1
cp -f ${PERCONA_PS80} ${PERCONA_PS80}.backup > /dev/null 2>&1
cp -f ${PERCONA_TELEMETRY} ${PERCONA_TELEMETRY}.backup > /dev/null 2>&1
cp -f ${PERCONA_TOOLS} ${PERCONA_TOOLS}.backup > /dev/null 2>&1
#
echo "Replace Percona url to Yandex mirror in percona-*.repo files"
sed -i "s|${PERCONA_URL}|${YANDEX_URL}|g" ${PERCONA_PREL} > /dev/null 2>&1
sed -i "s|${PERCONA_URL}|${YANDEX_URL}|g" ${PERCONA_PS80} > /dev/null 2>&1
sed -i "s|${PERCONA_URL}|${YANDEX_URL}|g" ${PERCONA_TELEMETRY} > /dev/null 2>&1
sed -i "s|${PERCONA_URL}|${YANDEX_URL}|g" ${PERCONA_TOOLS} > /dev/null 2>&1
#
echo "Clear cache"
dnf clean all > /dev/null 2>&1
echo "All done!"
#[/CODE]
- запускаем: ./percona_to_yandex.sh
- обновляема машину, запускаем задачи и т.д.
[B]Зеркало в США[/B]
Альтернативное решение - использовать зеркало репы, расположенное в США.
Его урл us.r53.percona.com, находится в Рестоне, провайдер OVH: [URL=https://2ip.ru/info/147.135.54.159/]https://2ip.ru/info/147.135.54.159/[/URL]
[B]Решение 3.1 - планируется установка машины sh скриптом на чистую ОС[/B]
Порядок действий:
- редактируем файл: mcedit /etc/hosts
- добавляем строку
[CODE]147.135.54.159 repo.percona.com[/CODE]
- ставим машину с помощью скрипта bitrix-env-9.sh
[B]Решение 3.2 - машина была установлена sh скриптом раннее или используется образ машины[/B]
Порядок действий:
- редактируем файл: mcedit /etc/hosts
- добавляем строку
[CODE]147.135.54.159 repo.percona.com[/CODE]
- обновляема машину, запускаем задачи и т.д.