Окружение сервера 1С на арендованном выделенном сервере

01.06.22

Администрирование - Linux

Установка Proxmox на OVH, настройка VPN и контейнера для 1С.

Вводные

  • Арендованный выделенный сервер, в моем случае OVH, функционал по окружению аналогичен другим ведущим хостингам.
  • Нужно настроить сервер 1С с возможностью безопасно подключить пользователей

Статья является логическим продолжением моих экспериментов описанных в //infostart.ru/1c/articles/1135962/

Общее описание инфраструктуры хорошо описано в статье //infostart.ru/1c/articles/1528243/, моя специфика будет в том что окружение настраивается под одного клиента.

Статья пишется в том числе для того чтобы показать что настройка linux окружения не сильно сложнее windows окружения (при схожих требованиях, свалить все в кучу на одном экземпляре ОС и дать к нему доступ по RDP просто но имеет свои негативные последствия).

 

Установка гипервизора.

В случае OVH установку можно произвести из шаблона. Для подключения после установки системы используется SSH ключ (открытая часть RSA ключа), который добавляется в настройках хостинга (ссылка по OVH) (ссылка по Selectel)

 
 Скриншоты установки

 

Аналогичный функционал есть у selectel например.

 
 Скриншот при заказе сервера

 

Если у провайдера нет установки из шаблона, то есть возможность подключить ISO и установить систему с него (ссылка).

Обычно арендованные сервера идут с двумя дисками, которые рекомендую объединить в RAID 1, при установке с ISO можно выбрать этот вариант в окне настройки дисковой подсистемы.

 
 Скриншот окна установки

 

Установка пароля root

Аутентификация по умолчанию только по указанному ключу, поэтому подключаюсь по SSH с использованием ключа, ссылка на одну из инструкций, гуглится по "putty подключение по ключу".

Изменяю пароль через команду passwd. В данной установке допустимо подключаться по SSH с использованием пароля, это можно изменить на "только по ключу", ссылка, гуглится по "ssh отключение авторизации по паролю".

Отключать полностью root в админ панели не рекомендуется, потому что часть функций доступны только с его доступом, компенсирую ограничением по IP источника. Альтернативно можно разрешить доступ только из внутренней сети с доступом через VPN, но машина теряется при отключении виртуальной машины c VPN сервисом.

 

Подключение к админ панели

Подключение осуществляется по HTTPS, на порт 8006, т.к. сертификат SSL самоподписанный нужно подтвердить подключение в chrome. Пример адреса https://192.168.57.24:8006/

Для удобства буду использовать русский интерфейс.

 

Ограничение доступа по IP

Для уменьшения вероятности проникновения на хост гипервизора устанавливаю ограничение по IP источника. Добавляю в alias свой IP и настраиваю брандмауэр на уровне "Датацентр", более подробно по ссылке, гуглится по "proxmox firewall".

По умолчанию он выключен, весь входящий траффик блокируется.

 
 Скриншоты настройки

 

Проверить работоспособность можно отключив правило для SSH и попробовав повторно подключится.

 

Подключение NFS папки, загрузка шаблонов

В OVH для выделенного сервера выделяется место для бекапов, доступное по NFS (ссылка) в рамках сети хостинга.

 
 Скриншот настройки NFS в OVH

 

Подключаю в proxmox, выбираю вид хранения для ISO, шаблонов, бекапов.

 
 Скриншоты настройки

 

Загружаю ISO Образы, шаблоны.

 
 Скриншоты

 

Настройка сети для контейнеров.

После установки имеем один виртуальный мост, подключенный к первому сетевому интерфейсу. В [6] установленный IP обозначает через него можно подключится к админ панели (и к хосту в целом).

 

Контейнеры буду располагать в отдельном виртуальном мосту.

 
 Добавление моста

 

Для связывания LAN и WAN буду использовать шлюз OPNsense (ссылка), являющийся форком pfSense(ссылка), о настройке которого писал в статье //infostart.ru/1c/articles/1257913/. Ключевые для меня функции: GUI интерфейс и удобная настройка OVPN.

Для подключения шлюза к WAN буду использовать дополнительный IP адрес который можно перенаправлять на нужный сервер (ссылка на вариант в OVH), удобно в случае переезда на новый сервер.

Альтернативно можно настроить NAT на уровне хоста (ссылка), экономия на аренде IP но более затратно на обслуживание и при отсутствии опыта с iptables есть вероятность настроить некорректно.

 

Создаю виртуальную машину (VM) подключенную к мостам LAN и WAN. Ссылка на подробную инструкцию по установке (EN), ссылка на установку (RU).

 
 Скриншоты с настройками для текущей установки

 

Добавляю LAN интерфейс.

 
 Скриншоты 

 

Для WAN интерфейса генерирую MAC адрес для дополнительного IP и устанавливаю его в настройках интерфейса (ссылка на документацию OVH).

 
 Скриншоты

 

Настройка OPNsense производится из зоны LAN через GUI, для настройки добавляю новую VM c Linux Mint, запускаю в live режиме, поэтому из настроек VM удаляю HDD. На шлюзе уже настроен DHCP, поэтому запущенная VM получает адрес по которому может получить доступ до админ панели.

 
 Скриншот админ панели с VNC консоли

Неудобством является отсутствие буфера обмена при подключении к VM. Для переноса файла подключения к VPN использую GUI от Яндекс.Диск, можете использовать любой файлообменник.

При подключении не добавлял правило INPUT UDP 1194 в брандмауэр на уровне proxmox, только на ehjdyt OPNSense, почему так работает нужно отдельно разбираться.

После подключения по OVPN проверяю подключение к админ панели шлюза с локального ПК по доменному имени.

 
 Скриншот админ панели с локального ПК

 

Обновление Proxmox

В основе лежит debian, к нему добавлены пакеты Proxmox из дополнительных репозиториев. Нормальным состоянием для Proxmox является наличие подписки и получение обновлений из https://enterprise.proxmox.com/debian/pve, но в моей инсталляции подписки нет, поэтому нужно подключить http://download.proxmox.com/debian/pve. Подписка COMMUNITY на год на CPU сокет стоит порядка 12 тыс. руб. (ссылка)

 
 Скриншоты настроек

 

После настройки нужно получить обновления и их установить, действия в GUI соответствуют "apt update" и "apt upgrade"

 
 Скриншоты обновления

 

Обновление OPNSense

На главной странице присутствует ссылка "Нажмите, чтобы проверить наличие обновлений."

 
 Скриншот админ панели

При наличии обновлений будет окно со списком изменений и кнопкой "обновить".

 

Установка Postgres

В качестве основы буду использовать LXC контейнер с Ubuntu 20.04. 4ГБ ОЗУ, 4 ядра.

В параметрах DNS нужно указать локальный DNS, потому что по умолчанию PVE устанавливает DNS хоста.

 
 Скрипт установки

 

Обычно проверяю подключение через DBeaver Community, https://dbeaver.io/

Перенос stats_temp_directory в ОЗУ

 
 Скрипт

 

Установка сервера 1С

В качестве основы буду использовать LXC контейнер (ссылка на описание) с Ubuntu 20.04.

Если планируется хранить файлы в томах на диске, то к контейнеру нужно будет монтировать внешние диски, для этого он должен быть привилегированным, флаг устанавливается в [3], после установки изменить проблематично. Для удобства рекомендую использовать доступ через SSH ключи [4]

 
 Скриншоты настроек

 

В параметрах DNS нужно указать локальный DNS, потому что по умолчанию PVE устанавливает DNS хоста.

После запуска контейнера подключаюсь с локального ПК к srv1c.{domain}.lan по SSH, работает регистрация в DNS записей DHCP.

Использовать буду 8.3.18, т.к. в ней инсталлятор из deb пакетов, для платформ выше рабочих скриптов не встречал. Для скачивания дистрибутива использую OneGet (ссылка)

 
 Скрипт установки

 

 
 Скрипт установки 8.3.20

 

Проверяю работоспособность с локального ПК через консоль кластера, создаю базу. Загружаю тест TCP-A от Гилева.

 
 Результат теста

 

Резервное копирование контейнеров

Резервные копи делаются средствами proxmox, возможно запускать вручную и настраивать расписание. Копии делаются как на лету так и с остановкой контейнера. На данный момент для LXC контейнера у меня работают копии только с остановкой, возможно коллеги в комментариях подскажут как настроить чтобы работало на лету, для VM работает на лету. Ссылка на более подробное описание (RU), ссылка на документацию (EN).

 
 Скриншоты ручного бекапа

 

Настройка бекапов по расписанию

 
 Скриншоты настройки расписания

 

Отправка уведомлений на email осуществляется через postfix (ссылка), краткая инструкция по настройке ссылка.

 

LXC контейнеры для Docker контейнеров

Часть программного обеспечения уже поставляется в виде docker контейнеров, под них имеет смысл разворачивать контейнер с Alpine Linux (ссылка), шаблон Ubuntu 200+ МБ, Alpine 3.5 МБ, установка Docker (ссылка) чуть проще чем на Ubuntu (ссылка), пример с разворачиванием PlantUML (ссылка)

apk update

apk add docker docker-compose
rc-update add docker default
/etc/init.d/docker start

#Запуск контейнера
docker run -d --restart=always -p 8080:8080 plantuml/plantuml-server:jetty

 

Итоги:

В результате собрано окружение в котором можно разворачивать контейнеры и VM под текущие задачи. Доступ к ним прикрыт VPN, при необходимости можно сделать проброс портов с помощью шлюза OPNSense.

 

Благодарю за внимание.

См. также

Linux Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Задача разработки перед выполнением проходит пять стадий принятия: отрицание, гнев, поиск в интернете, депрессия и чтение документации. Некоторым темы, затронутые в публикации, будут знакомы, некоторым покажутся банальными, но, надеюсь, некоторым они сэкономят немного времени и нервов. По сути это шпаргалка самому себе по тем вещам, которые потребовали более часа поисков.

23.12.2024    2136    capitan    7    

15

Linux Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Александр Кириллов, руководитель группы разработки компании «ИТ-Экспертиза», на конференции INFOSTART TECH EVENT 2024 выступил с докладом на тему «Как найти и устранить платформеннозависимый код менее, чем за 5 лет». Материал получился интересным и объемным, поэтому мы решили сделать на базе выступления Александра цикл статей. В первой части начнем с особенностей работы информационных систем 1С под управлением ОС Linux.

06.12.2024    1453    it-expertise    6    

21

Linux Системный администратор Программист Бесплатно (free)

Проект перевода 10+ систем 1С на 2000+ пользователей в Авито завершен успешно, преодолев технические трудности и «черных лебедей» в виде неопределенности, демотивации, потерь производительности и нереалистичных требований руководства. Расскажем об опыте проекта, в котором было «очень страшно», но в итоге всё получилось.

29.11.2024    1566    kirill.skoromykin    1    

7

Linux Программист Бесплатно (free)

При многолетней эксплуатации 1С на Windows и MS SQL в базе накапливаются не самые оптимальные запросы, COM-объекты и скрипты, зависящие от ОС. Из-за этого процесс перехода на PostgreSQL и переноса сервера 1С на Linux неизбежно осложняется длительным исправлением кода и оптимизацией запросов. Расскажем о том, как с задачей такого рефакторинга справились в компании Avito.

13.11.2024    6197    klimat12    17    

28

Администрирование веб-серверов Сервера Системный администратор Программист Абонемент ($m)

WEB приложение для управления сеансами сервера 1С, имеет адаптивный web интерфейс. Возможности: удаление сеансов; завершение rphost процессов; запуск службы 1С сервера (если остановлена). Используется авторизация BasicAuth с защитой от брутфорса. Поддерживает работу по http https протоколам.

1 стартмани

08.11.2024    827    12    gortrex    2    

3

Облачные сервисы, хостинг Linux Тестирование QA Сервера Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Завершающая публикация цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием, отказоустойчивостью и прочая, прочая... В этой статье мы определяемся с быстродействием системы, проводим нагрузочное тестирование и отпускаем ее в свободное плавание (зачеркнуто) выпускаем ее в продуктовый контур, где, конечно же, придется отлавливать ошибки, мониторить состояние и т.п.

31.10.2024    1656    capitan    0    

0

Сервера Системный администратор Бесплатно (free)

На первый взгляд, добавление второго сервера в кластер 1С не должно вызывать проблем – все просто должно работать. Но на практике дело обстоит иначе. Несмотря на то, что все действительно работает, многие при этом сталкиваются с трудностями. Расскажем, когда нужно задуматься о втором сервере 1С в кластере, какие особенности работы второго сервиса с файлами и сервисами, и какие настройки ТНФ можно сделать для лицензий ПРОФ и КОРП.

31.10.2024    10016    a.doroshkevich    21    

71

Сервера Системный администратор Программист Бесплатно (free)

Отдельный сервер лицензирования упрощает администрирование лицензий в сложных структурах с несколькими кластерами и тысячами пользователей. Расскажем о том, как настроить резервирование лицензий для крупной компании с высокими требованиями к доступности SLA 99.98% и автоматизировать переактивацию лицензий в случае возможных сбоев.

29.10.2024    2706    jul.dolganova    8    

17
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 3096 02.03.22 10:15 Сейчас в теме
Аффтор, в консоли ты IP потер, а в адресной строке браузера - нет ))) Ну и имя сервера есть в скрипте, но потерто на картинке )))
2. malikov_pro 1326 02.03.22 10:51 Сейчас в теме
(1)
"а в адресной строке браузера" - подчистил.
"и имя сервера есть в скрипте" - malikov.lan это заглушка моя, для клиентов обычно их домен в .ru переделываю в .lan, относительно удобно.
Благодарю что внимательно прочитали статью, буду рад критике и вариантами дополнения.
3. starik-2005 3096 02.03.22 10:56 Сейчас в теме
(2)
буду рад критике и вариантами дополнения.
На мой взгляд, не раскрыта идея использования proxmox. Мне казалось, что это механизм обеспечения устойчивости кластера из трех+ машин, контролирующих друг друга. Или здесь данное использование не рассматривается?
4. malikov_pro 1326 02.03.22 11:34 Сейчас в теме
(3) "Мне казалось, что это механизм обеспечения устойчивости кластера" - для меня прежде всего это изоляция сервисов по ресурсам и варианту обслуживания + легкость разворачивания контейнеров для тестирования новых сервисов.

"устойчивости кластера из трех+ машин" - если речь о HA на уровне контейнеров, то и опыта и точки входа в эту тему для меня нет, знаю что под это нужно общее файловое хранилище, которое у OVH стоит как dedic и нужна "Private bandwidth" от хостера, чтобы самому не городить велосипед из туннелей на уровне хостов.

Собирал кластер из 3 машин, удобно распределять ресурсы, перебрасывал контейнеры через бекапы, ловил ошибки производительности по PG после переноса.

На данный момент, выделена только одна машина под виртуализацию, хотя клиент озадачен вопросом отказоустойчивости, возможно добавят еще одну, пока обсуждение на уровне "если упадет за сколько поднимем на новом сервере и сколько по времени данных потеряем", отчасти решается репликой PG.
5. starik-2005 3096 02.03.22 11:37 Сейчас в теме
(4)
отчасти решается репликой PG
Ровно так. Фактически вопрос о том "за сколько поднимем" решается временем переноса ключа с машины А на машину Б. Ну и ECC-память на современных десктопах решает уже не в пользу серверов, т.к. даже три обычных машинки стоят меньше, чем один сервер с подобной (нет) производительностью.
6. ZhdanovR 99 31.05.22 19:53 Сейчас в теме
Спасибо за использование oneget)
7. aleksxx 71 26.02.23 10:44 Сейчас в теме
(6) А oneget работает на последних платформах для Ubuntu например?
8. malikov_pro 1326 26.02.23 16:32 Сейчас в теме
(7) Думаю да, был issue по части формата запроса на скачивание, уже закрыт
https://github.com/v8platform/oneget/issues
9. sc-s 10.04.23 14:27 Сейчас в теме
Вот как можно добиться такого результат в тесте ? У меня пустой сервер 2 проца 4210R оперативки 142ГБ, raid1 на ssd samsung. Чисто для теста поставил все по инструкции, только платформу 22 и меня Гилев выдает максиму 12 попугаев. Что я делаю не так ?
10. malikov_pro 1326 10.04.23 21:53 Сейчас в теме
(9) Упираетесь в тактовую частоту процессора.
По теме попугаев https://infostart.ru/1c/articles/1564573/
Оставьте свое сообщение