Visitors have accessed this post 5494 times.

Linux like One-c

0
8
5494
3 августа 2020 20:14
Автор: Rebrain Me
Linux

Visitors have accessed this post 5494 times.

Автор статьи — Сергей Попов

Предистория

Мало кто из инфраструктурщиков на просторах России не сталкивался с «Великим и Ужасным» ОДИН-ЭС. Многие после этой встречи безвозвратно уходят в мир *nix, чтобы никогда больше не пересекаться с ним, и не жалеют об этом, остальным приходится устанавливать, обслуживать и поддерживать этого монстра многие годы, ибо альтернатив не много, а требования бизнеса никто не отменял.

Вот так и автору сего опуса довелось поддерживать этого «желтенького зверя».

Дано: Сервер 1С + базы (buh, zup, otraslevka, do) и все это в трех контурах (Prod, Test, Dev) на железе, в виртуалках под виндой — наверняка, картина знакомая.

План «капкан»: Отказаться от винды, серверную часть пересадить на *nix+postgres, переехать в облака на k8s, а разработчиков 1с загнать в Git (шутка, хотяяя — в каждой шутке, как говорится, есть доля правды).

Погнали

Начнем с чего-нибудь не сильно свежего, но надежного и проверенного, как камень, все-таки это тест.

Установка и базовая настройка ОС

Разворачиваем LXC контейнер CentOS 6 под гипервизором Proxmox VE 5.3-8 — centos-6-default_20161207_amd64.tar.xz

bash
yum -y update
yum -y install openssh-server openssh-clients httpd epel-release wget mc
chkconfig httpd on
chkconfig sshd on
service sshd start
getenforce
Disabled

Далее настраиваем терминальный сервер:
bash
yum -y groupinstall "X Window System" "Desktop"
yum -y install xrdp tigervnc-server
chkconfig xrdp on

Добавляем необходимые шрифты и прочие нужные утилиты:

bash
yum -y install xorg-x11-fonts-Type1 xorg-x11-fonts-truetype
yum -y install curl cabextract xorg-x11-font-utils fontconfig ImageMagick
rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm

Будем использовать русский язык? — Конечно! 1С-ники же в инглиш не умеют)

bash
touch /etc/sysconfig/i18n
LANG="ru_RU.UTF-8"
SUPPORTED="ru_RU.UTF-8:ru_RU:ru"
SYSFONT="latarcyrheb-sun16"

Настройка пользователя

Пользователь root в системе CentOS нелогинный (должен быть)! Вся работа в системе CentOS ВСЕГДА осуществляется из сеанса обычного пользователя, в т.ч. и установка/настройка системы. И только для некоторых действий каждый раз запрашиваются привилегии «суперпользователя».Поэтому для выполнения правки конфигов, установки пакетов и прочих «админских» действий — открыв консоль в сеансе обычного пользователя, сразу выполняем команду su, которая переключит текущую консоль в режим «суперпользователя».

useradd user
passwd user

Выйдите из системы, выполнив команду exit, и зайдите под только что созданным пользователем. Переключитесь на пользователя root:
su -

Добавим пользователя user в группу wheel:
usermod -a -G wheel user

Теперь необходимо сконфигурировать sudo, добавив запись, разрешающую пользователю user выполнять команды от имени root. Запускаем visudo (текстовый редактор, представляющий собой vi, но используемый только для редактирования файла настроек sudo — /etc/sudoers):
visudo

В конец файла добавим следующую строку:
user    ALL=(ALL)       ALL

Теперь, зайдя под пользователем user, можно выполнять команды с правами root, просто подставляя вперед команду sudo либо:
su    Пароль: <вводим пароль root>

Настройки сети

Первое – имя нашего сервера должно без проблем разрешаться в IP-адрес. В файле /etc/sysconfig/network проверяем значение параметра hostname (имя сервера), при необходимости его меняем. Чтобы новые параметры вступили в силу, нужно перезапустить систему.

bash
# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=1cnix
GATEWAY=10.10.0.1

В файле /etc/hosts не должно быть записей формата localhost.localdomain или относящихся к IPv6. В случае отсутствия DNS-сервера в нем должно быть прописано четкое соответствие IP-адрес сервера – FQDN имя – короткое имя. Пример правильного файла hosts:
bash
# cat /etc/hosts
127.0.0.1   localhost
10.10.0.73 1cnix.yourdomain.loc 1cnix

Второе – на файрволе не должно быть правил, запрещающих взаимодействие между собой компонентов 1С Предприятия. В большинстве случаев сервер 1С Предприятия находится в пределах локальной сети, поэтому мы вполне может отключить файрвол (хотя бы на время пусконаладки).
bash
[root@1cnix]# chkconfig iptables off
[root@1cnix]# service iptables stop
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]

Третье – отключаем SELinux. 1С Предприятие вполне может работать на CentOS 6 при использовании политики безопасности Targeted в режиме Enforcing. Ранее же на Fedora 14/15 и СentOS 5 включенный SELinux был причиной ошибки Segmentation Fault. Кроме того, плюсы от использования SELinux на высоконагруженном сервере, находящемся в пределах локальной сети, выглядят крайне туманно.

Проверяем, в каком режиме работает SELinux.

[root@1cnix]# getenforce
Enforcing

Открываем для редактирования файл /etc/sysconfig/selinux и задаем значение:
SELINUX=disabled

Перезагружаем систему.

Настраиваем источники софта (репозитории)

Включаем стандартные репозитории. Для этого в конфиге репозитария прописываем enabled=1 или устанавливаем галочки через графический интерфейс (но это не наш метод): CentOS-6 — Base CentOS-6 — Contrib CentOS-6 — Extras CentOS-6 — Plus CentOS-6 — Updates. И добавляем/подключаем дополнительные репозитории (без них очень грустно, т.к. стандартные репозитории содержат преимущественно серверный софт, причем его устаревшие, хотя и сверхотлаженные версии).

*В большинстве случаев для облегчения подключения новых репозиториев их владельцы подготовили RPM-пакеты для автоматической конфигурации — эти пакеты нужно только скачать и установить. Выбирайте пакеты правильной версии: для соответствующей версии репозитория и предназначенные для соответствующего вашему релиза Linux. При установке этого псевдопакета автоматически сгенерируются необходимые конфиги, сконфигурируется yum и т.п.*

Рекомендации:
bash
cat /etc/redhat-release to find which release of EL you are using (у меня говорит: «CentOS release 6.3» — т.е. «el6») uname -a to find your processor architecture (у меня говорит: «i686 i386») rpm -ivh package-filename to install the rpmforge-release package (also works with URLs)

RPMforge

  1. Инструкции по установке: [repoforge.org] и [wiki.centos.org]
  2. Рабочий пример установки: su -c 'rpm -Uvh [<a href="http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm">packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm</a>]'

EPEL

  1. Инструкции по установке: [fedoraproject.org]
  2. Рабочий пример установки: su -c 'rpm -Uvh [<a href="http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm">download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm</a>]'

ATrpms

  1. Инструкции по установке: [atrpms.net]
  2. Рабочий пример установки: su -c 'rpm -Uvh [<a href="http://dl.atrpms.net/all/atrpms-repo-6-5.el6.i686.rpm">dl.atrpms.net/all/atrpms-repo-6-5.el6.i686.rpm</a>]'

Главное — не нарушить функциональность базового ядра системы. Стандартные репозитории CentOS (особенно CentOS-6 — Base) составляют специально обученные люди, которые обеспечивают наличие в каждый момент времени в репозитории среза совместимых друг с другом пакетов и библиотек. (CentOS — система серверная, она установлена на самых дорогих продакшн серверах, которые работают в режиме автоапдейта. Глюк в репозитарии сломает много серверов, а значит, у админов будет много гемора и их кредит доверия к CentOS подорвется… Этого не допускают.)

Но если играться с третьими левыми дистрибутивами, то в них новые (и нестабильные) версии библиотек всегда появляются ранее — а значит, они могут быть автоматически установлены в систему при автоапдейте, породив несовместимость для сервисов ядра. Плохо!

Для того чтобы на сервер устанавливался именно самый отлаженный софт, а из дополнительных репозиториев — только софт, отсутствующий в базовых (пакеты развязываются по «зависимостям») — нужно настроить и использовать систему приоритетов: Для управления приоритетами стоит установить дополнительные плагины для yum (полезно установить все три):

  • yum-protect-packages (позволяет защитить указанные пакеты от удаления; по умолчанию защищен сам yum и его цепочка зависимости);
  • [yum-plugin-protectbase] (позволяет защитить пакеты из указанного репозитория от обновления из незащищенных репозиториев) — ЕГО ПРОЩЕ НАСТРАИВАТЬ;
  • [yum-plugin-priorities] (позволяет назначить приоритеты различным репозиториям; пакеты из репозитория с более низким значением приоритета не могут быть обновлены из репозитория с высоким значением приоритета — это другой вид защиты, более продвинутый и гибкий) — ОН ЛУЧШЕ!

Оговорюсь, что для yum есть еще много интересных плагинов, но эти самые необходимые.

Настройки репозиториев yum хранит в /etc/yum.repos.d/. Те файлы, которые можно редактировать, называются: *.repo, остальные файлы служебные — их не трогаем. Теперь нужно дописать в текстовые конфиги (как минимум для всех репозиториев с enabled=1) строки с параметрами protect=… и priority=…

Чем меньше значение priority — тем репозиторий главнее.

Рекомендую прописать следующие установки приоритетов:

bash
#== CentOS-Base.repo
[base]enabled=1protect=1priority=1
[updates]enabled=1protect=1priority=1
[extras]enabled=1protect=1priority=1
[centosplus]enabled=1protect=0priority=2
[contrib]enabled=1protect=0priority=2
#== CentOS-Media.repo
[c6-media]enabled=0
На самом деле, это локальный репозитарий на установочных дисках. В реальной работе он не нужен, т.к. используется интернет. Поэтому отключим этот репозитарий.
protect=0priority=2
#== rpmforge.repo
[rpmforge]enabled=1protect=0priority=9
[rpmforge-extras]enabled=0protect=0priority=9
[rpmforge-testing]enabled=0protect=0priority=99
#== epel.repo[epel]enabled=1protect=0priority=10
[epel-debuginfo]enabled=0protect=0priority=10
[epel-source]enabled=0protect=0priority=10
#== epel-testing.repoenabled=0
#== atrpms.repo
[atrpms]enabled=1protect=0priority=11
[atrpms-debuginfo]enabled=0protect=0priority=11
[atrpms-source]enabled=0protect=0priority=11
#== atrpms-bleeding.repoenabled=0
#== atrpms-testing.repoenabled=0

Еще рекомендую установить графическую оболочку к менеджеру пакетов Yum Extender (бинарник называется yumex) — он гораздо продвинутей стандартного GUI! И поддержку ntfs.

Настраиваем Samba-сервер

Нужно установить и настроить сервер Samba (службы «smb» и «nmb») — это поддержка протокола Microsoft NetBIOS под Linux, так называемое сетевое окружение.
yum install -y samba

Причем Samba рекомендуется поднять, даже если вы не будете предоставлять файловые шары на этом сервере для других клиентов локальной сети. Делается это, чтобы этот сервер появился в сетевом окружении у всех Windows-клиентов и других серверов сети, сканировался стандартным API, резолвил свое сетевое имя машины — значит, на него можно было ссылаться как-то типа \\MyLinuxServer. Для удобства настройте Samba так, чтобы сервер 1С был виден в вашей WORKGROUP.

Так все-таки нужен Samba-сервер для работы 1С:Предприятия или нет?

  1. Раньше, для работы 1С: Предприятие версии 8.1, Samba-сервер был строго необходим: например, MMC-оснастке «Администрирование серверов», если сервер 1С под Линукс, требовался аналог «Cлужбы доступа к файлам и принтерам Windows» – Samba. Но сейчас [админы отмечают, что поздние версии 1С: Предприятие 8.2 нормально работают и без поднятия Samba на сервере].Хотя замечу, что тогда клиентским приложениям 1С, в т.ч. оснастке администрирования серверов, приходится обращаться к серверу 1С только через IP. Либо требуется поднимать и настраивать соответствующим образом локальный DNS-сервер, для трансляции IP сервера в символическое имя компьютера.
  2. В отличие от файловой информационной базы, для размещения которой требовалась общая сетевая папка, — в клиент-серверном варианте samba-шара уже не требуется. Однако Samba-сервер остается полезным! Основное назначение Samba в клиент-серверной конфигурации — легко и просто резолвить в локальной сети символическое имя сервера в его IPшник для всех клиентских приложений 1С, без необходимости применения локального DNS-сервера — а это значительно упрощает настройку и администрирование сетей для небольших 1С-решений.
  3. Кроме того, нужно понимать, что платформа 1С: Предприятие всегда была заточена под Windows (COM, RPC, NetBIOS) и ее миграция под Linux, в кроссплатформенное решение (TCP/IP, HTTP и на собственные переносимые протоколы) началась недавно. Пока кроссплатформенные решения обладают гораздо меньшим доступным функционалом, чем при развертывании системы на платформе Windows. И разработчики 1С еще работают над переделкой сервисов платформы на кроссплатформенные протоколы (а сервисов в пакете много). 1С: Предприятие 8.х во многом ориентировано на работу в локальной сети. Поэтому есть еще масса явных и неявных использований протокола NetBIOS сервисами 1С (что может быть и не документировано, но это обычные накладки при «итеративной разработке») — вот тут мне профессиональная интуиция подсказывает, что Samba очень желательно поднять!

Для настройки Samba советую — [«Простая установка и конфигурация сервера SAMBA в CentOS»…].

Создаем и настраиваем шаровые папки так:

bash mkdir /home/samba
mkdir /home/samba/вседругие ...
chown -R samba /home/samba
chgrp -R samba /home/samba
chmod -R a+rw /home/samba

Создаем нелогинного пользователя/группу: samba/samba.
Назначаем этому пользователю домашнюю папку /home/samba.

Настройка службы Samba

Конфиги лежат в /etc/samba/ см. man smb.conf см. [smb-conf.ru/].

Важно: Кроме службы smb (основной), также следует включить и запустить службу nmb, которая отвечает за публикацию NetBIOS имени компьютера в локальной сети — так сервер станет виден в сетевом окружении:

bash chkconfig --level 2345 smb on
chkconfig --level 2345 nmb on
service smb start
service nmb start

Ставим 1С

— Ты зачем туда попер?
— Попробовать хотел…
— Что попробовать?
— Ну, перемахнуть…
— Так мост же есть!

Перед PostgreSQL необходимо установить (или убедиться, что уже установлена) библиотеку ICU — она необходима для работы PostgreSQL версии от 1С. Установить можно вручную из RPM-пакета (но не нужно). Или с помощью yum из стандартного репозитария (что лучше). Устанавливаем также пакеты, необходимые для компиляции и сборки. Firefox и LibreOffice по желанию.
bash
# yum -y install rpm-build wget glibc-devel bison flex readline-devel zlib-devel openssl-devel pam-devel gettext gcc make icu libicu libicu-devel firefox libreoffice

Качаем 2 пакета, сам сервер и addon от 1С отсюда (нужен логин и пароль). Обращаем внимание на версии! Потом копируем с помощью winscp либо другим удобным способом и распаковываем их в отдельную папку. Наш случай — /tmp/1c.

Распаковываем:
bash
cd tmp/1c
tar -xvf rpm64_8_3_13_1644.tar.gz

Установка и настройка PostgreSQL

После танцев с pgsql (10.5) поставили и настроили 9.6 от 1С:

bash yum -y install http://1c.postgrespro.ru/keys/postgrespro-1c-centos96.noarch.rpm
yum -y install postgresql-pro-1c-9.6
su postgres
/usr/pgsql-9.6/bin/initdb -D /var/lib/pgsql/9.6/data --locale=ru_RU.UTF-8
exit
service postgresql-9.6 initdb
chkconfig postgresql-9.6 on
service postgresql-9.6 status

Осторожно, грабли: во время инициализации кластера баз данных выпадает ошибка *FATAL: could not create shared memory segment… HINT: This error usually means that PostgreSQL’s request for a shared memory segment exceeded your kernel’s SHMMAX parameter. You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently 35233792 bytes), reduce PostgreSQL’s shared_buffers parameter (currently 3584) and/or its max_connections parameter (currently 104).*

Решение: Необходимо увеличить значение параметра kernel.shmmax, для этого добавляем в файл /etc/sysctl.conf строчку:

kernel.shmmax = 40000000
Затем обновляем параметры sysctl следующей командой:

bash# sysctl -p
Создаем пароль пользователю postgres, пользователь postgres является администратором баз данных по умолчанию. И в данном примере пароль будет 123654:

bash
su postgres
/usr/pgsql-9.6/bin/psql
ALTER USER postgres WITH PASSWORD '123654';
\q
Exit

Даем возможность подключаться к Postgres по сети, для этого редактируем файл pg_hba.conf
bash
/var/lib/pgsql/9.3/data/pg_hba.conf
нужно изменить строку:
host    all    all    0.0.0.0/0      ident
на
host    all    all    0.0.0.0/0      md5
для локального доступа:
host    all all 127.0.0.1/32 trust

Далее в файле /var/lib/pgsql/9.6/data/postgresql.conf изменяем настройки под наши нужды. Редактируемые настройки:
bash
shared_buffers = 512MB
temp_buffers = 16MB
work_mem = 128MB
maintenance_work_mem = 192MB
effective_cache_size = 8GB

Внимание! Подбор данных настроек производится индивидуально и зависит как от характеристик сервера, на котором будет работать сервер PostgreSQL, так и от характеристик информационных баз, которые будут обрабатываться на этом сервере. [Калькулятор]

После сохранения файла, перезапускаем сервис postgres:

bash
service postgresql-9.6 restart

Установка сервера 1С: Предприятие 64bit

Дистрибутив серверной части 1С: Предприятия 8 для Linux представлен в виде нескольких rpm-пакетов:

  • 1C_Enterprise-common — общие компоненты 1С: Предприятия 8;
  • 1C_Enterprise-server — компоненты сервера 1С: Предприятия 8;
  • 1C_Enterprise-ws — адаптер для публикации Web—сервисов 1С: Предприятия 8 на веб-сервере на основе Apache HTTP Server 2.0 или Apache HTTP Server 2.2;
  • 1C-Enterprise-crs — компоненты сервера хранилища конфигурации 1С: Предприятия 8;
  • пакеты, содержащие в названии суффикс -nls — это дополнительные национальные ресурсы для соответствующего пакета.

Пакеты 1C_Enterprise-server и 1C_Enterprise-ws не зависят друг от друга. Соответственно, они могут быть установлены на одном компьютере как вместе, так и по отдельности (т.е. сервер 1С и Web-сервер можно разнести по разным машинам, как и отделить сервер СУБД, для разгрузки сервера 1С).При установке следует учитывать следующие зависимости между пакетами — чтобы успешно установить пакет, предварительно нужно установить все пакеты, от которых он зависит, — поэтому порядок установки следующий:

bash rpm -ihv 1C_Enterprise82-common-8.2.16-368.i386.rpm
rpm -ihv 1C_Enterprise82-common-nls-8.2.16-368.i386.rpm
rpm -ihv 1C_Enterprise82-server-8.2.16-368.i386.rpm
rpm -ihv 1C_Enterprise82-server-nls-8.2.16-368.i386.rpm
rpm -ihv 1C_Enterprise82-ws-8.2.16-368.i386.rpm
rpm -ihv 1C_Enterprise82-ws-nls-8.2.16-368.i386.rpm
rpm -ihv 1C_Enterprise82-crs-8.2.16-368.i386.rpm
rpm -ihv 1C_Enterprise82-crs-nls-8.2.16-368.i386.rpm
Но прокатывает и более простой вариант:
yum localinstall *.rpm

Затем сервер следует запустить в режиме демона:
bash
/etc/rc.d/init.d/srv1cv83 stop
/opt/1C/v8.3/x86_64/ragent -daemon
/etc/rc.d/init.d/srv1cv83 restart

Все вышеперечисленные действия должны выполняться от имени пользователя root.В процессе установки компонент сервера 1C: Предприятия 8 создается пользователь операционной системы с именем usr1cv82, под учетной записью которого будут исполняться серверные процессы 1С: Предприятия 8. Высока вероятность, что сервер не запустится с первого раза, и при попытке запуска вы получите ошибку вида:

bash Failed at step EXEC spawning /etc/rc.d/init.d/srv1cv83: Exec format error

Чтобы устранить эту ошибку, необходимо в скрипте инициализации сервера указать интерпретатор (например, *shell* или *bash*), для этого добавьте в начало файла */etc/init.d/srv1cv83* строку:
bash
#!/bin/bash

В документации сервера 1С:Предприятия описана утилита config_system, которая необходима для анализа готовности системы к запуску сервера 1С, в частности, она помогает обнаружить отсутствующие необходимые пакеты для корректной работы сервера 1С. К сожалению, анализ rmp пакетов (*rmp -ql*) показал отсутствие данной утилиты в составе дистрибутива сервера 1С версии 8.3.9.1818.

Необходимость этих пакетов выяснилась опытным путем:

bash yum install fontconfig-devel
yum install ImageMagick

Настройка поддержки web-клиентов 1С

Переходим в каталог с файлами 1с /opt/1c/v8.3/x86_64 и запускаем утилиту webinst.

bash ./webinst -apache22 -wsdir basa1 -dir '/var/www/html/basa1/' -connStr
'Srvr="srv.domain.com";Ref="basa1"' -confPath /etc/httpd/conf/httpd.conf
Installation is successfully completed.
acp: /etc/httpd/conf/httpd.conf
rd: /var/www/html/basa1/
vd: /etc/httpd/conf/httpd.conf

Параметры запуска скрипта:

  • -wsdir – имя алиаса, используемого на веб-сервере для соединения с базой, впоследствии мы будем обращаться к ней, набирая в браузере http://srv.domain.com/basa1;
  • -dir – директория, где будут располагаться файлы web-интерфейса 1С (точнее говоря, один файл default.vrd);
  • -connStr – строка соединения с базой 1С предприятия, в которой Srvr – адрес сервера 1С предприятия, а Ref – имя базы;
  • -confPath – расположение конфигурационного файла web-сервера apache.

Скрипт добавит в конфигурационный файл apache следующие строчки
# Загрузка модуля 1с
LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap22.so"
.........
# 1c publication
Alias "/basa1" "/var/www/html/basa1/"
<Directory "/var/www/html/basa1/">
AllowOverride None
Options None
Order allow,deny
Allow from all
SetHandler 1c-application
ManagedApplicationDescriptor "/var/www/html/basa1/default.vrd"
</Directory>

Также необходимо исправить права доступа к файлу default.vrd:
bash
[root@srv conf]# chown apache:apache /var/www/html/basa1/default.vrd

Если вы этого не сделали, увидите в окне браузера следующую ошибку:
1C:Enterprise 8 application error:
Error in virtual resources descriptor distribution
by reason:
File access error '/var/www/html/basa1/default.vrd'

Все вышеперечисленные процедуры придется выполнить для добавления каждой публикуемой базы.

Теперь добавляем в автозагрузку и запускаем apache:

bash [root@srv ~] chkconfig httpd on
[root@srv ~] service httpd start
Starting httpd:                         [  OK  ]

Также не стоит забывать о необходимости открыть 80-ый порт для приема входящих соединений по протоколу HTTP.

Запуск web-клиента и настройка hasp

Для тестирования этот пункт можно пропустить, т.к. сервер будет работать и так с количеством подключений не более 10 (но это не точно).

Открываем в web-браузере ссылку http://адрес.сервера/имя_базы. Если все прошло успешно, появится окно загрузки, а затем запрос логина и пароля.

Что делать, если после ввода пароля появилось окно «Лицензия не найдена» или «Не обнаружен ключ защиты программы»?

Необходимо скопировать с компьютера, где установлена клиентская часть 1С, файл nethasp.ini в директорию /opt/1C/v8.3/x86_64/conf. В линуксовом варианте 1С этот файл почему-то отсутствует. Можно также создать этот файл самостоятельно:

[NH_COMMON]
NH_TCPIP = Enabled              ; Метод поиска сервера лицензий
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.232  ; Список IP-адресов серверов лицензий
NH_PORT_NUMBER = 475            ; Номер слушаемого порта
; По умолчанию 475
NH_TCPIP_METHOD = TCP           ; Протокол обмена информацией с сервером лицензий
; Я предпочитаю использовать TCP
; По умолчанию UDP

ВАЖНО: Каждый открытый в браузере веб-клиент требует наличия лицензии 1С на рабочее место, точно такой же, как и редустановлена 1С, работающей через обычное соединение.

Заключение

Вот в нашей уютной виндовой инфраструктуре и появился первый сервер 1С на Linux. Так обычно и начинается путь в сегмент 1С-HighLoad, но до этого еще далеко. Вспомним наш план — отказаться от винды, серверную часть пересадить на *nix+postgres, переехать в облака на k8s, а разработчиков 1С загнать в Git.

Наши итоги:

    • От винды отказались — ставим + (минус денюшки в бюджете для бизнеса).
    • Сервер наш бегает теперь на ядре linux, а базы живут под теплым брюшком слоника PG — ставим + (минус лицензии MSSQL).
    • Cloud, k8s и разработчики 1С остаются на сладенькое (хотя и среди 1С-ников есть очень грамотные ребята).
    • Кстати, управление базами работает и через виндовую оснастку администрирования сервера 1С.

Если зацепила тема 1с+linux+pgsql — настоятельно рекомендую найти на просторах интернета странного 1С-ника Алексея Лустина, например [тут].

От редакции

Если вам интересно посещать бесплатные онлайн-мероприятия по DevOps, Kubernetes, Docker, GitlabCI и др. и задавать вопросы в режиме реального времени, подключайтесь к каналу DevOps by REBRAIN

*Анонсы мероприятий каждую неделю

Практикумы для специалистов по инфраструктуре и разработчиков — https://rebrainme.com.
Наш Youtube-канал — https://www.youtube.com/channel/UC6uIx64IFKMVmj12gKtSgBQ.

Агентство Fevlake, проектируем и поддерживаем IT-инфраструктуры с 2012 года — https://fevlake.com.

Комментарии (3)
Введено символов из возможных
Не отвечать
lykart

Очень странное решение использовать centos 6, у которого скоро закончится поддержка.

Sergey

Классная статья, спасибо.
Тоже занимался этим, только на ubuntu16. Написал несколько ansible ролей под это дело.
А вот есть вопрос, будет ли в случае с 1с работать схема с несколькими инстансами 1с и одной БД на другом? Я понимаю, что в теории всё должно быть окей, только платформа должна быть одинаковая, а есть опыт практического использования этого?

rasdva3

Схема с несколькими инстансами 1с работать будет. Для этого собственно и придумали кластер Можно его настроить через виндовую оснастку администрирования, можно через `ras` и `rac` на linux’e

MASTER RELAXa

Очень странное руководство.
Устанавливаем пакеты 8.2, а используем демон 8.3, HASP и web так же заводим на 8.3.
Используется CentOS6, при том что уже вышла и активно обкатывается CentOS8.
Смешанные чувства от того что используется гораздо больше костылей чем описано в самой статье. К тому же на «морально» устаревшем ПО.

rasdva3

8.2 — 8.3 да есть косячок (код затесался из предыдущих экспериментов). Про centos6 vs 7 — 8 (да хоть Debian/Ubuntu) думаю особой разницы не будет. Данный материал не является «Хаутушечкой» для использования в стиле ctrl+c ctrl+v но вполне отвечает на вопросы что нужно делать в какой последовательности и с какой целью (Протестировано на реальных людях, двоих как минимум)

Yakimus

Очень познавательная статья, но не ясен момент с HASP: в этом варианте все равно в сети должен остаться сервер лицензирования 1с под виндой?

rasdva3

Сервер лицензирования может быть, но не обязательно под виндой.

serveradmin.ru

Это же все очень старое. Зачем публиковать. Centos 6? Когда уже 8-я давно в проде, а шестерка уходит с поддержки. Думал реально что-то интересное будет.

Вам также может понравится

Устанавливаем Mastodon
array(1) { [0]=> object(WP_Term)#11578 (16) { ["term_id"]=> int(6) ["name"]=> string(5) "Linux" ["slug"]=> string(5) "linux" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(6) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(28) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(6) ["category_count"]=> int(28) ["category_description"]=> string(0) "" ["cat_name"]=> string(5) "Linux" ["category_nicename"]=> string(5) "linux" ["category_parent"]=> int(0) } } Linux

Автор — Юрий Изоркин
Что такое Mastodon, и зачем он нужен
Mastodon — некоммерческая децентрализованная социальная сеть, которая предоставляет функции микроблоггинга, наподобие Twitter. Краткие сообщения, которые публикуют пользователи, здесь называются «гудками» (англ toots). Ограничением является длина поста в 500 символов, но мне хотелось бы,...

1
0
19 марта 2021
Docker – что это такое?
array(1) { [0]=> object(WP_Term)#976 (16) { ["term_id"]=> int(8) ["name"]=> string(6) "Docker" ["slug"]=> string(6) "docker" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(8) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(8) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(8) ["category_count"]=> int(8) ["category_description"]=> string(0) "" ["cat_name"]=> string(6) "Docker" ["category_nicename"]=> string(6) "docker" ["category_parent"]=> int(0) } } Docker

Если вы считаете, что докер (англ. docker – портовый рабочий) – это тот, кто грузит контейнеры, вы правы по форме, но не по содержанию. В нашем случае Docker – это действительно удобный интерфейс для работы с контейнерами. Но не только. Давайте разбираться, что это такое и с чем его едят.

Docker – это программная платформа, которая помогает...

2
0
2 октября 2020
Как мы боролись со спамом — чтобы быстро и бесплатно. И забороли
array(1) { [0]=> object(WP_Term)#11578 (16) { ["term_id"]=> int(1) ["name"]=> string(7) "Default" ["slug"]=> string(7) "default" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(1) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(1) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(1) ["category_count"]=> int(1) ["category_description"]=> string(0) "" ["cat_name"]=> string(7) "Default" ["category_nicename"]=> string(7) "default" ["category_parent"]=> int(0) } } Default

Автор - Сергей Попов

Привет, друзья. Сегодня я расскажу, как мы боролись со спамом в одной коммерческой организации. Наверняка, вы все знаете, что такое SPAM, но добавлю немного истории.

Слово «спам» имеет интересное происхождение. После Второй мировой войны в США оказалось слишком много мясных консервов от фирмы-производителя SPAM. И для...

25
0
7 декабря 2020