• +7 (495) 241-10-64 (Москва)
  • +7 (3852) 59-50-96 (Барнаул)
  • ogroup77

08.06.2020

Линукс как основной многофункциональный сервер небольшой компании. Наш опыт.

Однажды в порыве повышения лицензионности используемого софта, мы решили поставить на наш старенький сервер опен сорс линукс. Был совсем небольшой опыт работы на локальных машинах под линуксом (успешный). Продвинутого опыта работы с линуксом не было. Но в сети довольно много позитивного опыта развертки такой архитектуры и мы решились. Данная статья точно НЕ является мануалом по установке линукс, но уверен, будет неплохим дополнением.

Что нам было нужно от сервера:

1. Сервер 1С (с СУБД) для рабочих баз  + некоторое количество файловых рабочих баз
2. Веб-сервер
3. Общий каталог для отдельных файловых баз
4. Система резервного копирования
5. Работа принтеров в офисе
6. И еще нам зачем-то нужен был wine, сейчас уже не вспомню зачем.
Вводные данные:
Как вы помните из предыдущего — мы небольшая фирма- франчайзи, активных пользователей округленно 10 человек.
Характеристики сервера: Xeon E5504;ОЗУ 18 Гб; SSD Kingstone DC500R 1 Tb
Ниже представлен перечень действий которые мы совершали и то, к чему они привели, сгруппировано по функциям. Фактически это выборка из различных статей по установке линукса, которые были актуальны для нас. А также результаты и наши выводы по трудозатратам.

 

00. Совместимость ПО проверяем здесь:
https://v8.1c.ru/tekhnologii/sistemnye-trebovaniya-1s-predpriyatiya-8/

полезные статьи:
//infostart.ru/public/73972/

000. Из дистрибутивов выбран Ubuntu Desktop 18.04 по разным причинам. Сам процесс установки интереса не вызывает.

0. Собственно 1С
Тут никаких проблем особо нет — выкачиваем все дистрибутивы, устанавливаем все последовательно через графический установщик, соблюдая зависимости.
собственно в другой последовательности установить и не даст
1с устанавливается в каталог /opt/1C/v8.3/x86_64

1.  Апач
Апач устанавливается как за здрасти командой

sudo apt install apache2

Устанавливается кстати версия 2.4, работает норм.

1.1 Проблема с установкой апача — при публикации на вебсервере из конфигуратора, 1с- почемуто показывает апач 2.2, хотя нужно выбрать апач 2.4 — соответственно. Откуда там 2.2 — хз.

1.2 Проблема с использованием внешних файлов апачем — все каталоги перенесены в группу www-data, права для всех все

1.3 Доступ к ФАЙЛОВОЙ базе данных одновременно из апача и через 1с в файловом режиме — похоже неразрешимая задача, т.к. каталог должен принадлежать 2 группам одновременно.

1.4 в файле envvars
необходимо раскомментить строку
. /etc/default/locale
иначе внешние файлы через веб-клиента 1с будет называть в кривой кодировке (для файлов с кириллицей в имени).

2. Проблема со шрифтами в 1С решается

sudo apt install ttf-mscorefonts-installer

не смотря на то, что в офиц. мануалах написано — качайте вручную на sourceforge
Как вариант — выкачать по ссылке с сорсфордж, экзешники открыть архиватором и распаковать в одну папку. Выбрать оттуда только файлы шрифтов. В каталоге ~ создать каталог ./fonts и запихать все шрифты туда. Проделать это для каждого пользователя
Это точно поможет.

3. Общие нужные команды

Для работы со службами используется команда systemctl
используется для старта (start), остановки (stop), перезапуска службы (restart) , проверки состояния службы (status)

Пример:
Ребут апача

 systemctl restart apache2

запустить сервер 1С

 systemctl start srv1cv83

Проверить состояние postgresql

 systemctl status postgresql

(должно показывать active)

Имена служб
srv1cv83 — демон (служба) сервера 1С
apache2  — демон (служба) апача
postgresql —  постгре

Проверить правильность работы службы постгре (см. ниже)

netstat -na|grep tcp

Проверить работу службы сервера:

top – u usr1cv83

(должны работать службы ragent, rphost,rmngr)

Мониторинг нагрузки на железо:

htop

Мониторинг запущенных процессов (служб)

ps

Ctrl + U — скопировать в буфер текущую строку (в терминале контр Ц не работает
Ctrl + Y — вставить скопированную строку

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

 

4. Служба терминалов и графическая оболочка.

Подробная инструкция здесь: https://sevo44.ru/xrdp-terminalnyj-server-linux/
Установка xrdp — ничего необычного

 

sudo apt install xrdp

Ставим mate-core — это рабочая среда MATE Desktop (почему мате — см. ниже):

sudo apt-get install mate-core

Добавляем конфиг:

sudo echo mate-session> ~/.xsession

Если запущен файрволл — добавляем исключение, принимать подключения на порт 3389 (по-умолчанию):

sudo ufw allow 3389/tcp

Перегружаем:

sudo reboot

И пробуем пользоваться удаленным рабочим столом. Но, бывает иногда и так, что этих шагов оказывается недостаточно.

Тогда ищем файл /etc/xrdd/startwm.sh и в нем комментируем строки (вероятно, будут последними):

test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession

и вместо них добавляем другие две строчки:

   unset DBUS_SESSION_BUS_ADDRESS
exec mate-session

Заходим в /etc/xrdp/sesman.ini
Находим параметры — убивать дисконнектуных пользователей через 300 секунд (проблема нагрузки на проц скринсейвером лок-экрана)

Почему MATE:
Попробовали xfce4 — слишком унылая и непонятная для привыкших к винде людей
cinnamon — жрет 60% ЦПУ

повышение производительности граф. оболочки
A. В первую очередь необходимо осуществить переход в рамках главного меню системы: «Меню — Параметры — Окна», перейти на вкладку «Общие» открывшегося окна и убрать флажок «Включить программный композитный оконный менеджер».
B. После этого необходимо осуществить еще один переход в рамках главного меню системы: «Меню — Параметры — Mate tweak», перейти в раздел «Окна» открывшегося окна и в подразделе «Оконный менеджер» сменить значение параметра «Оконный менеджер» с «Marco + Compositing» на «Marco».
C. Далее нужно удалить Compiz. Для этого следует открыть окно терминала и ввести в него следующую команду (используйте функции копирования/вставки):

sudo apt-get remove compiz-core

D. Наиболее удобная графическая оболочка для меня выглядит следующим образом: Меню-Параметры-Внешний вид — вкл.Тема — Traditional Ok : Меню — Параметры — Mate tweak — Панель — выбрать Redmont
E. Убрать галку в настройках хранителя экрана «запускать хранитель экрана когда компьютер заблокирован»  как вариант -убивать дисконнектунтых пользователей xrdp (см. выше)

5. PostgreSQL
Мать твою, ради не бога не ставь новую версию, посмотри совместимость еще раз здесь:https://v8.1c.ru/tekhnologii/sistemnye-trebovaniya-1s-predpriyatiya-8/
херли ты начал 11 psql ставить, если рекомендуемая 10-я?

качаем дистрибутивы с portal.1с.ru и ставим 3 пакета. Доппакеты не качал, зависимости не качал. Взлетело.

Прописываем в файле /etc/postgresql/10/main/pg_hba.conf   два раза trust в нужных местах.

Обязательно зайди в «обновление программ» и отключи автообновление, иначе постгря обновится на новый релиз из репозитория и все сломается

Переходим в оболочку администрирования psql

sudo -u postgres psql

Меняем пароль:

\password

Вводим его два раза,
выходим из оболочки:

\q

пользователь postgres, пароль «1»

Общая информация:
Настроечные файлы /etc/postgresql/10/main/postgresql.conf — здесь можно посмотреть где физически хранятся файлы баз данных (параметр data_directory)

Команды работы с БД:  (теряют смысл при наличии оболочки администрирования кластера серверов, что не может не радовать)
Подключиться к серверу sql (перейти в оболочку)

sudo -u postgres psql

вывести список баз в оболочке:

\l

 

\du

— список всех пользователей и их привилегий.

удалить базу данных:

DROP DATABASE <имя базы>;

— регистр имеет значение, точка с запятой на конце нужна. НЕ ЗАПРАШИВАЕТ ПОДТВЕРЖДЕНИЕ, ТУПО УДАЛЯЕТ ВСЕ К ХЕРАМ!!!

выйти из оболочки

 \q

Ошибки.
На следующий день после установки отвалился postgre с ошибкой:

не удалось подключиться к серверу: Connection refused (0x0000274D/10061)
Он действительно работает по адресу «localhost» (127.0.0.1)
и принимает TCP-соединения (порт 5432)?

Оказалось, что 1с-ный релиз постгры обновился до следующего релиза из репозитория и отказался работать. Решение — удалить постгрю серверную часть и клиентскую. и поставить заново из deb пакетов скачанных с portal.1c.ru
Базы данных, настройки, пользователи при этом остаются на месте, никуда не удаляются.

Правильная работа постгре проверяется следующей командой:

netstat -na|grep tcp

в выводе должны быть следующие строки:

tcp        0      0 0.0.0.0:1540            0.0.0.0:*               LISTEN

tcp        0      0 0.0.0.0:1541            0.0.0.0:*               LISTEN

tcp        0      0 0.0.0.0:1560            0.0.0.0:*               LISTEN

tcp        0      0 0.0.0.0:1561            0.0.0.0:*               LISTEN

tcp        0      0 0.0.0.0:1562            0.0.0.0:*               LISTEN

tcp        0      0 0.0.0.0:1563            0.0.0.0:*               LISTEN

6. ставим winehq-stable для полноценной работы с графической оболочкой и офисом:

sudo apt install winehq-stable

не взлетает
заходим вот сюда
https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/i386/
качаем ручками для i386 и ставим сначала faudio, потом wine-stable, а потом winehq  не хочет ставиться
НЕ взлетело.

7. SAMBA
Скачан установлен по умолчанию, в
/etc/samba/samba.conf в конце дописываем следующее:

[samba]
path = /srv/samba    #это путь до расшариваемой папки, меняем как нам надо
browsable = yes
witable = yes
quest ok = yes
read only = no
create mask = 0777  # важно, чтобы файлы создаваемые всеми были доступны для записи/чтения всеми

Перезапускаем самбу.
Не заработало. Постоянные конфликты пользователей. файловая база в шаре не запускается от двух пользователей одновременно.

Дальнейшее администрирование — через webmin!!!!

Добавляю всех пользователей в одну группу. Делаю ее основной для каждого пользователя. В настройках самбы шары — эту же группу вставляем в Force Unix group
Теперь медленно вкуриваем мануал и понимаем суть написанного:
При работе под управлением ОС Linux, система «1С:Предприятие» создает файлы с явно выданными разрешениями 0660 (привилегия чтение/запись для владельца файла и группы владельца) (С) https://its.1c.ru/db/v8317doc#bookmark:adm:TI000000061

Теперь база, размещенная в шаре доступна каждому из пользователей.

На самом деле, шара на линухе — это адский ад. Ключевая проблема — нет наследуемости прав. Шара просто теряет свойства шары, если ты не можешь поделиться каталогом без плясок с бубном (я знаю про umask, но это тоже пляски с бубном, и 1с не рекомендует использовать)

8. Администрирование кластера серверов 1С

В идеальном мире:
Запуск службы админ кластера:

 /opt/1C/v8.3/i386/ras --daemon cluster

Запуск программы работы с кластером:

/opt/1C/v8.3/i386/rac cluster list

В моем случае: демон ras не запускается. Для его запуска идем по адресу https://forum.infostart.ru/forum86/topic236353/, читаем коммент №3 скачиваем скрипт, делаем его исполняемым.
1. положить в /etc/init.d/
2. выполнить systemctl daemon-reload
3. запустить собственно службу: /etc/init.d/ras1c start
мне помогло по-другому: systemctl start ras1c, причем после перезагрузки сервера
проверяем что служба ras1c работает:
systemctl status ras1c
видим актив — значит все хорошо.
Веселимся с этим всем, и понимаем что ну его в пень дырявый такое администрирование.

!!! Устанавливаем под виндой консоль mmc
Сначала под администратором(!) запускаем «Регистрация утилиты администрирования серверов 1С Предприятия»
Потом запускаем «администрирование кластера серверов».
Подключаемся к нашему серверу и получаем нормальный интерфейс администрирования кластера серверов.

Установили webmins.
webmins работает по ip адресу сервера на 10000 порту. В нашем случае это  //192.168.88.111:10000
Управление пользователями — здесь удобнее, настройка самбы и постгры — тоже удобнее, чем из терминала.

9. БЭКАПЫ — штатная программа pgdump, чуть позже настроить по инструкции например здесь: //infostart.ru/public/73972/ Спойлер — так и не настроили.

10. ПРИНТЕРЫ
10.1 Принтеры не пробрасываются через rdp. Более того, чтобы пробрасывались диски, необходимо УБРАТЬ галку «принтеры» в настройках Rdp (это для клиента на windows)
10.2 Подключение принтера usb в сети.

Не взлетело.
sudo apt install pyton-smbc
sudo apt install pyton3-smbc

Edit «/etc/cups/cupsd.conf»

Change:
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>

To:
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
AuthType None
# AuthType Default
# Require user @SYSTEM
Order deny,allow
</Limit>

Работа с принтерами осуществляется через веб-интерфейс
\\localhost:631

Для полного счастья в /etc/cups/printers.conf нужно сделать
AuthInfoRequired none
Результат — Ноль без палочки.

11. Лицензирование
Качаем хасп драйвер https://sentinelcustomer.gemalto.com/sentineldownloads/?s=&c=End+User&p=Sentinel+LDK&o=Linux&t=all&l=all#
подробности тут: http://renbuar.blogspot.com/2018/08/ubuntu-1804-hasp.html
Результат — неясен, требуется отключить эмуляторы
Драйвера поставить слету не удалось. Не видит серверный ключ, не умеет раздавать.

Вывод. Через 2 месяца такой развлекухи, снесли линукс к едреней фене, и поставили винду.  Пара-пара-пам. Фьють!

 

При этом вполне можно на линуксе поднимать однозадачные сервера (напр только для АТС, только для сервера 1С, только для веб-сервера итд) без общего доступа и без RDP. Это удобно, относительно быстро и надежно. Многофункциональный сервер на линуксе без богатого опыта администрирования — это зло и потеря времени.

Денис Шевчук