Окружение сервера 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.

 

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

См. также

Рестарт сервера 1С с очисткой сеансовых данных на Linux посредством systemd

Linux Платформа 1С v8.3 Абонемент ($m)

Сказ о том, как сделать "кошерный" перезапуск сервера 1С, работающего на платформе GNU/Linux, с очисткой сеансовых данных посредством systemd

1 стартмани

12.09.2023    1997    0    Sloth    5    

18

Запуск сервера хранилища конфигураций и сервера удаленного управления на Linux, посредством systemd

Linux Сервера Платформа 1С v8.3 Абонемент ($m)

Сказ о том, как сделать "кошерный" запуск серверов хранилища конфигураций (вдруг еще кто-то до сих пор пользуется) и удаленного администрирования под GNU/Linux с использованием systemd

1 стартмани

07.09.2023    2954    Sloth    0    

19

Перенаправление вывода журнала регистрации

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

Экспериментируем с реализацией драйвера текстового устройства под Linux для перенаправления вывода журнала регистрации.

07.08.2023    690    Lars Ulrich    1    

16

Первый день архитектора 1С на новой работе

Мониторинг Сервера Администрирование СУБД Бесплатно (free)

Как быстро познакомиться с системой на новой работе или если вас пригласили провести аудит контура на 1С? О том, какие инструменты использовать для быстрой проверки настроек сервера 1С, сервера MS SQL и общей оценки инфраструктуры на производительность, на конференции Infostart Event 2021 Post-Apocalypse рассказал архитектор 1С Юрий Былинкин.

01.06.2023    9020    ardn    18    

71

Переход с 1С:Шины 2.1.1 на 3.1.1 под Ubuntu [Квест]

Linux Администрирование СУБД Бесплатно (free)

О том, как переход с 2.1.1 на 3.1.1 оказался нелегким из-за соблюдения рекомендаций.

24.05.2023    1761    dsdred    0    

13

Путь самурая. Ставим локальный Сервер взаимодействия

Сервера Администрирование веб-серверов Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подробная пошаговая инструкция (как делал я) установки Сервера взаимодействия версия 22.0.26 на Windows Server 2022. Установка собственного объектного хранилище с помощью системы MinIO (https://min.io/). Настройка Сервера взаимодействия для обмена файлами в сообщениях.

1 стартмани

07.04.2023    6915    VPanin56    20    

62

Midnight Commander, установленный с Entware, не выполняет команды и не запускает файлы

Администрирование веб-серверов Linux Бесплатно (free)

Столкнулся с проблемой, установил на роутер Midnigt Commander с репозитория Entware, при попытке выполнения команды программа пишет ошибку "The shell is already running a command". Данная публикация описывает способ решения этой проблемы.

20.03.2023    906    Eugen-S    2    

3

Быстрое конфигурирование серверов с Ansible

Администрирование веб-серверов Сервера Бесплатно (free)

Всю рутину по обновлению платформы, настройке веб-серверов и серверов хранилищ на всем парке серверов компании можно автоматизировать с помощью удобочитаемых YAML-скриптов Ansible. О том, как написать сценарии такой автоматизации, чтобы запускать их параллельно для группы серверов, на митапе «Инструменты автоматизации рутины в 1С-разработке» рассказал ведущий разработчик компании ПИК Digital Павел Комаров.

26.01.2023    3000    lopatrik    4    

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

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

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

На данный момент, выделена только одна машина под виртуализацию, хотя клиент озадачен вопросом отказоустойчивости, возможно добавят еще одну, пока обсуждение на уровне "если упадет за сколько поднимем на новом сервере и сколько по времени данных потеряем", отчасти решается репликой PG.
5. starik-2005 2870 02.03.22 11:37 Сейчас в теме
(4)
отчасти решается репликой PG
Ровно так. Фактически вопрос о том "за сколько поднимем" решается временем переноса ключа с машины А на машину Б. Ну и ECC-память на современных десктопах решает уже не в пользу серверов, т.к. даже три обычных машинки стоят меньше, чем один сервер с подобной (нет) производительностью.
6. ZhdanovR 89 31.05.22 19:53 Сейчас в теме
Спасибо за использование oneget)
7. aleksxx 70 26.02.23 10:44 Сейчас в теме
(6) А oneget работает на последних платформах для Ubuntu например?
8. malikov_pro 1260 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 1260 10.04.23 21:53 Сейчас в теме
(9) Упираетесь в тактовую частоту процессора.
По теме попугаев https://infostart.ru/1c/articles/1564573/
Оставьте свое сообщение