Оглавление
- Введение
- Термины и определения
- Разделение операционных систем GNU/Linux
- Варианты установки Linux — локально на физический сервер, с виртуализацией, в облаке
- Распространённые приложения для серверного и клиентского дистрибутива Linux
- Доверенные источники программного обеспечения под Linux, репозитории
- Установка сервера 1С:Предприятия (8.3.20, 8.3.21, 8.3.22, 8.3.23) на отечественные дистрибутивы Linux
- Установка и доступ к ключам защиты платформы 1С:Предприятие
- Установка на сервере SLK для работы с типовыми решениями «1С-Рарус»
- Включение отладки раздельное
- Удаление установленной 1С
- Обновление релиза 1С
- Установка PostgreSQL
- Оптимизация postgres со сравнительными цифрами
- Установка веб-сервера и публикация базы на веб-сервере
- Продолжение цикла экспертных статей об использовании Linux для 1С
Введение
Данная статья в первой половине рассказывает, какие существуют российские дистрибутивы Linux, как их развернуть, какое типовое программное обеспечение может потребоваться на компьютере под Linux.
Во второй половине статьи будет показан процесс разворачивания серверной части 1С и PostgreSQL под линукс и необходимые первоначальные настройки.
Статья подходит для начинающих системных администраторов и специалистов по 1С, потому что содержит изложение процессов установки Linux и базовых команд для управления программным обеспечением в свежеустановленной системе.
Если вас интересует исключительно установка 1С:Предприятия под отечественные версии Linux, то можно сразу переходить к соответствующему разделу.
Версии программного обеспечения, упомянутые в материале, актуальны на момент подготовки публикации. Для иных версий и релизов процессы установки и настройки могут отличаться.
Термины и определения
Выпишем ряд достаточно известных понятий, чтобы иметь возможность не прибегая к поиску в интернете, читать статью.
Ядро — центральная часть ОС, обеспечивающая приложениям координированный доступ к ресурсам компьютера.
ОС (Операционная система) — ядро, системные утилиты и программы, которые содержат все необходимое для работы с аппаратным программным обеспечением.
Например:
- Windows
Семейство операционных систем от компании Windows. Имеет свое ядро, набор системных утилит и программ.
- GNU/Linux
Семейство операционных систем с ядром Linux и компонентами проекта GNU.
- Android
Семейство операционных систем от компании Google. Несмотря на ядро Linux, отличается в наборе системных утилит и программ, поэтому представляет собой отдельную операционную систему.
GNU (GNU is Not Unix) — проект и библиотеки, программы, разработанные в рамках этого проекта. Вёл проект Ричард Столлман и его задача была в том, чтобы разработать аналог ОС Unix, который не устраивал его в плане лицензии. В GNU используется своя лицензия GNU GPL, которая позволяет бесплатно использовать и распространять исходные коды и сами программы, но запрещает присваивать себе их и наработки на их базе. В рамках проекта сделали всё, кроме ядра и по итогу появилась ОС GNU/Linux, которая сочетала в себе ядро Линуса Торвальдса Linux и компоненты проекта GNU.
Дистрибутив (от distribute — распространять) — вариант, сборка ОС.
Например, для Windows таковыми будут:
- Windows 11,
- Windows Server 2019,
- И так далее...
Для GNU/LInux:
- Ubuntu 22.04,
- Debian 11,
- Ред ОС 7.3,
- Альт 10.
Версию при этом часто опускают. Еще есть редакция дистрибутива как Windows 10 Home или «Альт Рабочая станция К», которые отличаются набором ПО, настройками и частью функционала. GNU/Linux дистрибутивов значительно больше благодаря гибкости и открытости лицензии.
Кроме того, существуют целые семейства дистрибутивов. Многие дистрибутивы имеют общее назначение, то есть можно использовать их для совершенно разных задач, а есть специализированные, которые заточены под конкретное использование.
Например, дистрибутив может быть создан конкретно для использования на рабочих станция или серверах, а может быть конкретно решением для виртуализации, как OpenVZ.
Менеджер пакетов (apt — debian, rpm — RedHat) — система управления пакетами с программным обеспечением. Занимается корректной установкой/удалением пакетов программ, разрешает зависимости, а также ведет базу установленного ПО в служебных файлах, чтобы можно было отслеживать текущие установленные пакеты и правильным образом проводить установку и обновление.
Пакеты (deb — пакет для дистрибутивов Debian/Ubuntu; rpm — пакет для дистрибутивов RedHat/Centos) — формат предоставления программного обеспечения в виде пакетов, содержащих помимо дистрибутива программного обеспечения, набор определённых метаданных, которые могут включать в себя полное имя пакета, номер версии, описание пакета, имя разработчика, контрольную сумму, зависимости с другими пакетами.
Самодостостаточные пакеты — пакеты Snap, Flatpak или AppImage. Не требуют специфичных для дистрибутива зависимостей, а поставляют их вместе с собой. Одно и то же приложение в различных дистрибутивах GNU/Linux обычно устанавливается по-разному, а данные решения позволяют стандартизировать процесс и сделать поведения приложений одинаковым во всех системах, что помогает увеличить стабильность.
Репозиторий, хранилище — место, где хранятся и поддерживаются какие-либо данные, необходимые для обновлений/установки приложений/пакетов.
Сервер — компьютер, задача которого обслуживать подключения от приложений, работающих на рабочих станциях (клиентов). Например, такими приложениями является:
- Сервер 1С
Позволяет обеспечить совместную работу множества пользователей с информационной базой.
- Samba
Позволяет обеспечить доступ к файлам, расположенным на нём. Может выглядеть на клиентах как сетевой диск или папка.
- Apache
Позволяет разместить сайт на сервере. В контексте 1С позволяет разместить информационную базу как сайт, после чего можно будет подключаться к базе через браузер.
Обычно на серверах с использованием ОС GNU/Linux нет монитора, клавиатуры, мыши, а доступ к ним обеспечивается по сети через протокол SSH.
Рабочая станция — компьютер, задача которого обеспечить работу конечного пользователя. У такого компьютера обязательно должен быть монитор, клавиатура, мышь, поскольку иначе обеспечить полноценную работу пользователя будет затруднительно.
Разделение операционных систем GNU/Linux
По применению
Рассматриваемые в статье дистрибутивы можно использовать и на сервере, и на рабочей станции. Дистрибутивы на базе ОС GNU/Linux в целом предполагают, что различия редакции для сервера и редакции для рабочей станции будут отличаться лишь набором ПО, причём в нашем случае сервер отличается тем, что там не будет графических приложений, графического окружения, но будут серверные приложения — сервер 1С, веб-сервер Apache и другие.
На самом деле, это ещё куда более тонкая грань, поскольку ничего не мешает на рабочей станции запустить сервер какого-то приложения, как и на сервере запустить графическую оболочку и предоставлять доступ к ней удалённо через RDP или VNC (об этом ПО мы поговорим ниже в статье), чтобы использовать её даже если к серверу физически не подключен монитор, клавиатура и мышь.
В Windows логика почти такая же и редакция для сервера отличается большими возможностями, специальным приложением для администрирования и некоторыми другими деталями, но глобально грань всё так же не очень явная.
По семействам
Важно понимать, что дистрибутивов очень много и далеко даже не все семейства нам важны в контексте 1С, поэтому мы будем рассматривать два популярных и часто используемых в этом деле семейства дистрибутивов: основанные на Debian и основанные на RHEL.
Debian
Некоммерческий дистрибутив от открытого сообщества. Распространяется свободно. Позиционируется для используется на серверах, рабочих станциях и не ограничивается этим.
- Ubuntu
Дистрибутив от британской компании Canonical. Распространяется свободно. Позиционируется для используется на серверах, рабочих станциях и не ограничивается этим. Присутствует реклама сервисов компании Canonical.
- Astra
Дистрибутив от российской компании Русбитех-Астра. Распространяется свободно. Имеет версию сертифицированную ФСТЭК. Используется на серверах и рабочих станциях.
RHEL (Red Hat Enterprise Linux)
Коммерческий дистрибутив от американской компании IBM. Распространяется по годовой подписке. Позиционируется для корпоративного использования на серверах, рабочих станциях. Предоставляет дополнительный набор ПО, поддержку и многое другое в отличие от Fedora.
- Fedora
Некоммерческий дистрибутив от американской компании IBM. Распространяется свободно. Позиционируется для использования на серверах и рабочих станциях и не ограничивается этим. Является площадкой для тестирования решений, которые потом попадут в RHEL.
- Ред ОС (Ред ОС)
Дистрибутив от российской компании РЕД СОФТ. Распространяется свободно. Имеет версию сертифицированную ФСТЭК. Позиционируется для использования на серверах, рабочих станциях.
- Mandrake
Ныне несуществующий дистрибутив, на базе которого был создан ALT.
- ALT
Дистрибутив от сообщества ALT Linux Team, но конечные сборки выпускаются в основном российскими компаниями Базальт СПО и Альт Линукс. В отличии от RHEL использует пакетный менеджер apt, а не dnf/yum, но при этом продолжает использовать пакеты rpm. Распространяется свободно. Имеет версию сертифицированную ФСТЭК. Позиционируется для использования на серверах, рабочих станциях.
- ALT
Если интересен наиболее полный список дистрибутивов Linux, то можно воспользоваться данной иллюстрацией:
Отечественные дистрибутивы
В отличии от ОС Microsoft Windows, дистрибутивы на базе ОС GNU/Linux разрабатываются различными компаниями в том числе и российскими. Это позволяет не зависеть от какой-то конкретной компании и адаптировать продукт под требования.
В российских дистрибутивах Astra, ALT и Ред ОС это проявляется в том, что ПО адаптировано для русского языка, обеспечена лучшая поддержка российских приложений, например, КриптоПРО, а так же существует версия сертифицированная ФСТЭК или ФСБ, которую можно использовать при работе с информацией, требующей повышенной защиты.
Варианты установки Linux — локально на физический сервер, с виртуализацией, в облаке
Существует несколько способов использовать дистрибутивы ОС GNU/Linux, кроме непосредственной установки на локальное оборудование, можно использовать установку на виртуальную машину, в контейнере и через облачный сервис. Виртуализация позволяет, например, на одном физическом сервере держать несколько виртуальных серверов под задачи различных серверов приложений. Облачные провайдеры предоставляют именно виртуальную машину, поэтому для правильного выбора типа виртуализации, необходимо знать особенности работы провайдера и устанавливаемой ОС.
Установка серверного дистрибутива РЕД ОС 7.3 на физический сервер
Скачать образ диска для установки можно скачать с официального сайта Ред ОС: redos.red-soft.ru/.
Дистрибутив, представленный на сайте можно использовать для установки как на сервер, так и на рабочую станцию о чём сказано на сайте.
Кроме того, на сайте можно скачать хэш MD5 образа дистрибутива, который можно использовать для проверки отсутствия ошибок при скачивании или переноса на другой носитель, поскольку если файл будет поврежден, его хеш MD5 не будет совпадать с контрольной суммой с сайта.
В GNU/Linux проверить ее можно следующим образом:
В Windows (Powershell):
Установщик в Ред ОС адаптирован для нас, поэтому у нас не возникнет проблемы с выбором русской раскладки при установке. Смело выбираем русский язык и далее во время установки можно поменять язык с помощью выпадающего меню сверху.
В главном меню установки необходимо указать настройки, распределенные по группам, которые будут использоваться для установки дистрибутива.
В «Выборе программ» мы можем выбрать редакцию для сервера и рабочей станции. Кроме того, можно сразу установить необходимые программы для дальнейшей работы.
Как и говорилось выше, разница между сервером и рабочей станцией достаточно тонкая, поэтому несмотря на то, что на сайте говорилось о двух редакциях, здесь их три. «Сервер с графическим интерфейсом» совмещает обе редакции.
В «Месте установки» необходимо выбрать диск, куда будет установлена Ред ОС. Кроме того, можно сконфигурировать диски более подробно, выбрав «По-своему». Подробнее о разбивке диска расскажем в будущем в отдельной статье, поскольку тема достаточно большая и для полноценного ее понимания потребуется много теории.
В «Пароле root» устанавливаем его пароль.
Опция разрешить вход пользователям root с паролем через ssh позволяет удаленно входить под пользователем root по ssh. Нежелательно ее использовать, поскольку тогда можно будет напрямую пробовать подбирать пароль к root-пользователю. Напоминаем, что root-пользователь имеет все права, поэтому получив доступ к root можно сделать что угодно в системе.
В «Создании пользователя» даем имя пользователя и задаём пароль.
Опция «Сделать этого пользователя администратором» даст возможность использовать утилиту sudo для запуска программ от имени суперпользователя. Это необходимо делать, если мы хотим дать этому пользователю возможность администрировать данную операционную систему.
Важные моменты в процессе установки мы рассмотрели. Теперь приступим к проверке своей установки.
После перезагрузки мы попадем в систему. Необходимо будет войти под пользователем, которого мы создали.
Можем ввести команду lsb_release -a, чтобы вывести информацию о релизе нашего дистрибутива.
В случае установки Ред ОС в других редакциях, установка происходит так же, а при запуске у нас будет графический интерфейс, поэтому информацию о системе можно будет посмотреть через него, а не в консоли.
Установка клиентского дистрибутива Astra на компьютер пользователя
Скачать можно на сайте: astralinux.com.
Дистрибутив, представленный на сайте можно использовать для установки как на сервер, так и на рабочую станцию, поскольку при установке мы сможем выбрать соответствующий набор ПО.
Кроме того, на сайте можно скачать хэш MD5 образа дистрибутива, который можно использовать для проверки отсутствия ошибок при скачивании или переноса на другой носитель, поскольку если файл будет поврежден, его хеш MD5 не будет совпадать с указанным на сайте.
Проверить ее можно следующим образом в GNU/Linux:
В Windows (Powershell):
Переходим к процессу установки.
Здесь в большинстве случаев подойдёт авторазметка, но если необходима подробная разметка, то можно сделать ее вручную. Выбор диска для разметки и установки происходит на следующем шаге. Кроме того, при авторазметке можно раздел /home, который отвечает за данные пользователей, перенести в отдельный раздел на диске.
Выбираем выносить ли раздел /home в отдельную файловую систему. Это создаст раздел на диске с директориями пользователей, где обычно содержаться их настройки и файлы. Такой вариант можно использовать для удобного администрирования.
Например, система была повреждена, мы вынуждены переустановить ее, причем основная файловая система тоже пострадала, но мы можем спокойно скопировать /home, переустановить систему, вернуть /home обратно. Останется только вернуть программы и настройки самой системы.
Далее можно свериться с разметкой. Если она нас устраивает, то продолжаем. Если нет, то можно вернуться обратно.
При установке возможно выбрать разные версия ядра, в том числе ядра с постфиксом hardened, которые нацелены на обеспечение повышенной безопасности.
На этом шаге решается получим мы дистрибутив для сервера или для рабочей станции. Выбранные на скриншоте пункты подходят для рабочей станции с максимальным набором программ для обычного пользователя.
Можно выбрать дополнительные настройки. Рассмотрим самые важные.
Включить блокировку интерпретаторов — запретить исполнять произвольные программы с интерпретируемыми языками, такими как Python, Bash. Потенциально позволяет повысить безопасность, но создает сложности с запуском таких файлов.
Включить межсетевой экран ufw — при его включении можно будет настроить правила отправки и получения данных с различных IP-адресов. Желательно включать на сервере и настроить под себя после установки. Про ufw и iptables поговорим, возможно, в другой статье, поскольку тема достаточно обширная.
Запретить установку бита исполнения — будет блокировать возможность выполнения команды chmod +x, которая позволяет сделать файл исполняемым.
Системные часы установлены на местное время — следует установить, если время в BIOS/UEFI установлено на текущее время в вашем регионе.
Включить автологин в графическую сессию — при запуске компьютера будет пропущен этап логина, поэтому сразу попадете в графическое окружение и можете приступить к работе. Нежелательно, если требуется обеспечение безопасности, поскольку можно будет просто перезагрузить компьютер и получить доступ к возможностям пользователя, которого мы создавали.
И теперь мы попадаем на рабочий стол Astra. Можно приступать к работе или дальнейшей настройке системы, если требуется.
Использование виртуализации
Виртуализация — это предоставление вычислительных ресурсов с определенным уровнем абстракции от непосредственного аппаратного обеспечения.
Гипервизор 1 рода — имеет доступ непосредственно к аппаратным ресурсам.
Гипервизор 2 рода — работает поверх операционной системы, поэтому доступа напрямую к аппаратным ресурсам не имеет. Из-за этого имеет меньшую производительность.
Виртуализация на уровне операционной системы — как и гипервизор 2 рода работает на базе операционной системы, но вместо виртуализации аппаратных ресурсов предоставляет доступ к ядру операционной системы, поэтому возможен запуск только операционных систем, которые работают на базе такого же ядра.
OpenVZ
Некоммерческое решение для виртуализации на уровне операционной системы.
Если виртуализация происходит на специальном дистрибутиве GNU/Linux, который выполняет роль гипервизора, то такая виртуализация происходит на уровне ОС. Это обеспечивает высокую производительность.
Возможно использование только специально подготовленных дистрибутивов: Debian, Ubuntu, CentOS. Кроме того, само ядро будет значительно старее, чем актуальное в этих дистрибутивах. Это может быть проблемой в некоторых ситуациях.
Доступные ресурсы можно менять без перезагрузки. Можно добавить больше оперативной памяти, ядер процессора, место на основном носителе и всё это не потребует перезагрузки.
KVM/QEMU (Актуально и для XEN)
Некоммерческое решение для виртуализации. Гипервизор 2 рода.
Используется метод паравиртуализации, то есть когда операционная система подготовлена для использования в виртуальной машине и ей предоставляется гостевой API. Процессор виртуализируется с помощью технологии Intel VT или AMD-V в зависимости от процессора. Из-за использования этого метода производительность меньше, но подготовка операционной системы для использования позволяет уменьшить потерю производительности.
Возможно использование любой операционной системы (Windows, GNU/Linux, FreeBSD...) в том числе любого дистрибутива ОС GNU/Linux.
Аппаратные ресурсы нельзя менять без перезагрузки.
Меньшая производительность относительно OpenVZ.
LXD/LXC
Виртуализация на уровне операционной системы, основанная на ядре GNU/Linux. LXD это интерфейс для LXC.
Похоже на OpenVZ и в целом более актуально сейчас, поскольку OpenVZ устаревает. Минимальные потери производительности, но возможно использование только дистрибутивов GNU/Linux.
Proxmox и OpenNebula
Системы виртуализации. Используют KVM и встроенное в GNU/Linux решение контейнеризации LXC.
Предоставляют удобный веб-интерфейс для управления виртуальными машинами, присутствует встроенный мониторинг. Особенности KVM актуальны при ее использовании.
Proxmox официально поддерживается в Debian и основана на нём.
OpenNebula имеет официальную поддержку во множестве дистрибутивов. Отличается в первую очередь тем, что входит в реестр отечественного ПО.
Hyper-V
Встроенная в Windows виртуальная машина. Гипервизор 1 рода.
Процессор виртуализируется с помощью технологии Intel VT или AMD-V в зависимости от процессора. Не требует специально подготовленного образа операционной системы.
Возможно использование любой операционной системы (Windows, GNU/Linux, FreeBSD...) в том числе любого дистрибутива ОС GNU/Linux.
VirtualBox (Актуально и для QEMU)
Открытое некоммерческое решение для виртуализации. Гипервизор 2 рода.
Основано на QEMU и использует метод динамической рекомпиляции, то есть виртуальная машина в реальном времени преобразовывает вызовы гостевой ОС в вызовы хост-системы. При таком методе производительность меньше, чем при использовании Hyper-V или KVM, но в VirtualBox есть расширения, которые могут повысить производительность.
Возможно использование любой операционной системы (Windows, GNU/Linux, FreeBSD...) в том числе любого дистрибутива ОС GNU/Linux.
VMWare Server, Workstation и Player
Платное коммерческое решение для виртуализации. Есть бесплатные версии. Гипервизор 2 рода.
Виртуализирует процессор, что не дает высокой производительности, но как и VirtualBox содержит расширения, которые позволяют повысить производительность.
Возможно использование любой операционной системы (Windows, GNU/Linux, FreeBSD...) в том числе любого дистрибутива ОС GNU/Linux.
В контексте 1С есть одна настройка, которая может уменьшить производительность. Сетевую карту желательно сменить со стандартной IntelE1000, поскольку это достаточно старая сетевая карта и на современных операционных системах может работать достаточно плохо.
Использует те же форматы образов дисков, что и VMWare EXSi, что позволяет легко перенести виртуальную машину на неё.
VMWare EXSi
Платное коммерческое решение для виртуализации. Гипервизор 1 рода.
В отличии от других продуктов VMWare представляет собой виртуальную машину, которая работает вместо ОС как OpenVZ, а не над ней. Благодаря этому имеет лучшую производительность.
В любом случае сценарий установки сервера 1С и подавляющего большинства серверных приложений не будет менятся от выбранного варианта виртуализации, за исключением настройки сети, которая будет выглядеть по-разному для них.
Размещение в облаке
Yandex Cloud
Предоставляет огромный спектр услуг, в том числе то, что нам подходит: виртуализация.
Выбираем сервис Compute Cloud.
Затем из списка можно установить: Astra, ALT, Ред ОС, Ubuntu, Debian, CentOS, Fedora, OpenSUSE и другие.
Если нам требуется установить свой образ, то можно перейти на вкладку «Пользовательские» и там его выбрать. Это можно использовать при установке сертифицированных ФСТЭК или ФСБ дистрибутивов, поскольку в открытом доступе их нет и Яндекс их предоставить в списке не может.
Предварительно образ необходимо подготовить, то есть произвести установку, настроить, сделать снимок и уже его загружать.
Загрузка образа диска в облако | Yandex Cloud — Документация:
cloud.yandex.ru/docs/compute/operations/image-create/upload.
Подготовить свой образ диска | Yandex Cloud — Документация:
cloud.yandex.ru/docs/compute/operations/image-create/custom-image.
Для создания виртуальной машины нам еще потребуется ключ rsa. В Windows 10 и новее и в GNU/Linux он создается следующим образом:
Для полноценного размещения сервера 1С или сервера какого-либо приложения нам потребуется только сделать IP-адрес статическим, чтобы можно было держать постоянное подключение к серверу. Дальнейший процесс установки 1С не отличается.
Облако «1С-Рарус»
У нас есть своё облако типа Private Cloud. Это означает, что у нас нет открытой панели администрирования, а сервера администрируем мы сами. Благодаря этому можно просто прийти и сказать, что требуется с произвольной детализацией.
Например, можно просто сказать, что нужен сервер для ERP и пользователей будет столько-то, а можно прийти с требованием, чтобы на сервере стояла Astra, PostgresPro 15, платформа 1С версии 8.3.22.1750, по аппаратному обеспечению должно быть то-то и далее, далее, далее...
Такой подход позволяет нам эффективно работать с совершенно разными клиентами, обеспечивая при этому гибкость и индивидуальность инфраструктуры каждого, а всю работу по администрированию выполняем мы, поэтому нашим клиентам остается только пользоваться конечным решением.
Применение докер-контейнера
Docker создает внутри текущей операционной системы контейнеры, которые имеют свои библиотеки, программы, файлы, но работают с тем же ядром, что и операционная система. Это не похоже на виртуализацию, но скорее является дополнением к ней, которое позволяет запускать готовые серверные сборки без изменений в основной операционной системе, что облегчает разворачивать готовую рабочую конфигурацию сервера.
Важно понимать, что использование докера может совмещаться с виртуализацией, поскольку для контейнера на базе GNU/Linux, который будет запускаться в Windows не получится без виртуализации создать контейнер. Поскольку ядро Linux и ядро Windows разные, Docker потребует создания виртуальной машины, в которой уже и будут работать контейнеры. В обратном случае, когда мы запускаем Windows, а в качестве установленной системы у нас GNU/Linux, произойдёт то же самое.
Обычно отдельный контейнер создают под каждое приложение, поэтому если у нас используется клиент-серверный вариант 1С, то будет лучше использовать 2 контейнера: под сервер 1С и под СУБД.
Дальнейшая часть поверхностно описывает сборку контейнера с помощью Dockerfile. Тема достаточно обширная и заслуживает отдельной статьи, но мы кратко рассмотрим ее.
Контейнеры подготавливаются с помощью сценария в Dockerfile. Он имеет примерно такую структуру:
ENV # Задаем переменные окружения
COPY # Копируем файлы. Например, файлы дистрибутивов баз данных, платформы 1С или конфигурационные файлы
RUN # Производим установку и настройку дистрибутивов.
CMD # Описываем точку входа в образ для запуска и управления контейнерами.
Процесс сборки контейнера кешируется и при изменении сценария его пересборка происходит из уже созданного кэшированного, наиболее подходящего. Например, изменился дистрибутив 1С в COPY и процесс его установки в RUN, поэтому сборка контейнера будет начинаться с ENV, то есть у нас уже установлено окружение операционной системы и установлены переменные окружения, поэтому пересборка происходит быстрее, чем если бы это была первая сборка.
Распространённые приложения для серверного и клиентского дистрибутива Linux
Графический интерфейс
Поставляется вместе с дистрибутивом, поэтому выбор графической оболочки должен происходить еще до установки, обычно на этапе скачивания дистрибутива с сайта разработчика. При желании возможно изменить в дальнейшем или использовать несколько различных графических оболочек, но это процесс достаточно сложный.
KDE
Используется в Альт. Ранее это была просто среда рабочего стола, а KDE означало K (ool) Desktop Environment, но сейчас это большая команда разработчиков с множеством проектов среди которых не только среда рабочего стола. Актуальный проект рабочего стола именуется KDE Plasma 5.
Предоставляет самые широкие возможности по кастомизации из представленных графических оболочек, большой набор пользовательских тем, всевозможные анимации, функциональные возможности. Кроме того, его можно мимикрировать в то, что больше всего нравится. Нравится MacOS? Получаешь панель задач сверху, круглые одноцветные яркие кнопки свернуть, развернуть, закрыть, плавные анимации и многое другое очень близко к интерфейсу MacOS. Кроме того, можно собрать и гибрид, либо даже уйти куда-то в футуризм. Потребление ресурсов при этом достаточно большое, а для полноты эффектов требуется аппаратное ускорение.
KDE Plasma 5 на рабочей системе у одного из авторов статьи.
Оформление как в Windows 7, то есть нет панели управления справа, как в Windows 10.
Эффект окон из Doom.
Mate
Используется в Ред ОС. Продолжение графической оболочки Gnome 2. Создание было связано с тем, что в Gnome 3 добавили много нового функционала, который части сообщества казался лишним, поэтому создали ответвление, которое продолжает идеи старой версии Gnome. Предоставляет достаточно простой и удобный в использовании интерфейс, без лишних изяществ. Потребляет мало ресурсов.
Mate в Ред ОС
Cinnamon
Используется в Ред ОС и в Альт. Продолжение графической оболочки Gnome 3. В отличии от Mate предоставляет много возможностей по кастомизации, но в то же самое время остается достаточно простым. Потребляет больше ресурсов, чем Mate.
Cinnamon в Alt
Fly
Используется в Astra. Собственная разработка Astra. Достаточно проста и минималистична. Исходные коды закрыты, в отличии от всех других графических оболочек, но это может быть плюсом в плане безопасности, поскольку найти уязвимость сторонним исследователям сложнее в таком случае. Потребляет мало ресурсов.
Средства удалённого доступа в графическом режиме, RDP
xRDP
Это открытая реализация протокола RDP, который используется в Microsoft Windows. С помощью него можно реализовать доступ к компьютеру по его IP и данным пользователя. При подключении будет использоваться графический режим. Для подключения с Windows достаточно воспользоваться стандартным приложением для подключения по RDP.
Установка в Astra Linux
systemctl enable xrdp --now
Кроме того, необходимо в файле /etc/xrdp/startwm.sh перед строкой:
добавить:
unset XDG_RUNTIME_DIR
Если этого не сделать, то при попытке зайти с Windows будет чёрный экран.
РЕД ОС
Установка:
groupadd tsusers # создаём группу tsusers
usermod -a -G tsusers user # для доступа к терминальной сессии добавляем пользователя user в групппе tsusers
Подробнее о настройке написано в документации: redos.red-soft.ru/base/server-configuring/remote-control/xrdp/.
Альт
Установка:
systemctl enable xrd xrdp-sesman --now
usermod -a -G tsusers user # для доступа к терминальной сессии добавляем пользователя user в групппе tsusers
VNC
Система удалённого доступа к рабочему столу компьютера. Более специфична для дистрибутивов GNU/Linux. Для подключения с Windows можно использовать приложение RemoteRipple (remoteripple.com).
Настройка сервера VNC не однострочная задача, поэтому полное описание будет представлено для Ред ОС. В других дистрибутивах GNU/Linux будет как минимум отличаться команда установки tigervnc-server, имя сессии рабочего стола по-умолчанию.
Установить для Astra:
Установить для Альт:
Ред ОС:
vncpasswd # устанавливаем пароль vnc для текущего пользователя
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service # копируем файл конфигурации
nano /etc/systemd/system/vncserver@\:1.service # открываем файл для редактирования
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver_wrapper имя_пользователя %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
Далее устанавливаем рабочий стол по-умолчанию.
Для Mate:
Для Cinnamon:
Изменяем права на домашнюю директорию пользователя:
Теперь подключение по порту 5901 в VNC возможно.
Remmina
Это приложение для дистрибутивов GNU/Linux, которое позволяет подключаться к удаленным компьютерам по различным протоколам. RDP, VNC, SSH и другие.
Установка в Astra:
Ред ОС:
Альт:
RustDesk
Открытое приложение для реализации простого удаленного доступа. Знать IP подключаемого компьютера не требуется, достаточно внутреннего ID в приложении. Кроме того, возможно поднять собственные сервера для обслуживания клиентов данного приложения.
Astra:
Загружаем deb-пакет отсюда: github.com/rustdesk/rustdesk/releases
Пробуем установить:
Видим ошибку. Не хватает пакетов libxdo3 и python3-pip.
Первый можно скачать здесь: pkgs.org/download/libxdo3.
Выбираем Ubuntu 20.04 для amd64 и скачиваем deb-пакет.
sudo apt -fix-broken install
После чего программа устанавливается и мы можем ею пользоваться.
Ред ОС:
Загружаем rpm-пакет: github.com/rustdesk/rustdesk/releases.
sudo rpm -i rustdesk.rpm
Альт:
Возникли сложности с установкой. Сама установка приложений, которые поставляются в формате rpm происходит через epm. Сначала их нужно перепаковать с помощью неё, а после установить, но для данного приложения возникли трудности.
AnyDesk
Проприетарное приложение для реализации простого удаленного доступа. Знать IP подключаемого компьютера не требуется, достаточно внутреннего ID в приложении.
Astra:
Скачиваем пакет для Debian/Ubuntu/Mint с официального сайта: anydesk.com/ru/downloads/linux.
sudo apt –fix-broken install
Кроме того, возможна установка через репозиторий. Она описана здесь: deb.anydesk.com/howto.html.
Ред ОС:
Скачиваем пакет для RHEL 8 с официального сайта: anydesk.com/ru/downloads/linux.
Альт:
Возникли сложности с установкой. Сама установка приложений, которые поставляются в формате rpm происходит через epm. Сначала их нужно перепаковать с помощью неё, а после установить, но для данного приложения возникли трудности.
Антивирусы
В ОС GNU/Linux антивирусы используют достаточно редко. Это связано с тем, что большую часть вирусов мы получаем из интернета, когда скачиваем программы, а дистрибутивы GNU/Linux используют в основном репозитории, поэтому получить вирус значительно сложнее.
Кроме того, малая распространенность на рабочих станциях, значительное различие дистрибутивов уменьшает количество желающих написать вирус под GNU/Linux, но это не значит, что вирусов нет. Они существуют в основном в другой форме и цель их не обычные пользователи, а сервера.
Для них привычные антивирусы достаточно бесполезны, поскольку злоумышленники ищут уязвимости в серверных приложениях. Только Альт содержит в поставке ClaimAV, который не обязателен к установке и по-умолчанию не выбран.
Файловые менеджеры
Вместе с графической оболочкой всегда поставляется и файловый менеджер, все они достаточно просты и удобны в использовании, поэтому расскажем лишь о двух из них.
Dolphin
Поставляется вместе с графической оболочкой KDE. Обладает огромным набором функций. Из основных: разделение на две панели, вкладки, поддержка сетевых расположений, настройка интерфейса под себя.
Dolphin с открытым ftp://ftp.yandex.ru
mc
Работает из консоли. Это делает возможным его использование при администрировании серверов на базе GNU/Linux. Является идейным наследником Norton Commander, который был создан еще для DOS, поэтому использует режим работы с двумя панелями.
Текстовые редакторы
vim
Является достаточно сложным текстовым редактором, но в то же самое время удобным после освоения. Рассматривать работу с ним не будем, поскольку это отдельная большая тема.
vi с введенной командой выхода без сохранения
vim есть в базовой поставке большинства дистрибутивов, но если он по какой-то причине всё же не установлен, то его можно легко доустановить штатными средствами.
nano
Является простым текстовым редактором, которым легко пользоваться. Все возможные действия и как их можно вызвать подсвечены снизу. Для запуска нужно ввести nano с путем до файла, который мы хотим открыть.
nano также есть в базовой поставке большинства дистрибутивов.
Kate
Kate — текстовый редактор, развивающийся проектом KDE. Его функционал в базовом виде выходит за рамки просто редактирования файлов, поскольку он может и с git работать, и подсветку синтаксиса имеет. В целом, Kate можно было бы назвать лёгкой IDE из-за этого дополнительного функционала, если бы была возможность сборки программ.
Kate поставляется вместе с графической оболочкой KDE, поэтому если он используется, то Kate скорее всего уже установлен. В ином случае установить можно установить из репозиториев.
Доступ по SSH
Протокол ssh позволяет реализовать доступ к консоли сервера по IP. При установке дистрибутивов Astra, Alt и Ред ОС можно дополнительно установить и сервер ssh, но если пункт был упущен, то можно установить его следующим образом:
Astra:
Ред ОС:
Альт:
После установки для всех ОС надо выполнить команду:
Браузеры
Firefox
Debian/Ubuntu/Astra:
Ред ОС:
Альт:
Chromium
Debian/Ubuntu/Astra:
Ред ОС:
Альт:
Chromium-Gost
Astra:
Ред ОС:
Скачиваем .rpm файл с актуальной версии релиза: github.com/deemru/chromium-gost/releases/.
sudo rpm -i chromium-gost.rpm
Перезагружаемся.
Альт:
Yandex
Astra:
Скачиваем deb-пакет с сайта: browser.yandex.ru/.
Ред ОС:
Скачиваем rpm-пакет с сайта: browser.yandex.ru/.
sudo rpm -i Yandex.rpm
Альт:
Офисное программное обеспечение
libreoffice
Debian/Ubuntu/Astra:
Ред ОС:
Альт:
Кроме того, можно использовать онлайн офисные пакеты Google и Yandex через браузеры.
Мессенджер
Telegram
Если Телеграм недоступен в официальном репозитории, то скачиваем телеграм для Linux с официального сайта: desktop.telegram.org.
chmod +x ./Telegram/Telegram #Даем права на исполнение
./Telegram/Telegram #Запускаем установщик
После этого Телеграм устанавливается и сразу же запускается.
В Альт можно установить из официального репозитория:
Доверенные источники программного обеспечения под Linux, репозитории
Программы, распространяемые вместе с дистрибутивами Linux
После установки любого дистрибутива есть набор ПО, который сразу в него встроен. Обычно это grub, ядро Linux, bash, текстовые редакторы vim и nano, клиент ssh, множество консольных программ, библиотеки. Кроме того, если это пользовательский дистрибутив, то стоит какая-то графическая оболочка и какие-то приложения, но их состав может быть совершенно разным и зависит от конкретного дистрибутива.
Официальные и неофициальные репозитории
В ОС GNU/Linux большая часть программ распространяется через репозитории. Есть репозитории официальные, которые сразу добавлены в пакетный менеджер дистрибутива, но можно подключить и другие. При подключении репозитория установить программы можно через него таким же способом, как и для установки через официальный репозиторий. Все программы из стороннего репозитория как бы добавляются в общий список доступных, поэтому важно чтобы в пользовательском репозитории соблюдались зависимости пакетов из официального репозитория.
В целом, из-за зависимостей ПО, как правило, пакет поставляют специально подготовленным для основных дистрибутивов, если найдете приложение предназначенное для ОС GNU/Linux, то обычно увидите две версии: в формате deb-пакета и rpm-пакета.
Иногда разработчики могут сделать общий установщик или подготовить разные варианта пакета для разных дистрибутивов и их версий. При установке приложений в разделе выше мы столкнулись со всеми этими вариантами.
Установка и управление приложениями, устанавливаемыми из репозиториев, с помощью пакетного менеджера
Debian/Ubuntu/Astra
Обновление репозитория:
Поиск:
Установка:
Обновление:
Удаление:
RHEL/Fedora/Ред ОС:
Поиск:
Установка:
Обновление:
Удаление:
Альт:
Обновление репозитория:
Поиск:
Установка:
Полное обновление:
Удаление:
Это не полный список команд пакетных менеджеров, но это самые часто используемые команды. Подробную информацию всегда можно найти через команду man, например, man apt, либо в документации своего дистрибутива.
Самодостаточные пакеты и специализированные ресурсы
Кроме установки через пакетный менеджер из репозитория, еще существует вариант установки приложений через самодостаточные пакеты. Это пакеты, подготовленные для использования в Snap, Flatpak или готовые приложения в формате AppImage.
Приложения, установленные таким образом, требуют только определенную версию Snap и Flatpak, но не дистрибутива и пакетов в нем, благодаря чему такая установка будет подходить ко всем дистрибутивам. Однако, приложения установленные таким образом будут потреблять больше оперативной памяти и места на диске, поскольку библиотеки будут использоваться других версий, а не те, которые установлены в дистрибутиве, но при этом их установка будет всегда выглядеть одинаково, а поведение одинаково во всех дистрибутивах GNU/LInux.
У Microsoft была похожая идея с Dynamic-Link Library (DLL). Предполагалось, что приложения будут использовать одинаковые DLL, тем самым будут потреблять меньше места на диске и в оперативной памяти, но по итогу каждое приложение тянет за собой свои версии этих библиотек прямо в месте установки.
Похожая история произошла с пакетами Microsoft Visual C++ Redistributable. Для корректной работы всех программ нужно устанавливать все версии, начиная еще с версии 2005 года. Сам пакет представляет собой набор библиотек для программистов, но версии разных годов не совместимы между собой, поэтому если приложение требует версии конкретно 2005 года, то другая не подойдет. Сейчас есть общий пакет 2015–2022 года, поэтому для достаточно новых приложений может требоваться установка только его.
Snap
Astra:
Ред ОС:
Альт:
После чего для всех:
sudo snap install core
После чего приложения для установки можно будет искать на сайте snapcraft.io. Инструкции прилагаются к каждому приложению и не зависят от дистрибутива.
Flatpak
Astra:
Ред ОС:
Альт:
После чего для всех:
Перезагрузиться.
Приложения для установки можно будет искать на сайте flathub.org. Инструкции прилагаются к каждому приложению и не зависят от дистрибутива.
AppImage
Программы поставляются в виде готовых образов, которые не требуют определенных зависимостей.
./name.Appimage #запускаем
Эти действия можно выполнить и в графическом режиме.
По-сути можно сказать, что AppImage уже предустановлен в каждый дистрибутив GNU/Linux, но на самом деле файл просто подготовлен так, что среда уже находится в нём, в отличии от Flatpak и Snap.
Установка сервера 1С:Предприятия (8.3.20, 8.3.21, 8.3.22, 8.3.23) на отечественные дистрибутивы Linux
Рассмотрим установку и настройку серверов 1С:Предприятия 8.3.20 — 8.3.23 на отечественные дистрибутивы Альт Сервер, Ред ОС, Astra Linux Common Edition. Особенностью платформы с 20 версии стало то, что теперь дистрибутивы для Linux распространяются не в виде .deb или .rpm пакетов, а в виде run — файла, который упрощает установку.
Данный файл может быть запущен как в графическом режиме (в этом случае используется мастер установки, аналогичный windows-дистрибутивам платформ), так и из консоли. При запуске файла через консоль удобно пользоваться пакетным режимом, сразу перечислив необходимые компоненты в виде параметров. С перечнем доступных компонент можно ознакомиться в руководстве администратора соответствующей версии платформы. Об установке предыдущих версий 1С:Предприятия вы можете узнать из нашей статьи по установке 1С на ОС Ubuntu.
Перед установкой сервера 1С рекомендуется обновить систему, а также внести в файл hosts соответствие адреса 127.0.0.1 и имени сервера, хранящегося в /etc/hostname, что необходимо для запуска сервера 1С. При редактировании файлов можно использовать как текстовые редакторы, входящие дистрибутив по-умолчанию (vim, mcedit для Альт, nano для Astra, либо все три в Ред ОС), так и установить предпочтительный из репозиториев системы.
В нашем примере для единообразия везде приведен редактор nano. Рекомендации по обновлению системы взяты из официальных источников информации по соответствующим дистрибутивам (сайт или wiki).
Перейдем к установке сервера 1С для различных ОС.
Для начала создаем в домашнем каталоге текущего пользователя каталог для хранения установочных файлов:
Обновление ОС перед установкой сервера 1С
АЛЬТ Сервер
Обновление системы
Переход в режим суперпользователя:
Обновление индекса пакетов:
Обновление пакетов:
Обновление ядра:
Очистка локального хранилища пакетного менеджера:
Настройка сети
Перезагрузка для применения обновлений
Ред ОС
Обновление системы
Настройка сети
Перезагрузка для применения обновлений
Astra Linux
Если Astra Linux была установлена в минимальном варианте без графического интерфейса, то при запуске системы можно столкнуться с отсутствием подключения к сети Интернет. В этом случае необходимо предварительно сконфигурировать сеть.
Просмотреть список сетевых интерфейсов
В нашем примере используется сетевой интерфейс с именем eth0.
Отредактируем конфигурационный файл
Добавим туда правила для автоматического подключения интерфейса и указание на то, что необходимо использовать DHCP:
allow-hotplug eth0
iface eth0 inet dhcp
Затем запустим интерфейс
Обновление системы
sudo apt dist-upgrade
Настройка сети
Перезагрузка для применения обновлений
Установка и запуск сервера 1С
Дистрибутивы платформы рассматриваемых версий для Linux поставляются в архиве формата tar.gz, внутри которого находится установочный файл. Их можно загрузить непосредственно на сервер в графическом режиме, воспользоваться переносным носителем или передать по сети (например, утилитой scp). Рассмотрим последний способ для одного из архивов (файлы предварительно загружены на ПК, находящийся в той же локальной сети, что и сервер). Данный способ работает на Linux-системах, также по-умолчанию OpenSSH клиент присутствует в Windows, начиная с Windows 10 и Windows Server 2019.
На компьютере с файлами
На сервере распакуем архивы
Все дальнейшие действия по установке и настройке сервера не отличаются для рассматриваемых ОС и должны выполняться от имени суперпользователя, поэтому необходимо либо однократно перейти в режим суперпользователя командой su -, либо использовать sudo перед вводимыми командами.
Если используем su -
Или если далее будем использовать sudo
Установка 1С в пакетном режиме
./setup-full-8.3.21.1644-x86_64.run --mode unattended --enable-components server,ws,ru
./setup-full-8.3.22.1750-x86_64.run --mode unattended --enable-components server,ws,ru
./setup-full-8.3.23.1437-x86_64.run --mode unattended --enable-components server,ws,ru
--enable-components - указание системе на то, какие компоненты следует установить, далее перечисляется через запятую список компонентов.
Теперь перейдем непосредственно к запуску сервера. Необходимые для запуска файлы службы сервера входят в комплект поставки. Следует отметить, что до 20 версии платформы включительно эти файлы представляли собой скрипт и конфигурационный файл системы инициализации init. С 21 версии для запуска платформы предоставляется unit-файл системы инициализации systemd.
Поскольку рассматриваемые нами ОС используют именно эту систему, то и для запуска сервера 20 версии платформы мы будем использовать unit-файл. Его можно как сделать самостоятельно, воспользовавшись приведенным примером, так и скопировать из имеющейся у нас более свежей версии платформы. Воспользуемся вторым вариантом.
Скопируем файл службы и зададим ему имя, соответствующее запускаемой версии сервера
Внесем изменения в скопированный файл
Необходимо в местах, содержащих упоминание версии платформы, заменить 8.3.21.1644 на 8.3.20.2184
Зарегистрируем службу в systemd
Внесем изменения в экземпляр службы
Добавим блок Service и для удобства изменим предлагаемый по-умолчанию каталог данных кластера с /home/usr1cv8/.1cv8/1C/1cv8 на /home/usr1cv8/.1cv8/1C/1cv8-1540
Environment=SRV1CV8_DATA=/home/usr1cv8/.1cv8/1C/1cv8-1540
Включим службу и сразу же ключом --now запустим её
Для Astra Linux
Проверить статус службы можно командой
Надпись active (running) в выводе команды говорит нам о том, что служба активна и функционирует.
Запустим сервера остальных версий. Поскольку мы запускаем сразу несколько экземпляров сервера 1С, то для них необходимо будет отредактировать экземпляры соответствующих служб, указав там другие порты. Приведем пример для 8.3.21:
Зарегистрируем службу в systemd
Внесем изменения в экземпляр службы
Environment=SRV1CV8_PORT=2540
Environment=SRV1CV8_REGPORT=2541
Environment=SRV1CV8_RANGE=2560:2591
Environment=SRV1CV8_DATA=/home/usr1cv8/.1cv8/1C/1cv8-2540
Дальнейшие действия по запуску не отличаются от рассмотренных ранее
systemctl status srv1cv8-8.3.21.1644@default
Аналогичным образом поступим и для других версий сервера. Для 8.3.22 установим порты 3540, 3541, 3560-3591 и каталог /home/usr1cv8/.1cv8/1C/1cv8-3540, для 8.3.23 — 4540, 4541, 4560-4591, каталог /home/usr1cv8/.1cv8/1C/1cv8-4540.
Администрирование кластера на Linux может осуществляться в режиме 1С:Предприятия посредством специальной обработки («Функции для технического специалиста» — «Управление серверами») либо через сервер администрирования ras, который входит в комплект поставки платформы. Также, начиная с 21 версии 1С предоставляет unit-файл для запуска сервера администрирования в режиме демона. Как и в случае сервера, для версии 8.3.20 создадим подобный файл службы, воспользовавшись более новой версией платформы:
Скопируем файл службы
Внесем изменения в скопированный файл
Снова заменяем версию платформы с 8.3.21.1644 на 8.3.20.2184
Зарегистрируем службу в systemd и запустим
systemctl enable ras-8.3.20.2184 --now
Для остальных версий платформы изменим номера портов, по аналогии с сервером. Пример для 8.3.21:
Зарегистрируем службу в systemd
Внесем изменения в экземпляр службы
Environment=RAS_PORT=2545
Environment=RAS_CLUSTER_ADDRESS=127.0.0.1:2540
Запустим службу
Для работы с сервером ras из командной строки предназначена утилита rac. С её помощью можно проверить подключение к кластеру:
Пример для 8.3.21
Наличие подобного ответа от сервера говорит об успешном подключении:
host : altserver
port : 2541
name : "Локальный кластер"
expiration-timeout : 60
lifetime-limit : 0
max-memory-size : 0
max-memory-time-limit : 0
security-level : 0
session-fault-tolerance-level : 0
load-balancing-mode : performance
errors-count-threshold : 0
kill-problem-processes : 1
kill-by-memory-with-dump : 0
Установка и доступ к ключам защиты платформы 1С:Предприятие
Лицензирование 1С:Предприятия может быть построено на использовании 2 систем защиты: аппаратной и программной.
Подробное описание обеих систем, а также особенности их использования описаны в руководстве администратора платформы на сайте ИТС (its.1c.ru/section/dev/doc_dev). В рамках данной статьи рассмотрим их кратко.
Сетевая система защиты HASP (аппаратная защита)
Представляет собой usb-ключ на определенное количество пользователей. Для использования ключа необходимо установить драйвер. В руководстве администратора предлагается скачать драйвер HASP по ссылкам:
- releases.1c.ru/project/AddCompDriverHASP,
- thales-sentinel.ru/helpdesk/download-space/ (на момент написания статьи не работает).
Драйвер для Linux поставляется в виде архива формата tar.gz. Рассмотрим порядок его установки.
Распакуем скачанный архив и переходим в каталог с драйвером
cd Sentinel_LDK_Linux_Run-time_Installer_script
tar -xzf aksusbd-8.43.1.tar.gz
cd aksusbd-8.43.1
С правами суперпользователя выполняем скрипт установки
После установки будут активированы 2 службы.
Драйвер ключа
Служба менеджера лицензий
Программное лицензирование
Построено на использовании специального файла программной лицензии. Активация программной лицензии происходит помощником активации лицензий («Получить лицензию» или «Загрузить файл-ответ»)
Установка на сервере SLK для работы с типовыми решениями «1С‑Рарус»
Для запуска некоторых конфигураций требуются лицензии, управление которыми осуществляет отдельное приложение — сервер лицензирования и защиты конфигураций. Архив с дистрибутивом сервера доступен для загрузки на сайте licencecenter.com.
Актуальная версия сервера СЛК на момент написания статьи: licencecenter.com/downloads/licence/3.0/licence-3.0.30.10493-eu.zip.
Для загрузки файла в консольном режиме можно воспользоваться утилитами wget или curl в в зависимости от наличия их в конкретном дистрибутиве. Для распаковки архива необходима утилита unzip (в Astra Linux при минимальной установке отсутствует). Рассмотрим установку СЛК.
Создадим каталог для хранения установочных файлов
mkdir SLK && cd SLK
Загрузим архив с файлом:
Или
Astra
Установим unzip
Распакуем архивы с файлами
unzip licenceserver-3.0.30.10493.zip
В режиме суперпользователя и установим deb-пакет сервера
Альт
Перейдем в режим суперпользователя и установим rpm-пакет сервера
cd /home/[ИМЯ ПОЛЬЗОВАТЕЛЯ]/distrib/SLK/
apt-get install ./licenceserver-3.0.30-10493.x86_64.rpm
Ред ОС
В режиме суперпользователя и установим rpm-пакет сервера
При установке служба сервера автоматически активируется и запустится. Проверим статус сервера
Включение отладки раздельное
Для включения отладки требуется отредактировать файл службы, добавив туда ключ -debug, а затем перезапустить службу сервера:
Environment=SRV1CV8_DEBUG=-debug
Удаление установленной 1С
На примере 8.3.20.
Остановить службу сервера, ras
systemctl disable srv1cv8-8.3.20.2184@default.service
systemctl stop ras-8.3.20.2184.service
systemctl disable ras-8.3.20.2184.service
Запустить с правами суперпользователя скрипт деинсталляции
Обновление релиза 1С
Для обновления релиза 1С необходимо остановить службы сервера и ras текущей версии так же, как и в случае с удалением, а затем установить новую версию.
Настройки службы (порты и путь к данным кластера) необходимо сделать такими же, как и настройки старой версии.
Установка PostgreSQL
Перейдем к установке сервера баз данных PostgreSQL. Следует отметить, что оригинальный PostgreSQL не подходит для работы с 1С и требуется использовать доработанную версию СУБД, например PostgreSQL с патчами от 1С или PostgresPRO.
В репозиториях Альт Линукс и Ред ОС присутствуют версии Postgres, предназначенные для работы с 1С, установим их. Для Astra Linux используем версию Postgres с патчами 1С, подготовленную командой PostgresPRO (получить подробную инструкцию можно пройдя короткий опрос на сайте 1c.postgres.ru ). При необходимости этот способ можно использовать и для других ОС.
Альт Линукс
Перейдем в режим суперпользователя
Установим пакеты postgres
Инициализируем базу данных
Запустим службу
Ред ОС
Установим пакеты postgres
postgresql-1c-libs postgresql-1c-plperl postgresql-1c-plpython3 postgresql-1c-pltcl postgresql-1c-server
Установим пароль системному пользователю postgres
От имени пользователя postgres инициализируем базу данных
/usr/pgsql-14/bin/initdb
exit
Запустим службу
Astra
Получаем скрипт подключения репозитория
Делаем исполняемым и запускаем
sudo ./pgpro-repo-add.sh
Устанавливаем пакет postgres
Управление БД
Управлять базами данных будем при помощи консольной утилиты psql. Изначально для СУБД создан один суперпользователь с именем postgres. Следует отметить, что способы авторизации под ним в различных сборках PostgreSQL могут отличаться. Настройки безопасности хранятся в конфигурационном файле pg_hba.conf в каталоге программы. В случае с Альт Линукс и Ред ОС он изначально содержит запись:
Это позволяет авторизоваться в psql с именем postgres под любым пользователем ОС командой:
В случае с Astra Linux и пакетом postgrespro-1c-14 запись имеет вид:
Поэтому войти в psql можно только под системным пользователем postgres, пароль:
Установим пароль системному пользователю postgres
От имени пользователя postgres запустим psql
psql
Для удобства создадим отдельного пользователя СУБД usr1cv8 с правом создания баз данных
Проверить список пользователей можно командой
Выход из psql осуществляется командой
Воспользуемся утилитой rac для создания информационной базы.
Узнаем ID кластера
Создаем базу
b-user=usr1cv8 --db-pwd=[ПАРОЛЬ usr1cv8] --cluster=[ID КЛАСТЕРА] localhost:2545
Выведем список баз в кластере
В ответ получим
name : testdb_2540
descr :
Включим возможность серверу выдавать лицензии (необходимо, в частности, для работы веб-клиента)
pwd=[ПАРОЛЬ usr1cv8] --license-distribution=allow localhost:2545
Оптимизация postgres со сравнительными цифрами
Postgres имеет множество параметров работы и после установки программы им присваиваются значения по-умолчанию. Стандартные значения не являются оптимальными, поэтому в связке с 1С настоятельно рекомендуется изменить некоторые из них.
Рекомендуемые значения можно взять из статей на ИТС:
- https://its.1c.ru/db/metod8dev/content/5825/hdoc,
- https://its.1c.ru/db/metod8dev#content:5866:hdoc.
Посмотреть все текущие настройки можно например в pg_admin с помощью такого запроса к динамическому представлению pg_settings:
SELECT SOURCE, --text Источник текущего значения параметра sourcefile, --text Файл конфигурации, в котором было задано текущее значение (NULL для значений, полученных не из файлов конфигурации, или при чтении этого поля не суперпользователем); полезно при использовании указаний include в файлах конфигурации category, --text Логическая группа параметра name, --text Имя параметра конфигурации времени выполнения vartype, --text Тип параметра (bool, enum, integer, real или string) --setting, --text Текущее значение параметра --unit, --text Неявно подразумеваемая единица измерения параметра setting || CASE WHEN unit IS NULL THEN '' ELSE ' (' || unit || ')' END AS setting, --min_val, --text Минимальное допустимое значение параметра (NULL для нечисловых значений) --max_val, --text Максимально допустимое значение параметра (NULL для нечисловых значений) --enumvals, --text[] Допустимые значения параметра-перечисления (NULL для значений не перечислений) CASE WHEN enumvals IS NULL THEN min_val|| ' - ' ||max_val ELSE concat(enumvals) END AS vals, boot_val, --text Значение параметра, устанавливаемое при запуске сервера, если параметр не устанавливается другим образом reset_val, --text Значение, к которому будет сбрасывать параметр команда RESET в текущем сеансе --short_desc, --text Краткое описание параметра --extra_desc, --text Дополнительное, более подробное, описание параметра short_desc || CASE WHEN extra_desc IS NULL THEN '' ELSE '; ' || extra_desc END AS DESC, context, --text Контекст, в котором может задаваться значение параметра sourceline, --integer Номер строки в файле конфигурации, в которой было задано текущее значение (NULL для значений, полученных не из файлов конфигурации, или при чтении этого поля не суперпользователем) pending_restart --boolean true, если значение изменено в файле конфигурации, но требуется перезапуск; в противном случае — false. FROM pg_settings ORDER BY SOURCE, sourcefile, category, name LIMIT 500
Подробнее об этом можно почитать в документации postgres postgrespro.ru/docs/postgresql/11/view-pg-settings.
Как правило, параметры задаются в конфигурационном файле postgresql.conf, который находится в каталоге программы.
В подтверждение рекомендации изменения базовых параметров мы провели небольшой эксперимент. На одном из тестовых серверов решили вернуть базовое значение параметра shared_buffers, уменьшив его с установленного значения 24 ГБ до стандартных 128 МБ.
Согласно документации:
- shared_buffers (integer) — Задаёт объём памяти, который будет использовать сервер баз данных для буферов в разделяемой памяти. По умолчанию это обычно 128 мегабайт (12 8MB), но может быть и меньше, если конфигурация вашего ядра накладывает дополнительные ограничения (это определяется в процессе initdb). Это значение не должно быть меньше 128 килобайт. (Этот минимум зависит от величины BLCKSZ.) Однако для хорошей производительности обычно требуются гораздо большие значения. Задать этот параметр можно только при запуске сервера.
Для эксперимента мы взяли достаточно «тяжелый» отчет, который использует большое количество данных, и выполнили его с периодом за год, без иных отборов.
При этом:
- замеряли время первого и второго выполнения;
- для нивелирования влияния кэша операционной системы, перед каждым выполнением очищали его командой
sync; echo 3 > /proc/sys/vm/drop_caches
В итоге получили такие цифры:
Как и ожидалось мы видим, что при первом запуске время выполнения практически не отличается, т. к. кэш ещё не «прогрет», и по сути не используется. А вот на втором и последующих выполнениях отчета при достаточном объеме буферного кэша время сократилось на ~3с (25%), в то время как стандартная настройка по сути заставила каждый раз считывать необходимые данные с диска.
Установка веб-сервера и публикация базы на веб-сервере
Для публикации на веб-сервере будем использовать Apache, поскольку публикация баз 1С:Предприятия в Linux возможна только на нем.
Альт Линукс
В режиме суперпользователя установим Apache и активируем службу сервера
apt-get install apache2
systemctl enable httpd2.service --now
systemctl status httpd2.service
Создадим символьную ссылку на исполняемый файл веб-сервера для возможности его вызова командой httpd. Без этой ссылки запуск утилиты для публикации базы webinst завершится с ошибкой.
Перейдем в каталог 1С:Предприятия и запустим утилиту webinst
Предоставим права на чтение файла default.vrd всем пользователям, без этих прав получим ошибку при обращении к нашей базе по веб-ссылке:
Перезапустим службу веб-сервера Apache
Ред ОС
Устанавливаем веб-сервер и активируем службу
sudo systemctl enable httpd --now
systemctl status httpd
Перейдем в каталог 1С:Предприятия и запустим утилиту webinst
Изменим настройки SELinux, без данного изменения получим ошибку при обращении к нашей базе по веб-ссылке:
Вместо
укажем
Далее необходимо перезагрузить сервер.
Astra
sudo apt install apache2
systemctl status apache2
cd /opt/1cv8/x86_64/8.3.21.1644/
sudo ./webinst -apache24 -wsdir testdb_2540 -dir /var/www/testdb_2540 -connstr "Srvr=astra:2541;Ref=testdb_2540;" -confPath /etc/apache2/apach
e2.conf
sudo systemctl restart apache2
После выполнения указанных действий созданная информационная база должны быть доступна в браузере по адресу:
[АДРЕС СЕРВЕРА]/testdb_2540
При подключении к информационной базе через ярлык запуска 1С:Предприятия с типом подключения «На сервере 1С:Предприятия» необходимо использовать не IP-адрес сервера, а его имя, в противном случае не получится подключиться к серверу.
Загрузим в созданную базу данных демо конфигурации «1С:УНФ 8. Управление предприятием общепита». Данная конфигурация использует защиту СЛК, поэтому при запуске потребуется указать параметры сервера с подходящими ключами защиты. После подключения к СЛК база готова к работе.
Продолжение цикла экспертных статей об использовании Linux для 1С
В этой статье в фокусе нашего внимания оказались российские сборки Linux, но так же мы обновили и инструкции по разворачиванию сервера 1С для актуальных на момент написания статьи релизов.
Мы и дальше продолжим знакомить вас с особенностями работы в линукс-системах, будем обращать внимание на важные моменты развертывания инфраструктуры с акцентом на то, что относится к 1С, постараемся углубляться в важные с точки зрения производительности и удобства работы аспекты.
От экспертов «1С-Рарус»