- Проверка бэкапов postgresql баз
- Установка PostgreSQL для 1С
- Установка ОС Ubuntu (серверный вариант)
- RPM-based
- Red Hat Enterprise Linux (RHEL)
- CentOS
- Альт Линукс
- DEB-dased
- Debian
- Ubuntu
- Linux Mint
- Astra Linux
- Выбираем и устанавливаем Ubuntu 18. 04 LTS
- Настраиваем временную зону
- Настраиваем локали
- Настройка сети
- Информация о руководстве
- Установка и настройка сервера 1С
- Установка серверов 1С
- Настройка серверов 1С
- Сервис Remote Administration Service (RAS)
- Сервер хранилища конфигураций
- Оптимизация параметров PostgreSQL
- Онлайн курс по Kubernetes
- Помогла статья? Подписывайся на telegram канал автора
- Ссылки
- Автор статьи
- Предприятие 8. 3 на Debian 10
- Удаленное управление GNU/Linux сервером
- Настройка PostgreSQL для работы с 1С
- Скачать КриптоПро CSP 5. 12222, 5. 12000, 5. 11944, 5. 11732, 5. 11455
- Оглавление
- Установка и настройка HASP Licence manager
- Установка PostgreSQL Pro для 1С
- Обслуживание баз 1С на сервере PostgreSQL
- История появления технологии USB over IP
- Кому это интересно и где применяется
- Бэкап баз 1С на postgresql
- Управление кластером 1С
- Создание баз 1С
- Инструкция по установке КриптоПро 4
Проверка бэкапов postgresql баз
То, что вы настроили дамп баз 1С, еще не значит, что у вас успешно работает бэкап. Дампы надо обязательно проверять. Я для этого использую еще один подобный сервер. Обычно просто клонирую виртуальную машину после того, как полностью её настрою. Тут встает вопрос лицензионности. Сервер 1С на Linux не просит на себя лицензию до какого-то числа пользователей. Точно не помню сколько их может быть, так как в проде всегда покупается лицензия. А вот клон запускается без лицензии только для проверки бэкапов. Пользователи к нему не подключаются. Не уверен, что такая схема эксплуатации допускается без приобретения лицензии, так что используйте её на свой страх и риск.
Как я уже сказал, делается копия рабочего сервера. На нём создаются те же самые базы 1С через панель администрирования. Далее мы на этот сервер забираем дампы с прода. Я это делаю с помощью rsync:
# rsync -av --progress --files-from=<(ssh root@10.20.1.30 '/usr/bin/find /var/lib/pgpro/backup -type f -mtime -1 -exec basename {} \; | egrep -v timestamp') root@10.20.1.30:/var/lib/pgpro/backup/ /data/backup/
Тут немного замороченная конструкция получилась. Смысл её в том, что нам надо забрать дампы только за последние сутки, поэтому список для копирования мы формируем на исходном сервере с помощью подключения туда по ssh. Подробно эту схему описал в отдельной заметке на канале. В моем примере timestamp это имя файла, который нам не надо копировать.
Эта команда оформляется в скрипт и регулярно запускается. Дальше работает следующий скрипт, который восстанавливает базы данных из дампов.
#!/bin/bash BASES=("buh30" "zup31") #BASES=`sudo -u postgres /usr/bin/psql -U postgres -l | grep "_buh\|_zup" | awk '{print $1}'` BACKUP_DIR="/data/backup" for i in ${BASES[@]}; do echo "`date +"%Y-%m-%d_%H-%M-%S"` Drop database ${i}" sudo -u postgres /usr/bin/dropdb -U postgres ${i} echo "`date +"%Y-%m-%d_%H-%M-%S"` Create database ${i}" sudo -u postgres /usr/bin/createdb -U postgres -T template0 ${i} echo "`date +"%Y-%m-%d_%H-%M-%S"` Start extract $i" /usr/bin/find /data/backup -type f -name *${i}* -exec /usr/bin/unpigz '{}' \; echo "`date +"%Y-%m-%d_%H-%M-%S"` End extract $i" echo "`date +"%Y-%m-%d_%H-%M-%S"` Start restore $i" sudo -u postgres /usr/bin/psql -U postgres ${i} < ${BACKUP_DIR}/`ls ${BACKUP_DIR} | grep ${i}` 1>/dev/null echo "`date +"%Y-%m-%d_%H-%M-%S"` End restore $i" echo "`date +"%Y-%m-%d_%H-%M-%S"` rm dump ${i}" /usr/bin/rm ${BACKUP_DIR}/`ls ${BACKUP_DIR} | grep ${i}` done
Для каждой базы 1C в postgresql последовательно выполняются следующие действия:
- Удаление базы – dropdb.
- Создание базы – createdb.
- Распаковка дампа – unpigz.
- Восстановление базы из дампа.
- Удаление дампа.
Я не делаю тут никаких проверок на ошибки, так как далее у меня будет автоматическая выгрузка этих баз в dt и там я уже буду смотреть, всё ли в порядке. Если вы этого не будете делать, то обязательно следите за результатами работы этого скрипта, чтобы увидеть какие-то проблемы в процессе. Если с дампами всё в порядке, то восстановление пройдет штатно и никаких ошибок не будет.
Установка PostgreSQL для 1С
Теперь дошло дело до установки и настройки сервера баз данных PostgreSQL. Сначала сверимся со списком совместимоcти версий PostgreSQL для 1С на сайте «1С»: v8.1c.ru/tekhnologii/postgrespro/ и v8.1c.ru/tekhnologii/sistemnye-trebovaniya-1s-predpriyatiya-8/. В списках совместимости самая последняя версия 12.7.1 совместимая со всеми выше указанными версиями сервера 1С, а 13 версия совместима только начиная с релиза 8.3.20.
Версия 12.7.1 протестирована «1С» на совместимость, но т. к. в пределах крупных выпусков не делается изменений, меняющих работу сервера, а исправляются только ошибки и закрываются дыры в безопасности, можно ставить и более свежую версию.
Ввиду того что компания «1С» не готовила новых выпусков сервера Postgres после 12.7.1, будем ставить версию 12.8.1 от компании Postgres Pro. Ее версии сервера postgres-1c так же, как и от компании «1С», построены на чистом коде оригинального проекта с патчами 1С.
Пройдем короткий опросник на сайте 1c.postgres.ru, и на почту придут инструкции по установке данной сборки.
Перейдем в каталог с дистрибутивами и создадим в нем каталог postgres:
cd ~/distr/
mkdir postgres
cd postgres
Далее действуем по присланной инструкции, скачиваем скрипт, которой добавит apt репозиторий и публичный ключ подписи пакетов в систему, и выполним его:
curl -o apt-repo-add.sh https://repo.postgrespro.ru/pg1c-12/keys/apt-repo-add.sh
sudo sh apt-repo-add.sh
Далее устанавливаем сам сервер:
sudo apt install postgrespro-1c-12
После установки сервер должен сам запустится, проверим это:
systemctl status postgrespro-1c-12
Далее необходимо установить пароль пользователя postgres и создать пользователя для 1С – usr1cv8:
sudo -u postgres psql
\password
Вводим 2 раза пароль для пользователя postgres:
Создаем пользователя usr1cv8:
CREATE ROLE usr1cv8 WITH LOGIN SUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION PASSWORD 'veryhardpassword';
Проверим создался ли пользователь:
\du
Также можно создать отдельные табличные пространства, которые 1С будет автоматически использовать:
- v81c_data — для данных;
- v81c_index — для индексов.
create tablespace v81c_index location <Имя папки>;
create tablespace v81c_data location <Имя папки>;
После чего выходим из утилиты psql:
\q
Установка ОС Ubuntu (серверный вариант)
Существует множество дистрибутивов ОС GNU/Linux, многие из них специализированные для каких-то конкретных задач, а есть и дистрибутивы общего назначения. С кратким описанием каждого и выбором по параметрам можно ознакомиться на сайте distrowatch.com.
Так как мы выбираем ОС для установки сервера «1С:Предприятие», то логично использовать ОС из списка поддерживаемых операционных систем (v8.1c.ru/tekhnologii/sistemnye-trebovaniya-1s-predpriyatiya-8/), а именно:
- Astra Linux:
- Common Edition, версии 1.11, 2.12.
- Special Edition, версии 1.4, 1.5, 1.6.
- CentOS 7.
- Debian, версии 8 и 9.
- Mint, версии 18 и 19.
- Red Hat Enterprise Linux 7.
- Ubuntu, версии 14.04 LTS, 16.04 LTS и 18.04 LTS.
- Альт Линукс: версии 6.0 СПТ, 7.0 СПТ, Рабочая станция 7, Рабочая станция 8, Рабочая станция К 8, Сервер 7, Сервер 8, Образование 8, Альт Альт 8 СП.
Все поддерживаемые дистрибутивы можно сразу разделить на 2 категории.
RPM-based
Red Hat Enterprise Linux (RHEL)
Коммерческий дистрибутив от компании Red Hat, для использования в продуктивной среде необходима подписка, в целях разработки существует возможность бесплатного использования.
CentOS
Ранее дистрибутив поддерживался сообществом и позиционировался как полностью бинарно совместимый с Red Hat Enterprise Linux для тех, кому не нужна корпоративная поддержка со стороны Red Hat, но, после того как CentOS ушла под крыло Red Hat, были пересмотрены цели дистрибутива, и теперь он будет развиваться как роллинг дистрибутив CentOS Stream, на базе срезов которого, будут формироваться сборки Red Hat Enterprise Linux.
Поддержка CentOS 8, вместо 10 лет, сократилась до 2,5 лет и будет прекращена 31 декабря 2021 года. Поддержку CentOS 7 сохранили до 24 июня 2024 года, т. к. фаза основной поддержки уже закончилась в 4 квартале 2020 года, а устранение критических уязвимостей уже не отнимает так много сил. На фоне таких веяний доверие к дистрибутиву было подорвано, появилось несколько дистрибутивов, заменяющих CentOS, но т. к. все они молодые, пока доверия к ним нет.
Бинарно совместим значит, что собран из точно тех же исходных кодов теми же инструментами, и, соответственно, если в каком-либо софте заявляется гарантированная работа в RHEL, то данный софт без переборки заработает и в CentOS.
Роллинг — это постоянно обновляющаяся система без выпуска дистрибутивов с замороженными версиями софта.
Альт Линукс
Пакеты rpm, но менеджер пакетов apt, более присущий дистрибутивам на базе deb пакетов.
DEB-dased
Debian
Один из старейших дистрибутивов GNU/Linux на базе deb, в большинстве случаев deb‑based дистрибутивы основаны на его пакетной базе.
Ubuntu
Дистрибутив от компании Canonical, ввиду огромного сообщества и популяризации его силами компании, наверное, самый распространенный дистрибутив GNU/Linux.
Linux Mint
Дистрибутив, основанный на базе Ubuntu, в серверной части мало чем отличается от Ubuntu, т. к. использует репозитории Ubuntu.
Astra Linux
Российская производная Debian GNU/Linux.
Выбираем и устанавливаем Ubuntu 18. 04 LTS
Мы будем использовать дистрибутив Ubuntu 18.04 LTS, потому что:
- С CentOS происходят изменения и его дальнейшая судьба не совсем ясна.
- Поддержка Debian 9 версии заканчивается в 2022 году.
- Поддержка дистрибутивов Ubuntu расширена с 5 лет до 10 лет для серверных дистрибутивов.
Дистрибутив Ubuntu можно взять на официальном сайте (releases.ubuntu.com/18.04.5/). Для этого понадобится ISO-файл (releases.ubuntu.com/18.04.5/ubuntu-18.04.5-live-server-amd64.iso) серверного образа для платформы х64 PC (AMD64). Для развертывания сервера можно использовать как платформы виртуализации так и развертывать непосредственно на железе. Для виртуализации подойдет практически любая платформа:
- Hyper-V (ru.wikipedia.org/wiki/Hyper-V),
- VmWare ESXi (www.vmware.com/ru/products/esxi-and-esx.html),
- Citrix XenServer (www.citrix.com/ru-ru/products/citrix-hypervisor/),
- Proxmox (www.proxmox.com/en/proxmox-ve),
- oVirt (www.ovirt.org),
- и другие.
Сравнение систем виртуализации может оказаться очень обширным и выходит за рамки данной статьи.
Для установки дистрибутива на физический сервер можно воспользоваться разными способами. Например, подготовить загрузочную флешку с помощью Rufus (rufus.ie), использовать мультизагрузочные флешки EasyToBoot (easy2boot.xyz) или Ventoy (www.ventoy.net). Системы виртуализации могут подключать iso образ к виртуальному CD\DVD приводу.
После запуска с загрузочного носителя нас приветствует стандартное меню установки Ubuntu Server.
Выбираем 2 пункт, т. к. будет использовано более новое ядро Linux 5.4. от Ubuntu 20.04.
Далее выбираем язык и раскладки клавиатуры системы которую будем устанавливать.
Далее раздел настройки сети. Можно сразу настроить сеть, но иногда это сразу невозможно, или сервер будет переносится потом в другую сеть, поэтому оставим настройки по умолчанию, далее после установки поменяем их.
Далее разметка диска. Рекомендуется выбрать пункт с созданием LVM (ru.wikipedia.org/wiki/LVM), что в последующем позволит более гибко управлять дисковым пространством.
Если у вас несколько дисков или аппаратных RAID (Redundant Array of Independent Disks) массивов, то можно настроить разметку диска вручную. Стоит создать отдельные разделы для /var и /home, и для /var использовать самый быстрый диск, следующий по скорости для /home и самый небольшой под корневой раздел /.
Далее создаем пользователя в системе, под которым и будем заходить на сервер. Это необходимо сделать, т. к. в Ubuntu по умолчанию root отключен, после установки можно будет создать еще пользователей.
На следующем экране поставить галку для установки сервера OpenSSH, чтобы можно было управлять сервером удаленно. Если вы про нее забыли, ничего страшного, его можно будет установить позже.
Далее предоставляется выбор установки пакетов SNAP, ни один из них нам не нужен для сервера 1С, поэтому ничего не выбираем.
Далее происходит установка системы, после установки подсветится пункт Reboot Now, его и нажимаем для загрузки в установленную систему.
После перезагрузки вводим логин и пароль и попадаем в shell свежеустановленной системы.
Если вы устанавливали систему в виртуальной машине, то скорее всего так же была установлена система cloud-init, которая предназначена для автоматической конфигурации виртуальной машины, но если вы её не используете, то проще всего ее удалить, т. к. она замедляет загрузку сервера.
sudo apt purge cloud-init
sudo rm -rf /etc/cloud/ && sudo rm -rf /var/lib/cloud/
Далее необходимо настроить временную зону, сгенерировать локали, настроить сеть, если это не было сделано во время установки. Поставить минимум необходимого софта с которым удобнее работать.
Настраиваем временную зону
Посмотреть текущие настройки временной зоны:
timedatectl show
Посмотреть список зон:
timedatectl list-timezones
Установить временную зону:
timedatectl set-timezone Europe/Moscow
Настраиваем локали
sudo dpkg-reconfigure locales
Напротив необходимых локалей ставим пробелом звездочку, после чего по tab переходим на пункт OK и сохраняем список.
Рекомендуется также добавить локаль ru_RU.CP1251, если на сервере планируется использовать программный продукт КриптоПРО для работы с электронным документооборотом из 1С:Предприятия.
После выбора локали по умолчанию и подтверждения настроек будут подготовлены выбранные локали.
Важно выбрать локаль по умолчанию ru_RU.UTF-8, т. к. это повлияет на правильную установку PostgreSql.
Настройка сети
Примеры конфигурационных файлов можно посмотреть в установленной системе в каталоге /usr/share/doc/netplan/examples. Мы будем настраивать статический ip-адрес:
Для этого удаляем предыдущую конфигурацию что бы ничего нам не мешало:
sudo rm /etc/netplan/*
Копируем пример со статической конфигурацией:
sudo cp /usr/share/doc/netplan/examples/static.yaml /etc/netplan/00-static.yaml
Узнаем название интерфейса, т. к. имя нам понадобится для правки конфигурации:
ip link
Нам нужны физические Ethernet-интерфейсы, они могут иметь название, начинающееся на en. Расшифровка префиксов обозначения интерфейсов:
- en — Ethernet,
- ib — InfiniBand,
- sl — serial line IP (slip),
- wl — wlan,
- ww — wwan,
- lo — loopback.
И исправляем пример под свою конфигурацию:
sudo nano /etc/netplan/00-static.yaml
После исправления, применяем конфигурацию:
sudo netplan try
После применения конфигурации, проверим что адрес соответствует нашим настройкам:
ip addr
После чего обновляем список пакетов и устанавливаем обновления на систему:
sudo apt update && sudo apt dist-upgrade -y
Устанавливаем софт для более удобной работы и мониторинга в реальном времени:
sudo apt install tmux mc htop iftop iotop
tmux — мультиплексор терминалов предоставляющий доступ к нескольким терминалам в рамках одного экрана, так же при отключении от экрана продолжает работать в фоновом режиме, что позволит подключится к своему сеансу при обрыве соединения или если просто необходимо временно отключиться.
mc — удобный двухпанельный менеджер файлов наподобие Norton Commander.
htop — интерактивный диспетчер процессов.
iftop — утилита для мониторинга сетевой активности.
iotop — утилита для мониторинга дисковой активности.
После чего перезагружаем сервер и переходим к следующему этапу.
Информация о руководстве
Руководство рассчитано на технических специалистов с опытом установки операционных систем семейства Windows. После изучения материалов статьи вы сможете установить серверную часть 1С в ОС GNU/Linux для эксплуатации на больших и маленьких проектах.
В руководстве описывается установка и настройка серверной системы на базе ОС GNU/Linux, а именно дистрибутива Ubuntu 18.04 с сервером 1С:Предприятия 8.3. Система включает следующие компоненты: сервер 1С, сервер СУБД PostgreSQL, менеджер лицензий платформы, сервер лицензирования СЛК, веб-сервер Apache.
Данное руководство по установке 1С в Linux рассчитано под версии:
- Ubuntu-18.04.-server-amd64.
- PostgreSQL 1C 12.8.1 от компании PostgresPro.
- Apache 2.4.
- Сервера 1С 8.3.16.1973, 8.3.17.2306, 8.3.18.1616, 8.3.19.1264.
Но также может быть адаптировано и под другие версии.
Установка и настройка сервера 1С
Сервер у нас подготовлен и мы научились к нему подключаться. Настало время установить на него сервера 1С:Предприятия.
Установка серверов 1С
Несколько серверов 1С установим непосредственно в операционную систему. Также возможно упаковать каждый дистрибутив в отдельный контейнер docker и запускать из контейнеров, но такой вариант установки будет рассмотрен в будущих статьях.
Будем устанавливать 4 платформы разных версий — последние на момент написания статьи — 8.3.16.1973, 8.3.17.2306, 8.3.18.1616, 8.3.19.1264.
Для начала скачиваем необходимые дистрибутивы с сайта «1С» (releases.1c.ru/project/Platform83) на свой компьютер. Т.к. мы используем сервер на платформе x86_64 на базе deb, то соответственно и дистрибутивы будем скачивать «Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем».
Откроем командную строку в каталоге со скачанными файлами. В нашем случае все дистрибутивы сохранены в каталог 1C-Server расположенном в папке Downloads. Копируем файлы дистрибутива на сервер командой:
scp -r ./1C-Server rarus@192.168.12.112:~/distr/
Далее подключаемся к серверу по ssh:
ssh rarus@192.168.12.112
Проверим, что файлы скопировались:
ls distr
Должен отобразиться список всех файлов, что мы скопировали. Если все нормально, приступим к установке пакетов необходимых для сервера 1С:
sudo apt install fontconfig unixodbc ttf-mscorefonts-installer libgsf-1-114
Теперь займемся дистрибутивами сервера 1С. Т. к. с 18 релиза поменялось расположение файлов сервера и клиента 1С, то стоит привести их всех к одному виду, поэтому перепакуем пакеты старых релизов 16 и 17 и приведем их по структуре к новым. Так же это даст нам возможность ставить несколько версий сервера 1С старых релизов из пакетов.
Скрипт для перепаковки:
Сохраняем данный скрипт в файл ~/distr/1c-enterprise83-server-repack.sh и делаем его исполняемым:
chmod +x ~/distr/1c-enterprise83-server-repack.sh
Переходим в каталог со скопированными дистрибутивами для их распаковки:
cd distr
Далее создаем отдельный каталог для каждой платформы и распаковываем дистрибутивы:
mkdir 8.3.16.1973
cd 8.3.16.1973
tar -xzvf ../deb64_8_3_16_1973.tar.gz
И дистрибутивы 8.3.16 и 8.3.17 перепаковываем под новый формат:
sudo ../1c-enterprise83-server-repack.sh amd64
После чего вместо старых deb пакетов в каталоге будут новые пакеты.
Сразу их и установим:
sudo dpkg -i ./*.deb
С остальными дистрибутивами поступаем так же, за исключением того, что новые релизы 18 и 19 перепаковывать не надо.
mkdir ../8.3.17.2306
cd ../8.3.17.2306
tar -xzvf ../deb64_8_3_17_2306.tar.gz
sudo ../1c-enterprise83-server-repack.sh amd64
sudo dpkg -i ./*.deb
mkdir ../8.3.18.1616
cd ../8.3.18.1616
tar -xzvf ../deb64_8_3_18_1616.tar.gz
sudo dpkg -i ./*.deb
mkdir 8.3.19.1264
cd ../8.3.19.1264
tar -xzvf ../deb64_8_3_19_1264.tar.gz
sudo dpkg -i ./*.deb
На этом установка сервера закончена, и можно переходить к настройке сервисов.
Настройка серверов 1С
Т. к. мы будем одновременно запускать несколько версий сервера 1С, то необходимо разнести сервера на разные порты, чтобы не было конфликта. По умолчанию сервер 1С использует порты 1540-1541,1560-1691.
Мы перепаковали старые дистрибутивы, поэтому будем все сервисы настраивать по новому.
Будем настраивать по следующей схеме:
- 8.3.16.1973 — порты 1540-1541,1560-1691, имя службы srv1cv83-1540;
- 8.3.17.2306 — порты 2540-2541,2560-2691, имя службы srv1cv83-2540;
- 8.3.18.1616 — порты 3540-3541,3560-3691, имя службы srv1cv83-3540;
- 8.3.19.1264 — порты 4540-4541,4560-4691, имя службы srv1cv83-4540.
Копируем init файл из каталога установленного сервиса в каталог /etc/init.d:
sudo cp /opt/1cv8/x86_64/8.3.16.1973/srv1cv83 /etc/init.d/srv1cv83-1540
И файл конфигурации в каталог /etc/default:
sudo cp /opt/1cv8/x86_64/8.3.16.1973/srv1cv83.conf /etc/default/srv1cv83-1540
После чего изменяем конфигурационный файл:
sudo nano /etc/default/srv1cv83-1540
Нужно раскомментировать и поменять значение следующих параметров:
SRV1CV8_PORT=1540
SRV1CV8_REGPORT=1541
SRV1CV8_RANGE=1560:1691
SRV1CV8_DEBUG=1
SRV1CV8_DATA=/home/usr1cv8/.1cv8/srv1cv83-1540
Чтобы системный менеджер увидел новые файлы, необходимо их перечитать:
sudo systemctl daemon-reload
Затем включить сервис и запустить его:
sudo systemctl enable srv1cv83-1540
sudo systemctl start srv1cv83-1540
И проверим статус сервера:
sudo systemctl status srv1cv83-1540
Если все нормально, то продолжаем и копируем аналогично файлы для других служб:
sudo cp /opt/1cv8/x86_64/8.3.17.2306/srv1cv83 /etc/init.d/srv1cv83-2540
sudo cp /opt/1cv8/x86_64/8.3.17.2306/srv1cv83.conf /etc/default/srv1cv83-2540
sudo cp /opt/1cv8/x86_64/8.3.18.1616/srv1cv83 /etc/init.d/srv1cv83-3540
sudo cp /opt/1cv8/x86_64/8.3.18.1616/srv1cv83.conf /etc/default/srv1cv83-3540
sudo cp /opt/1cv8/x86_64/8.3.19.1264/srv1cv83 /etc/init.d/srv1cv83-4540
sudo cp /opt/1cv8/x86_64/8.3.19.1264/srv1cv83.conf /etc/default/srv1cv83-4540
Далее будем править конфигурационные файлы для сервиса srv1cv83-2540:
sudo nano /etc/default/srv1cv83-2540
Нужно раскомментировать и поменять значение следующих параметров:
SRV1CV8_PORT=2540
SRV1CV8_REGPORT=2541
SRV1CV8_RANGE=2560:2691
SRV1CV8_DEBUG=1
SRV1CV8_DATA=/home/usr1cv8/.1cv8/srv1cv83-2540
Аналогично правим конфигурационные файлы остальных сервисов.
Приведем тут только измененные строки:
grep -v '^$\|^\s*\#' /etc/default/srv1cv83-3540
SRV1CV8_PORT=3540
SRV1CV8_REGPORT=3541
SRV1CV8_RANGE=3560:3691
SRV1CV8_DEBUG=1
SRV1CV8_DATA=/home/usr1cv8/.1cv8/srv1cv83-3540
grep -v '^$\|^\s*\#' /etc/default/srv1cv83-4540
SRV1CV8_PORT=4540
SRV1CV8_REGPORT=4541
SRV1CV8_RANGE=4560:4691
SRV1CV8_DEBUG=1
SRV1CV8_DATA=/home/usr1cv8/.1cv8/srv1cv83-4540
После опять перечитываем список сервисов, включаем и запускаем необходимые службы:
sudo systemctl daemon-reload
sudo systemctl enable srv1cv83-2540
sudo systemctl start srv1cv83-2540
sudo systemctl enable srv1cv83-3540
sudo systemctl start srv1cv83-3540
sudo systemctl enable srv1cv83-4540
sudo systemctl start srv1cv83-4540
Сервис Remote Administration Service (RAS)
Далее настроим сервисы Remote Administration Service (RAS) для каждого из созданных кластеров 1С.
Также, как и сервера 1С, распределим сервисы RAS по портам:
- 8.3.16.1973 — порт 1545, имя службы ras-srv1cv83-1540;
- 8.3.17.2306 — порт 2545, имя службы ras-srv1cv83-2540;
- 8.3.18.1616 — порт 3545, имя службы ras-srv1cv83-3540;
- 8.3.19.1264 — порт 4545, имя службы ras-srv1cv83-4540.
Компания «1С» не предоставляет init файлов для создания сервисов RAS, поэтому создадим их сами:
sudo nano /etc/systemd/system/ras-srv1cv83-1540.service
Со следующим содержимым:
[Unit]
Description=1C Remote Access Service srv1cv83-1540
After=syslog.target
After=network.target
Аналогичные файлы создаем и для оставшихся служб меняя пути к платформе и порты. Скопируем и исправим файлы служб с помошью sed:
sed -e "s/8.3.16.1973/8.3.17.2306/; s/1545/2545/; s/1540/2540/" /etc/systemd/system/ras-srv1cv83-1540.service | sudo tee /etc/systemd/system/ras-srv1cv83-2540.service
sed -e "s/8.3.16.1973/8.3.18.1616/; s/1545/3545/; s/1540/3540/" /etc/systemd/system/ras-srv1cv83-1540.service | sudo tee /etc/systemd/system/ras-srv1cv83-3540.service
sed -e "s/8.3.16.1973/8.3.19.1264/; s/1545/4545/; s/1540/4540/" /etc/systemd/system/ras-srv1cv83-1540.service | sudo tee /etc/systemd/system/ras-srv1cv83-4540.service
Далее, как уже ранее научились, перечитываем список сервисов, включаем и запускаем службы, т. к. службы однотипные и отличаются только одной цифрой, удобно для этого воспользоваться циклом:
sudo systemctl daemon-reload
for i in {1..4}; do sudo systemctl enable ras-srv1cv83-$i0; done
for i in {1..4}; do sudo systemctl start ras-srv1cv83-$i0; done
Проверяем статус запущенных служб:
for i in {1..4}; do sudo systemctl status ras-srv1cv83-$i0; done
Дальше проверим подключение к кластеру с помощью утилиты Remote Administration Client (rac):
/opt/1cv8/x86_64/8.3.16.1973/rac cluster list localhost:1545
Утилита rac не так сильно привязана к версии сервера и поэтому можно с помощью неё же и проверить и остальные кластеры:
/opt/1cv8/x86_64/8.3.16.1973/rac cluster list localhost:2545
/opt/1cv8/x86_64/8.3.16.1973/rac cluster list localhost:3545
/opt/1cv8/x86_64/8.3.16.1973/rac cluster list localhost:4545
Сервер хранилища конфигураций
Настройка сервера хранилища конфигураций не сильно отличается от настройки сервиса RAS. Юнит файл для запуска будет примерно таким же, отличаться только названием и командой запуска сервиса, но тут стоит поменять схему выбора портов для хранилищ. Тут подходим к выбору порта от версии платформ и, чтобы не пересекаться с уже запущенными сервисами, будем использовать порты выше 10000. Соответственно схема выбора порта будет 1xxxx, где xxxx — последние 4 цифры билда платформы:
- 8.3.16.1973 — порт 11973, имя службы crserver-16.1973.
- 8.3.17.2306 — порт 12306, имя службы crserver-17.2306.
- 8.3.18.1616 — порт 11616, имя службы crserver-18.1616.
- 8.3.19.1264 — порт 11264, имя службы crserver-19.1264.
Каталог с хранилищами будет один для всех, и разместим его в каталоге /var/opt/1C/crserver.
Для начала создадим каталог для хранилища:
sudo mkdir -p /var/opt/1C/crserver
И изменим владельца каталога:
sudo chown usr1cv8:grp1cv8 /var/opt/1C/crserver
Создаем Unit файл для сервиса:
sudo nano /etc/systemd/system/crserver-16.1973.service
Так же копируем Unit файлы под другие сервисы с помощью sed заменяем параметры:
sed -e "s/8.3.16.1973/8.3.17.2306/; s/11973/12306/" /etc/systemd/system/crserver-16.1973.service | sudo tee /etc/systemd/system/crserver-17.2306.service
sed -e "s/8.3.16.1973/8.3.18.1616/; s/11973/11616/" /etc/systemd/system/crserver-16.1973.service | sudo tee /etc/systemd/system/crserver-18.1616.service
sed -e "s/8.3.16.1973/8.3.19.1264/; s/11973/11264/" /etc/systemd/system/crserver-16.1973.service | sudo tee /etc/systemd/system/crserver-19.1264.service
После перечитываем списки сервисов, включаем и запускаем их:
sudo systemctl daemon-reload
for f in /etc/systemd/system/crserver-*; do sudo systemctl enable ${f##*/} ; done
for f in /etc/systemd/system/crserver-*; do sudo systemctl start ${f##*/} ; done
Так же проверяем статус запуска:
for f in /etc/systemd/system/crserver-*; do sudo systemctl status ${f##*/} ; done
На этом установка и настройка сервисов 1С закончены.
Оптимизация параметров PostgreSQL
Рекомендации «1С» по настройке postgresql можно посмотреть на сайте ИТС (its.1c.ru/db/metod8dev#content:3788:hdoc). Большая их часть уже учтена в сборке от PostgresPro, и даже проведены оптимизации под железо по памяти и количеству ядер процессора. Но не учитывается дисковая подсистема, поэтому стоит оптимизировать эти параметры: random_page_cost и effective_io_concurrency. Для этого воспользуемся сервисом pgtune.leopard.in.ua.
На странице сервиса необходимо указать параметры настраиваемой системы и сервера:
- Версии нашей СУБД = 12.
- Тип ОС = Linux.
- Количество ОЗУ.
- Количество процессоров.
- Количество подключений к базе (оптимально максимально возможное значение).
- Тип жесткого диска (HDD/SSD/NAS).
Нажать Generate и скопировать данные из правого окна в конец конфигурационного файла расположенного по адресу /var/lib/pgpro/1c-12/data/postgresql.conf:
sudo nano /var/lib/pgpro/1c-12/data/postgresql.conf
После сохранения конфигурационного файла нужно перезапустить сервер postgres командой:
sudo systemctl restart postgrespro-1c-12
Теперь можно озаботится более удобным управлением сервером БД. Хоть управление через psql может покрыть все потребности и подходит для скриптования, но зачастую визуальное представление данных проще и удобнее. Поэтому установим на сервер средство для визуальной настройки и управления postgresql — PGAdmin 4.
На сайте проекта PGAdmin (pgadmin.org/download/pgadmin-4-apt/) приведена простая инструкция по установке системы.
Скачиваем публичный ключ репозитория проекта и добавляем в доверенные ключи apt:
sudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add
Далее добавляем репозиторий проекта в менеджер пакетов apt и обновляем список доступных пакетов:
sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'
Далее устанавливаем вариант PGAdmin с WEB-интерфейсом, т. к. на сервере у нас нет графической подсистемы.
Ставить будем с небольшим отличием от оригинальной инструкции. В команду установки необходимо добавить –no-install-recommends, чтобы не ставились рекомендованные пакеты из зависимостей, а именно postgresql-client и postgresql-client-10, т. к. postgresql-client-10 будет конфликтовать с установленным у нас клиентом postgresql 12:
sudo apt --no-install-recommends install pgadmin4-web
В процессе установки по зависимостям так же будет установлен и WEB-сервер Apache.
После установки запускаем мастер настройки системы, в котором надо будет создать первую учетную запись PGAdmin и указать какой веб-сервер будет использоваться:
sudo /usr/pgadmin4/bin/setup-web.sh
Далее перейдем по указанному в мастере URL заменив только адрес 127.0.0.1 на адрес или имя сервера, в нашем случае http://192.168.12.112/pgadmin4, где авторизуемся под только что созданной учетной записью.
После входа, попадаем на главную страницу программы, где необходимо добавить обслуживаемый сервер.
Нажимаем Save, после чего сервер добавится в интерфейс.
Онлайн курс по Kubernetes
Онлайн-курс по Kubernetes – для разработчиков, администраторов, технических лидеров, которые хотят изучить современную платформу для микросервисов Kubernetes. Самый полный русскоязычный курс по очень востребованным и хорошо оплачиваемым навыкам. Курс не для новичков – нужно пройти вступительный тест.
Если вы ответите “да” хотя бы на один вопрос, то это ваш курс:
- устали тратить время на автоматизацию?
- хотите единообразные окружения?;
- хотите развиваться и использовать современные инструменты?
- небезразлична надежность инфраструктуры?
- приходится масштабировать инфраструктуру под растущие потребности бизнеса?
- хотите освободить продуктовые команды от части задач администрирования и автоматизации и сфокусировать их на развитии продукта?
Сдавайте вступительный тест по ссылке и присоединяйтесь к новому набору!.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.
Ссылки
Дистрибутивы:
- Ubuntu server 18.04.5 (releases.ubuntu.com/18.04.5/)
- Postgrepro 1C (1c.postgres.ru)
- Apache 2.4 (httpd.apache.org/download.cgi)
- Дистрибутивы 1С (releases.1c.ru/project/Platform83)
- PgAdmin (pgadmin.org)
- Сервер СЛК (prom.licencecenter.ru)
Документация:
- Документация по Ubuntu Server (help.ubuntu.ru/wiki/руководство_по_ubuntu_server)
- Документация по файлуsrv1cv83 (its.1c.ru/db/v8316doc#bookmark:adm:TI000000418)
- Документация по postgresql pro (postgrespro.ru/docs/postgresql/12/index)
- Оптимизация postgresql (pgtune.leopard.in.ua/#/)
- Документация по Apache(eng) (httpd.apache.org/docs/2.2/)
- Команды консоли Ubuntu (help.ubuntu.ru/wiki/командная_строка)
- Tmux (tmuxguide.readthedocs.io/en/latest/tmux/tmux.html#help)
- OpenSSH (man.openbsd.org/ssh)
Автор статьи
Предприятие 8. 3 на Debian 10
Начнем нашу настройку с установки сервера 1С. Для этого нам надо установить дополнительные пакеты в систему, которые находятся в разделах системного репозитория contrib и non-free. Их нужно добавить в конфиг репозиториев Debian. Для этого редактируем файл /etc/apt/sources.list и приводим его примерно к следующему виду:
deb http://mirror.yandex.ru/debian buster main contrib non-free deb-src http://mirror.yandex.ru/debian buster main contrib non-free deb http://mirror.yandex.ru/debian buster-updates main contrib non-free deb-src http://mirror.yandex.ru/debian buster-updates main contrib non-free deb http://security.debian.org/ buster/updates main contrib non-free deb-src http://security.debian.org/ buster/updates main contrib non-free
Сами адреса репозиториев у вас могут быть другие. Выполняем обновление списка пакетов:
# apt update
Теперь устанавливаем нужные для работы 1С в linux пакеты. Начнем со шрифтов mscorefonts.
# apt install ttf-mscorefonts-installer
Установка будет идти достаточно долго, так как скачивается целая куча дополнительных пакетов и файлов.
Добавляем еще несколько необходимых пакетов:
# apt install imagemagick unixodbc sudo curl
Следующий важный этап подготовки к установке сервера 1С – настройка локали. Для этого выполняем команду в терминале:
# dpkg-reconfigure locales
Нам нужно выбрать ru_RU.UTF-8 UTF-8. Так же убедитесь на всякий случай, что en_US.UTF-8 тоже выбрана. В дефолте так и должно быть, но я сталкивался с ситуациями, когда эту локаль тоже приходилось добавлять.
По умолчанию выбираем ее же – ru_RU. После того, как вы разлогинитесь из системы и зайдёте снова, у вас в консоли будет русский язык. Немного непривычно с ним работать, но придется потерпеть это неудобство.
Теперь нам необходимо скачать дистрибутив сервера с портала 1С. Для этого логинимся под действующей учетной записью на https://releases.1c.ru и скачиваем файл Технологическая платформа 1С:Предприятия (64-bit) для Linux.
Имя файла будет server64_8_3_19_1150.tar.gz. Его нужно передать на Debian сервер. Я обычно winscp для этого использую. Распаковываем архив в отдельную директорию.
# mkdir 1c-server # mv server64_8_3_19_1150.tar.gz 1c-server/ # cd 1c-server/ # tar xzvf server64_8_3_19_1150.tar.gz # rm server64_8_3_19_1150.tar.gz
Вы получите единый установщик setup-full-8.3.19.1150-x86_64.run, который содержит все пакеты для сервера 1С. Запускаем его в пакетном режиме с некоторыми параметрами:
# chmod +x setup-full-8.3.19.1150-x86_64.run # ./setup-full-8.3.19.1150-x86_64.run --mode unattended --enable-components server,ws
Полный список опций можно посмотреть в официальной документации. В данном случае я установил сам кластер серверов 1С и модуль расширения веб сервера. Не забудьте изменить версию платформы в имени файла на свою.
Теперь нам надо добавить сервер 1С в автозапуск и скопировать дефолтный конфиг. Без первого действия получите ошибку при запуске: “Failed to enable unit: Unit file srv1cv83.service does not exist.” Сделать это можно через добавление символьных ссылок в нужные места:
# ln -s /opt/1cv8/x86_64/8.3.19.1150/srv1cv83 /etc/init.d/srv1cv83 # ln -s /opt/1cv8/x86_64/8.3.19.1150/srv1cv83.conf /etc/default/srv1cv83 # update-rc.d srv1cv83 defaults # systemctl daemon-reload
Запускаем Сервер 1С на Debian:
# systemctl start srv1cv83
Проверим, все ли службы запустились:
# netstat -tulnp | grep "rphost\|ragent\|rmngr"
Всё на месте. Если у вас включен Firewall на сервере, не забудьте открыть указанные порты. Данная настройка не относится к тематики статьи, так что я ее опускаю.
На этом установка самого Сервера 1С закончена. Переходим к установке и настройке базы PostgreSQL для него.
Удаленное управление GNU/Linux сервером
Если вы ранее не работали с системами GNU/Linux, а работали только с системами Windows, то навыки традиционных способов управления системами как RDP или RSAT не подойдут для этого. Но для управления GNU/Linux-серверами есть много различных инструментов и способов.
Например, web-панель webmin (www.webmin.com), позволяющая настроить различные аспекты операционной системы и служб. Или специализированные интерфейсы от программных продуктов, а также программы управления системой в различных графических оболочках (gnome, kde, xfce и другие).
В большинстве своем все эти программы занимаются одним и тем же, а именно правкой конфигурационных файлов, что иногда бывает достаточно удобно. В случае возникновения аварий или нештатных ситуаций может не хватить предлагаемых сервисов и потребуется использование прямого редактирования. Поэтому традиционно для администрирования GNU/Linux серверов используется текстовый терминал, для удаленного подключения к нему протокол Secure Shell — ssh, а для передачи файлов протоколы scp и sftp.
В современных операционных системах Windows, а именно Windows 10 начиная с релиза 1809 и Windows Server 2019 клиент ssh уже встроен и ничего дополнительно устанавливать не нужно. На GNU/Linux машинах клиент ssh предустановлен или установить его не составляет проблемы, т. к. он содержится в стандартных репозиториях системы.
Как в Windows, так и в GNU/Linux в качестве реализации протокола используется набор программ OpenSSH, поэтому далее будет рассматриваться только данный набор программ, использование которого будет одинаковым под разными операционными системами. Для более старых версий Windows рекомендуется использовать клиент putty (www.chiark.greenend.org.uk/~sgtatham/putty/latest.html), в состав которого входят клиенты для передачи файлов pscp и psftp, аналоги программ scp и sftp из пакета OpenSSH.
Если при установке ОС вы пропустили шаг установки сервера OpenSSH, это можно сделать командой:
sudo apt install ssh
Проверим сервис:
systemctl status ssh
Если сервис не запущен или отключён, то включим его и запустим:
sudo systemctl enable ssh && systemctl start ssh
Теперь, когда разобрались с инструментами, подключимся к серверу и проверим что все работает.
На своей машине запустим терминал. В случае с Windows это может быть оболочка PowerShell или cmd, под GNU/Linux может быть любая оболочка, зачастую во многих дистрибутивах используется по умолчанию bash. Подключимся к серверу.
ssh [имя пользователя]@[имя или IP адрес узла]
При первом подключении ssh клиент выведет предупреждение о том, что отпечаток удаленного узла неизвестен и предложит добавить его в список известных узлов, набрав yes.
ssh rarus@192.168.12.112
Данный механизм предназначен для предотвращения подмены узла. Если внезапно для уже сохраненных узлов у вас появится такое предупреждение, то, возможно, кто-то пытается завладеть вашими учетными данными и стоит все перепроверить прежде, чем вводить свои пароли.
Так же и для упрощения и большей защищенности стоит использовать ключи.
Сгенерировать ключи просто, нужно запустить программу ssh-keygen:
ssh-keygen
Далее скопировать публичный ключ на сервер.
C клиента на Windows из cmd:
type %UserProfile%\.ssh\id_rsa.pub | ssh rarus@192.168.12.112 "cat > ~/.ssh/authorized_keys_tmp && umask 0177 && cat ~/.ssh/authorized_keys_tmp >> ~/.ssh/authorized_keys && rm ~/.ssh/authorized_keys_tmp"
или из PowerShell:
type env:UserProfile\.ssh\id_rsa.pub | ssh rarus@192.168.12.112 "cat > ~/.ssh/authorized_keys_tmp && umask 0177 && cat ~/.ssh/authorized_keys_tmp >> ~/.ssh/authorized_keys && rm ~/.ssh/authorized_keys_tmp"
C клиента на GNU/Linux:
ssh-copy-id rarus@192.168.12.112
После чего уже можно подключаться с использованием ключа
ssh rarus@192.168.12.112
Более подробно ознакомиться с документацией по OpenSSH можно на сайте проекта (openssh.com/manual.html).
Так же рекомендуется длительные операции запускать через мультиплексор терминалов tmux или screen. Это даст возможность оставлять запущенные программы в окне терминала и отключаться от терминала, а также при случайном обрыве соединения ваши приложения не закрываются, поэтому подключившись к серверу снова можно вернуться к своему прошлому сеансу и продолжить работу. Также tmux позволяет разделять одно окно терминала на несколько окон и рабочих областей.
Подключиться к своему прошлому сеансу можно командой tmux attach, а отключиться комбинацией клавиш ctrl+b d.
Настройка PostgreSQL для работы с 1С
Первым делом зададим пароль внутреннего пользователя postgers, под которым будет работать сервер 1С.
# sudo -u postgres /usr/bin/psql -U postgres -c "alter user postgres with password 'postgrespwd';" ALTER ROLE
Далее перенесём хранение временной статистики с жёсткого диска в память. Это немного увеличит быстродействие и сократит износ ресурса SSD диска. Эта статистика постоянно перезаписывается. Подробнее об этом я писал в своей заметке в telegram. В документации postgresql указано, что статистику без проблем можно перенести в RAM.
По умолчанию под статистику расходуется порядка 25 мегабайт дискового пространства. Я решил перенести ее на ram диск размером 512M. Занимать в памяти место будет только реально используемый объем, так что не стоит опасаться пустого расхода оперативной памяти.
Для начала создаем директорию, куда будем мапить виртуальный диск:
# mkdir /var/lib/pgsql_stats_tmp # chown postgres:postgres /var/lib/pgsql_stats_tmp
Теперь добавляем в /etc/fstab в самый конец еще одну строку (не забудьте в конце переход на новую строку поставить):
tmpfs /var/lib/pgsql_stats_tmp tmpfs size=512M,uid=postgres,gid=postgres 0 0
Монтируем диск в систему:
# mount /var/lib/pgsql_stats_tmp
Теперь идём в конфиг бд по пути /var/lib/pgpro/1c-13/data/postgresql.conf и меняем параметр:
stats_temp_directory = '/var/lib/pgsql_stats_tmp'
Перезапускаем postgresql:
# systemctl restart postgrespro-1c-13
Всё, перенесли статистику в оперативную память. В целом, больше ничего добавлять в конфигурацию PostgreSQL для её настройки работы с 1С не обязательно. Все и в таком виде будет нормально функционировать.
Скачать КриптоПро CSP 5. 12222, 5. 12000, 5. 11944, 5. 11732, 5. 11455
Поддерживаемые операционные системы: Windows 7, Windows 8, Windows 8.1, Windows 10
Версия КриптоПро | Сертификация | Поддержка ГОСТ-2012 | Примечание | Ссылка для скачивания |
---|---|---|---|---|
КриптоПро 5.0.12222 (Lilith) | Промежуточная версия | Поддерживает ГОСТ-2012 | Скачать КриптоПро 5.0 (5.0.12222 Lilith) Размер: 7,33 Мб | |
КриптоПро 5.0.12000 (Kraken) | Сертификаты соответствия СКЗИ КриптоПро CSP 5.0.1200: 1-Base: СФ/114-4064 от 20.05.2021 до 01.05.2024 2-Base: СФ/124-4065 от 20.05.2021 до 01.05.2024 3-Base: СФ/124-4066 от 20.05.2021 до 01.05.2024 | Поддерживает ГОСТ-2012 | Скачать КриптоПро 5.0 (5.0.12000 Kraken) Размер: 7,3 Мб | |
КриптоПро 5.0.11944 (Jackalope) | Версия предварительная, не сертифицирована! | Поддерживает ГОСТ-2012 | Изменилась схема лицензирования. Требуются лицензии для КриптоПро CSP 5.0 (начинаются на 50). От КриптоПро CSP 4.0 подходят только временные лицензии с датой окончания. | Скачать КриптоПро 5.0.11944 (Jackalope) Размер: 7,43 Мб |
КриптоПро 5.0.11732 (Heimdallr Update 1) | Версия предварительная, не сертифицирована! | Поддерживает ГОСТ-2012 | Изменилась схема лицензирования. Требуются лицензии для КриптоПро CSP 5.0 (начинаются на 50). От КриптоПро CSP 4.0 подходят только временные лицензии с датой окончания. | Скачать КриптоПро 5.0.11732 (Heimdallr Update 1) Размер: 7,45 Мб |
КриптоПро 5.0.11455 (Fury) | Сертификаты соответствия СКЗИ КриптоПро CSP 5.0.11455: 1-Base: СФ/114-3726 от 13.08.2019 до 13.08.2022 2-Base: СФ/124-3727 от 13.08.2019 до 13.08.2022 3-Base: СФ/124-3728 от 13.08.2019 до 13.08.2022 | Поддерживает ГОСТ-2012 | Скачать КриптоПро 5.0 (5.0.11455 Fury) Размер: 6,85 Мб |
При установке в режиме обновления предыдущей версии настройки, ключи и сертификаты сохраняются.
Оглавление
- Термины
- Установка ОС Ubuntu (серверный вариант)
- Удаленное управление GNU/Linux сервером
- Установка и настройка сервера 1С
- Установка PostgreSQL для 1С
- Оптимизация параметров PostgreSQL
- Установка драйверов HASP
- Управление кластером 1С
- Установка и настройка веб-сервера
- Установка сервера лицензирования СЛК
- Заключение
- Ссылки
Установка и настройка HASP Licence manager
Для того, чтобы компьютеры могли получать лицензии по сети от сервера, куда вставлен usb ключ, на него надо установить и запустить HASP Licence manager. Для начала вставьте ключ в сервер и проверьте, видит ли его система:
# lsusb | grep -i hasp
Вы должны увидеть устройство с именем наподобие Aladdin Knowledge Systems HASP copy protection dongle. Если его нет, то разбирайтесь с подключением и пробросом usb портов, если у вас это виртуальная машина.
Дальше идем на страницу https://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Debian/, выбираем свою версию системы и скачиваем два файла:
- haspd-modules_7.90-eter2debian_amd64.deb
- haspd_7.90-eter2debian_amd64.deb
На момент написания статьи пакетов для Debian 10 не было, но нам подойдут и для 9-й версии.
# wget https://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Debian/9/haspd-modules_7.90-eter2debian_amd64.deb # wget https://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Debian/9/haspd_7.90-eter2debian_amd64.deb
Устанавливаем пакеты haspd, но перед этим установим пару пакетов – make и libc6-i386, если они у вас отсутствуют:
# apt install make libc6-i386 # dpkg -i haspd*.deb
Запускаем службу haspd и добавляем в автозагрузку:
# systemctl start haspd # systemctl enable haspd
Проверяем, запустился ли hasp:
# netstat -tulnp | grep hasp tcp 0 0 0.0.0.0:1947 0.0.0.0:* LISTEN 2526/hasplmd udp 0 0 0.0.0.0:46563 0.0.0.0:* 2526/hasplmd udp 0 0 0.0.0.0:1947 0.0.0.0:* 2526/hasplmd udp 0 0 0.0.0.0:475 0.0.0.0:* 2517/hasplm udp 0 0 127.0.0.1:2790 0.0.0.0:* 2508/winehasp
Все в порядке. Теперь лицензии должны нормально работать, а клиенты их получать по сети.
Установка PostgreSQL Pro для 1С
Для работы с 1С в PostgreSQL необходимо внести некоторые изменения в виде патчей. Существует несколько редакций этих патчей, но наиболее известные две:
- От самой 1С.
- От компании PostgreSQL Pro.
Я не берусь судить сам, какая сборка PostgreSQL для 1С будет лучше. Я всегда использую от Postgresql Pro. Эта компания активно участвует в разработке самого движка БД, так что компетенций у нее достаточно. Есть мнение, что эти сборки лучше, чем от 1С. К тому же в последних версиях, я заметил, что эти сборки автоматически настраивают конфиг postgresql под параметры памяти и процессоров вашего сервера. Не нужно это делать потом вручную.
Загрузить PostgreSQL Pro для 1С можно по ссылке – https://1c.postgres.ru. Для этого ответьте на 3 вопроса установщика и в конце укажите вашу почту. Туда придёт инструкция по установке.
Инструкция достаточно простая. Подключаем репозитории postgresql:
# curl -o apt-repo-add.sh https://repo.postgrespro.ru/pg1c-13/keys/apt-repo-add.sh # sh apt-repo-add.sh
Устанавливаем базу данных:
# apt-get install postgrespro-1c-13
База данных запустилась автоматически, добавляем её в автозагрузку:
# systemctl enable postgrespro-1c-13
Проверьте статус сервиса postgrespro-1c-13. Он должен быть запущен.
# systemctl status postgrespro-1c-13
Далее переходим к настройке postgresql.
Обслуживание баз 1С на сервере PostgreSQL
В качестве обслуживания баз 1С на сервере PostgreSQL я предлагаю регулярно запускать следующие процедуры:
- Чистку базы данных – vacuumdb.
- Перестройку индексов – reindexdb.
Я не буду подробно расписывать для чего всё это нужно. Эта информация без проблем ищется в интернете. Сразу даю готовый скрипт для обслуживания всех баз 1С. Список формируется по аналогии со скриптом для бэкапа – либо вручную, либо по какому-то признаку.
#!/bin/bash BASES=("buh30" "zup31") #BASES=`sudo -u postgres /usr/bin/psql -U postgres -l | grep "_buh\|_zup" | awk '{print $1}'` DATA=`date +"%Y-%m-%d_%H-%M"` LOGS=/var/lib/pgpro/service_logs BACKUPDIR=/var/lib/pgpro/backup for i in ${BASES[@]}; do echo "`date +"%Y-%m-%d_%H-%M-%S"` Start vacuumdb $i" >> $LOGS/$DATA.log sudo -u postgres /usr/bin/vacuumdb --full --analyze --username postgres --dbname $i echo "`date +"%Y-%m-%d_%H-%M-%S"` End vacuumdb $i" >> $LOGS/$DATA.log echo "`date +"%Y-%m-%d_%H-%M-%S"` Start reindexdb $i" >> $LOGS/$DATA.log sudo -u postgres /usr/bin/reindexdb --username postgres --dbname $i echo "`date +"%Y-%m-%d_%H-%M-%S"` End reindexdb $i" >> $LOGS/$DATA.log echo "=========================================" >> $LOGS/$DATA.log done
Я обычно запускаю этот скрипт по ночам сразу после выполнения бэкапа. Имейте ввиду, что подобное обслуживание может занимать много времени, которое будет зависеть от размера баз и производительности сервера. Убедитесь, что с базами никто не работает в часы обслуживания. Если в будни это сложно отследить, так как могут выполнять какие-то работы программисты 1С или обслуживающий персонал, то перенесите выполнение раз в неделю в какой-то выходной день.
История появления технологии USB over IP
Сложно сказать, когда именно появилась технология проброса USB-девайсов через сеть в том виде, в каком ее используют сейчас. Вероятнее всего, с развитием возможностей программных компонентов Linux, ростом потребностей рынка и изобретательности энтузиастов.
В наши дни существуют два популярных инструмента для трассировки USB-устройств: usbip и usbip-win. Оба нацелены на совместное использование USB-устройств через IP-сеть за счет обработки USB I/O сообщений, их инкапсуляции в TCP/IP и последующей передачи между устройствами сети типа «клиент-сервер». В такой схеме устройства подключаются к серверу, и на нем же запускается необходимый демон.
На машине клиента, как правило, запускается любое приложение, которое не умеет работать с сетью, зато прекрасно справляется с USB-девайсами. Технология проброса как раз позволяет эмулировать локальное подключение USB-устройств на клиентской машине.
- usbip был разработан проектом «USB/IP» еще в 2009 году. Технология была успешной: ее добавили в сборки Linux-ветки операционных систем, и она все еще развивается. Поддержка же Windows клиента была остановлена в 2013 году на выпущенной двоичной цифровой подписи драйвера.
- usbip-win является аналогичным проектом, умеющим работать с Windows 10. Более того, он позволяет поднимать на Windows 10 не только клиентскую, но и серверную часть. Также он совместим с Linux-версией.
Кому это интересно и где применяется
Преимущества сетевого проброса USB-устройств:
- Безопасность. Возможность изолированного размещения USB-девайсов от их конечного пользователя, шифрование и контроль доступа к устройствам, защита от человеческого фактора (кражи или утраты устройства).
- Мониторинг. Использование протокола SMTP и сценариев SNTP для отслеживания состояния устройств.
- Доступность и мультитенантность. USB-устройства доступны для неограниченного числа пользователей (с возможностью создавать групповые политики и уровни доступа) без необходимости физического переключения из любой точки мира.
- Централизованное администрирование. Удобство в управлении каждым USB-устройством, подключенным в концентратор.
Недостатки:
- Работоспособность полностью зависит от стабильной работы сети.
- Высокая стоимость аппаратных решений (управляемых USB-хабов с большим количеством портов).
- Не все USB-устройства могут работать через сеть штатно по причине увеличенного времени отклика.
Бэкап баз 1С на postgresql
Без регулярного автоматического бэкапа баз 1С невозможно себе представить эксплуатацию. Так что этим вопросом надо заняться в первую очередь после настройки сервера и добавления баз. Посмотрим, какие базы postgresql у нас существуют:
# sudo -u postgres psql -U postgres -l
Я создал две тестовые базы: buh30 и zup31. Их и будем бэкапить. Я для этого предлагаю использовать обычный pg_dump, а затем дамп сразу же сжимать архиватором pigz. Его отличительная особенность в том, что он умеет жать всеми ядрами процессора, а не только одним, как, к примеру, gzip. Более подробно про pigz я рассказывал в заметке.
В самом простом случае бэкап базы данных выглядит следующим образом:
# sudo -u postgres /usr/bin/pg_dump -U postgres buh30 | pigz > /mnt/backup/buh30.sql.gz
Если посмотреть на dump, то в случае успешного создания, в начале дампа будет строка:
-- PostgreSQL database dump
а в конце:
-- PostgreSQL database dump complete
В будущем эта информация нам понадобится для мониторинга создания бэкапов и получения уведомления, если дамп не завершился корректно.
Для того, чтобы бэкапить автоматически все базы сразу я предлагаю использовать простой скрипт.
#!/bin/bash BASES=("buh30" "zup31") #BASES=`sudo -u postgres /usr/bin/psql -U postgres -l | grep "_buh\|_zup" | awk '{print $1}'` DATA=`date +"%Y-%m-%d_%H-%M"` LOGS=/var/lib/pgpro/service_logs BACKUPDIR=/var/lib/pgpro/backup for i in ${BASES[@]}; do echo "`date +"%Y-%m-%d_%H-%M-%S"` Start backup $i" >> $LOGS/$DATA.log sudo -u postgres /usr/bin/pg_dump -U postgres $i | pigz > $BACKUPDIR/$DATA-$i.sql.gz echo "`date +"%Y-%m-%d_%H-%M-%S"` End backup $i" >> $LOGS/$DATA.log done
В скрипте предложены 2 варианта указания списка баз для бэкапа:
- Последовательное перечисление.
- Бэкап всех баз, что имеют в своем названии _zup или _buh.
Я обычно ставлю некоторые метки в именах баз, чтобы потом было проще формировать списки для бэкапа. Например, все тестовые базы можно помечать в имени _test – company_buh30_test и потом исключать из списка бэкапа все базы с дополнением _test в названии. Либо просто все рабочие базы сразу именовать с приставкой _buh или _zup и по этому признаку их выводить в список.
Для работы скрипта в таком виде, не забудьте создать каталоги:
# mkdir -p /var/lib/pgpro/service_logs # mkdir -p /var/lib/pgpro/backup
И еще важно учесть, что так как в скрипте мы запускаем команды от системного пользователя postgres, необходимо, чтобы у него был доступ к скрипту, когда добавите его в планировщик.
На выходе у вас получится примерно такой список бэкапов баз 1С из postgresql.
В дальнейшем мы их будем забирать отсюда и удалять.
Управление кластером 1С
Управление кластером 1С под Linux ничем не отличается от такого же установленного на Windows, поэтому удобнее всего воспользоваться консолью mmc для Windows. Так же создавать базы можно из стандартного мастера добавления базы клиента 1С, но для правильной работы клиента, должен работать резолвинг имен. Поэтому если у вас нет DNS-сервера для разрешения имен, то для правильной работы на клиентском компьютере необходимо добавить запись в файл %WINDIR%\System32\drivers\etc\hosts в формате IPAddress HostName. После чего, можно подключаться клиентом к серверу с базами.
Но также можно управлять кластером 1С и из консоли GNU/Linux сервера с помощью утилиты Remote Administration Client (RAC). Для этой возможности мы и настраивали в 3 разделе статьи сервис RAS. Управлять сервером с помощью этой утилиты можно локально и удаленно с машин под Windows и Linux.
Утилита rac совместима с серверами ras и не привязана к версии с релиза платформы 8.3.9, поэтому для управления, например, сервером на платформе 8.3.19 можно пользоваться клиентом версии 8.3.9 и наоборот. Исключение составляют только те функции и возможности, которые появились в более поздних релизах, соответственно этими функциями можно управлять утилитой той версии, в которой они появились или выше.
В 3 разделе мы уже воспользовались утилитой rac для проверки работоспособности сервера. Теперь с помощью этой же утилиты создадим базу данных.
Перейдем в каталог с установленной платформой:
cd /opt/1cv8/x86_64/8.3.19.1264/
И запустим утилиту rac без аргументов, чтобы посмотреть краткую справку по использованию:
./rac
Для того чтобы создать базу, нам необходимо узнать UUID кластера. Узнаем uuid кластера 8.3.19. Как и планировали в начале статьи RAS для данного кластера работает на порту 4545.
./rac cluster list localhost:4545
Создадим базу данных testdb:
./rac infobase create --create-database --name=testdb --dbms=PostgreSQL --db-server=localhost --db-name=testdb --db-user=usr1cv8 --db-pwd=veryhardpassword --cluster=2cde3bed-f766-458d-919f-611c995bbaa7 localhost:4545
В ответ утилита сообщит uuid созданной базы:
Теперь выведем список баз в кластере:
./rac infobase summary list --cluster=2cde3bed-f766-458d-919f-611c995bbaa7 localhost:4545
Получить краткую справку по аргументам каждого из режимов работы можно запустив утилиту только с указанием режима работы, например, ./rac infobase или ./rac connection.
Утилита позволяет полностью администрировать функции кластера 1С, аналогично консоли mmc.
Создание баз 1С
Теперь идём на любую машину, где у вас установлена консоль администрирования 1С. Обычно её на какую-то виндовую машину ставят. Для этого надо скачать Технологическую платформу той же версии, что и установленный сервер 1С на Debian.
Во время установки обязательно выбрать компонент Администрирование сервера 1С.
После установки запускаем Администрирование серверов 1С Предприятия x86-64 и добавляем туда сервер 1С на Debian, который мы установили ранее. Можно по dns имени, если оно настроено, либо просто по ip.
Если получите ошибку: “Консоль управления (MMC) не может создать оснастку.”, то сделайте следующее.
Запустите командную строку с правами администратора. Это важно. И выполните там:
"C:\Program Filescv8\8.3.19.1150\bin\RegMSC.cmd"
Не забудьте поменять версию платформы на свою. После этого оснастка управления сервером 1С нормально заработает. Подключаем наш сервер на Debian.
Дальше всё управление выполняется как обычно. Создавайте новую базу. В качестве сервера БД указываем 127.0.0.1, пользователя postgres и пароль, который вы задали ранее.
Если получите ошибку “Ошибка соединения с рабочим процессом.” и дальше некоторые подробности сетевых проблем, то добавьте DNS запись или запись в файл hosts с именем и ip адресом вашего сервера 1С. Потом попробуйте создать базу снова. Так же эта ошибка может появляться, если включен и не настроен firewall. Вам как минимум нужно открыть порты tcp 1540, 1541, 1560.
После этого к базе можно подключиться обычной платформой и залить конфигурацию.
В целом, на этом настройка сервера 1С закончена. Дальше ставятся софтовые лицензии и начинается работа. Если у вас лицензия аппаратная, то необходимо установить и настроить HASP Licence manager.
Инструкция по установке КриптоПро 4
Запустите установочный файл CSPSetup_4.0.xxxx.exe
В первом появившемся окне нажмите кнопку «Запустить».

Далее нам сообщают, что мы принимаем условия лицензионного соглашения и устанавливаем программу с временной лицензией на 3 месяца. Нажимаем «Дополнительные опции».

В дополнительных опциях можно выбрать язык (русский, английский) и конфигурацию уровня безопасности (КС1, КС2, КС3). По умолчанию язык — русский, уровень безопасности — КС1 (такие настройки рекомендуется оставить!). В нашем случае необходимо установить КС2, поэтому настройки изменяем.

Нажимаем «Далее».

Принимаем условия лицензионного соглашения, нажимаем «Далее».

Вводим имя пользователя и название организации. Если есть лицензия, то набираем лицензионный ключ. Если лицензии нет, то программа будет работать 3 месяца без лицензионного ключа. Нажимаем «Далее».

Выбираем обычную установку. Нажимаем «Далее».

Выбираем «Зарегистрировать считыватель «Реестр». (Это позволяет хранить закрытый ключ в реестре, необходимость во флешке или рутокене отпадает).
Нажимаем «Установить».

Ждем пока программа установится.

Дальше остается нажать «Готово». КриптоПро установлено.
