Миграция PROD на новый IP¶
ARCHIVED
Это историческая одноразовая процедура миграции, выполненная в 2025 году. Учётные данные удалены из соображений безопасности.
Инструкции по смене IP адреса на сервере KM-proxy01¶
ПО ВСЕМ ВОПРОСАМ КО МНЕ @nkttlpn в телеграм
Запрашиваем новый IP у @muhamuh в телеграм
первым делом залетаем по ssh (добавлен мой ключ и ключ Михаила)
🔧 1. Изменение IP в nginx конфигурациях¶
ПОСЛЕ ЭТОГО ЛЯЖЕТ ВЕСЬ ПРОД
Обновление server_name в nginx:¶
# Подключиться к серверу
ssh root@212.70.189.60 -p 2255
# Создать бэкап nginx
docker cp nginx:/etc/nginx/conf.d/vpn.conf /tmp/vpn.conf.backup
docker cp nginx:/etc/nginx/conf.d/ura.conf /tmp/ura.conf.backup
# Обновить IP в конфигурациях
sed 's/139\.45\.205\.66/212.70.189.60/g' /tmp/vpn.conf.backup > /tmp/vpn.conf.new
sed 's/139\.45\.205\.66/212.70.189.60/g' /tmp/ura.conf.backup > /tmp/ura.conf.new
# Пересоздать nginx контейнер
docker stop nginx && docker rm nginx
docker run -d --name nginx -p 80:80 -p 443:443 -p 22:22 -p 5000-5020:5000-5020 nginx:latest nginx -g 'daemon off;'
# Восстановить конфигурации
docker cp /root/nginx-backup-20251023-013507.tar.gz nginx:/tmp/
docker exec nginx tar -xzf /tmp/nginx-backup-20251023-013507.tar.gz -C /
docker cp /tmp/vpn.conf.new nginx:/etc/nginx/conf.d/vpn.conf
docker cp /tmp/ura.conf.new nginx:/etc/nginx/conf.d/ura.conf
docker exec nginx mkdir -p /opt/nginx/logs
docker restart nginx
2. Изменение IP через netplan¶
ПОСЛЕ ЭТОГО ОТВАЛИТСЯ SSH, ДЕРЖИМ ВЕБ КОНСОЛЬ ПОД РУКОЙ
Обновление netplan конфигурации:¶
# Создать бэкап текущей конфигурации
cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.backup-$(date +%Y%m%d-%H%M%S)
# Создать новую конфигурацию
cat > /etc/netplan/00-installer-config.yaml << 'EOF'
# This is the network config written by 'subiquity'
network:
ethernets:
ens32:
dhcp4: no
addresses: [10.99.87.2/24]
nameservers:
addresses: [10.99.87.1, 8.8.8.8]
search: []
ens33:
dhcp4: no
addresses: [212.70.189.60/27]
routes:
- to: default
via: 212.70.189.1
nameservers:
addresses: [8.8.8.8]
search: []
version: 2
EOF
# Применить конфигурацию
netplan apply
3. Проверка доступности выхода в интернет в веб-консоли¶
Веб-консоль: https://cloud.avenija-vp.lv/ui/¶
Доступ к веб-консоли и серверу — см. Vaultwarden
ТАЧКА: KM-proxy01
Команды для диагностики:¶
# 1. Проверить сетевые интерфейсы
ip addr show
# 2. Проверить маршрутизацию
ip route show
# 3. Проверить доступность интернета
ping -c 3 8.8.8.8
# 4. Проверить доступность gateway
ping -c 3 212.70.189.1
# 5. Проверить что новый IP работает
ping -c 3 212.70.189.60
# 6. Проверить SSH на новом IP
ssh root@212.70.189.60 -p 2255 "echo 'New IP works'"
Если нет доступа в интернет:¶
# Восстановить старый gateway
sudo ip route add default via 139.45.205.65 dev ens35
# Проверить что интернет работает
ping -c 3 8.8.8.8
4. Если все ок и можно подключиться по ssh к новому хосту¶
Меняем DNS в GoDaddy
Запрашиваем доступ у Максима Кузьмина (@sowner111) или у Кости к аккаунту
https://account.godaddy.com/ заходим сюда
меняем все DNS Shiva VPN, которые были 139.45.205.65 на новый IP\n\nпосле этого все должно заработать
5. Откат на бэкапы¶
Откат nginx:¶
# Остановить текущий nginx
docker stop nginx && docker rm nginx
# Восстановить из бэкапа
docker run -d --name nginx -p 80:80 -p 443:443 -p 22:22 -p 5000-5020:5000-5020 nginx:latest nginx -g 'daemon off;'
docker cp /root/nginx-backup-20251023-013507.tar.gz nginx:/tmp/
docker exec nginx tar -xzf /tmp/nginx-backup-20251023-013507.tar.gz -C /
docker exec nginx mkdir -p /opt/nginx/logs
docker restart nginx
# Проверить что работает
curl -I http://139.45.205.66
Откат netplan (переключение на старый интерфейс):¶
# Восстановить старую конфигурацию
sudo cp /etc/netplan/00-installer-config.yaml.backup /etc/netplan/00-installer-config.yaml
# Или создать конфигурацию со старым IP (можно через nano или vim поменять на старый 139.45.205.66 и шлюз тоже)
cat > /etc/netplan/00-installer-config.yaml << 'EOF'
# This is the network config written by 'subiquity'
network:
ethernets:
ens32:
dhcp4: no
addresses: [10.99.87.2/24]
nameservers:
addresses: [10.99.87.1, 8.8.8.8]
search: []
ens35:
dhcp4: no
addresses: [139.45.205.66/27]
routes:
- to: default
via: 139.45.205.65
nameservers:
addresses: [8.8.8.8, 87.245.235.192]
search: []
version: 2
EOF
# Применить конфигурацию
netplan apply
# Проверить что SSH работает
ssh root@139.45.205.66 -p 2255 "echo 'Old IP works'"
Важные замечания:¶
- Всегда создавайте бэкапы перед изменениями
- Проверяйте доступность gateway перед сменой IP
- Используйте веб-консоль для критических изменений
- Тестируйте новый IP перед отключением старого
- Имейте план отката на случай проблем
Последовательность действий:¶
- Создать бэкапы (nginx + netplan)
- Обновить nginx конфигурации
- Изменить netplan конфигурацию
- Проверить доступность через веб-консоль
- Изменить DNS в GoDaddy (регистратор)
- Протестировать новый IP
- При необходимости откатиться на бэкапы