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

 

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

См. также

Проблемы на ровном месте, или рассказ о том, как у нас каждое утро стабильно подвисал dev-сервер 1С

Сервера Платформа 1С v8.3 Россия Бесплатно (free)

Меня зовут Павел Белоусов, я работаю Ведущим программистом 1С в компании OCS Distribution. Хочу поделиться историей, как мы столкнулись с постоянными зависаниями dev-сервера 1C, каким образом решили проблему и какие любопытные уроки вынесли из ситуации.

12.04.2024    2661    pbelousov    56    

19

В облако на работу: Все варианты авторизации ОС сервером 1С на базе РЕД ОС 8 в домене windows. Рецепты от Капитана

Облачные сервисы, хостинг Linux Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В публикации рассматриваются все варианты авторизации ОС сервером 1С на базе РЕД ОС 8 в домене windows. Как случаи, когда сервер 1С авторизирует веб и обычных клиентов 1С в active directory, так и когда сам сервер является клиентом, например при HTTP запросах выполняемых сервером 1С.

18.03.2024    574    capitan    0    

9

Три пингвина под окном… Точки над Ё. Обзор рабочих мест пользователя 1С, собранных на отечественных дистрибутивах linux

Облачные сервисы, хостинг Linux Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Прошлая публикация "Три пингвина под окном… Обзор рабочих мест пользователя 1С, собранных на отечественных дистрибутивах linux" набрала более 20К просмотров. В моем случае это абсолютный рекорд. Как и обещал в ней, рассказываю, как установить неподдерживаемый дистрибутив ОС у облачного провайдера.

25.02.2024    2268    capitan    0    

6

Тестовый кластер 1С на UBUNTU 23.10

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

Описан процесс создания простого кластера 1С в связке: отдельный сервер UBUNTU версия 23.10 + сервер 1С версия 8.3.23.1997 + PostgreSQL версия 15. Автор не претендует на новизну решения, но пошаговая упорядоченная инструкция позволяет стандартными методами быстро и просто создать кластер 1С на серверах Linux.

1 стартмани

08.02.2024    1598    janerev1956    7    

18

В облаке, как дома: Устраиваемся поудобнее. Рабочее место пользователя 1С на базе РЕД ОС (HTTPS и архивирование)

Linux Облачные сервисы, хостинг Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

На прошедшем вебинаре "В облаке, как дома: Как настроить рабочее место пользователя 1С на базе РЕД ОС" мы договорились, что продолжением будет установка соединения по HTTPS и архивирование. Это финальные штрихи в настройке рабочего места. Вот и оно (продолжение) или они (штрихи), прошу под кат...

29.01.2024    794    capitan    5    

6

Определение длительности аудиофайла (Linux)

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

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

1 стартмани

12.01.2024    400    0    ErAK    2    

2

Три пингвина под окном... Обзор рабочих мест пользователя 1С, собранных на отечественных дистрибутивах linux

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

На прошедшем вебинаре "В облаке, как дома: Как настроить рабочее место пользователя 1С на базе РЕД ОС" мы договорились, что продолжением будет обзор рабочих мест на других отечественных ОС. Вот и оно (продолжение) или он (обзор), прошу под кат...

25.12.2023    2172    capitan    6    

14

Интерпретатор команд (только Linux)

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

Интерпретатор команд для Linux, позволяет выполнять команды в среде Linux под правами пользователя сервера 1С. Полезно, когда необходимо выполнить команду на сервере, а доступа к командной строке нет.

1 стартмани

11.12.2023    528    3    Svb84    0    

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

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

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

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