Рабочее место 1С на Linux через WSL. Часть 6 - Импортозамещение: Перенос окружения 1С на Astra Linux
В предыдущих лабораторных работах мы развернули и настроили рабочее место разработчика 1С на базе дистрибутива Ubuntu в WSL, автоматизировали запуск служб, опубликовали веб-сервер и настроили отладку по протоколу HTTP. Однако в рамках стратегии импортозамещения и требований регуляторов реальные продуктовые и тестовые конвейеры в российских компаниях и госучреждениях всё чаще разворачиваются на базе отечественных операционных систем. Наиболее популярным выбором в госсекторе и крупных корпорациях является Astra Linux (в частности, сертифицированная версия Special Edition). В этой статье мы подробно рассмотрим процесс переноса нашего настроенного окружения «Сервер 1С + СУБД PostgreSQL» на отечественную ОС Astra Linux. Мы научимся импортировать Astra Linux в среду WSL в виде собственного дистрибутива, разбираться со спецификой установки зависимостей в Astra Linux и адаптировать системные службы.
Теоретическая часть
Особенности Astra Linux: архитектура и семейства Astra Linux - это семейство операционных систем, построенное на базе дистрибутива Debian. Это означает, что для работы с пакетами здесь используются те же привычные инструменты, что и в Ubuntu: пакетный менеджер dpkg, утилита управления пакетами apt и формат пакетов .deb. Однако Astra Linux имеет ряд критически важных отличий, которые необходимо учитывать при развертывании инфраструктуры 1С:
- Режимы безопасности (для Special Edition): В Astra Linux Special Edition встроен собственный модуль безопасности Parsec, который реализует мандатный контроль доступа (МКД) и контроль целостности. Для полноценного функционирования сервера 1С и PostgreSQL в защищенных режимах требуется тонкая настройка мандатных контекстов процессов. В рамках этой лабораторной работы мы будем ориентироваться на Common Edition (релиз «Орел») или Special Edition в режиме базовой защиты (0-й уровень защищенности «Орел»), где мандатные ограничения отключены, чтобы не перегружать конфигурацию разработчика защищенными атрибутами.
- Замороженная пакетная база: Версии библиотек в стабильных репозиториях Astra Linux зафиксированы на определенных срезах Debian. Из-за этого стандартные DEB-пакеты СУБД PostgreSQL и Платформы 1С, скачанные с официального сайта 1С, могут конфликтовать со штатными системными библиотеками или требовать более старых версий (например, libicu), которых уже нет в новых Ubuntu, но которые присутствуют в Astra Linux.
- Графическое окружение Fly: Astra Linux использует легковесную графическую оболочку Fly. При запуске графических приложений 1С или EDT через WSLg в Windows 11 графическое окружение Fly не требуется, однако знание структуры Fly и его оконного менеджера полезно при работе на полноценных физических или виртуальных машинах с этой ОС. Импорт сторонних дистрибутивов в WSL (wsl --import) Хотя Astra Linux отсутствует в стандартном Microsoft Store для WSL, архитектура WSL позволяет запустить абсолютно любой дистрибутив Linux. Для этого используется механизм импорта tar-архива корневой файловой системы (rootfs): wsl --import <Имя_Дистрибутива> <Путь_Установки> <Путь_К_Архиву_tar> Где архивом корневой файловой системы может выступать официальный docker-образ Astra Linux или rootfs, экспортированный из минимальной виртуальной машины.
Пошаговая инструкция
Шаг 1. Подготовка и импорт rootfs Astra Linux в WSL
Для создания собственного дистрибутива Astra Linux в WSL нам понадобится архив файловой системы. Мы можем получить его, запустив официальный контейнер Astra Linux в Docker и экспортировав его файловую систему, либо скачав готовый rootfs-архив.
- Откройте командную строку Windows cmd или PowerShell.
- Создайте каталог для хранения дистрибутива:
mkdir C:\WSL\Astra
- Выполните импорт архива (предположим, что файл astra-rootfs.tar скачан в каталог C:\TMP_C):
wsl --import Astra C:\WSL\Astra C:\TMP_C\astra-rootfs.tar --version 2
- Убедитесь, что дистрибутив успешно импортирован, запустив команду:
wsl --list --verbose
- Запустите созданный дистрибутив Astra Linux:
wsl -d Astra
По умолчанию вы зайдете под пользователем root. Сразу же создадим стандартного пользователя (например, developer) и настроим для него права sudo для безопасности и совместимости со скриптами автозапуска: # Создание пользователя
useradd -m -s /bin/bash developer
passwd developer
# Добавление в группу sudo usermod -aG sudo developer
Шаг 2. Подключение репозиториев и обновление системы
По умолчанию в импортированном минимальном rootfs-архиве могут отсутствовать пути к официальным репозиториям Astra Linux. Отредактируем файл /etc/apt/sources.list.
- Откройте файл в редакторе nano:
sudo nano /etc/apt/sources.list
- Добавьте строки официального интернет-репозитория Astra Linux Common Edition (или соответствующего релиза Special Edition): deb http://dl.astralinux.ru/astra/stable/orel/repository/ orel main contrib non-free
- Сохраните изменения (Ctrl+O, Enter) и выйдите (Ctrl+X).
- Обновите индекс пакетов:
sudo apt update
Шаг 3. Установка зависимостей СУБД и Платформы 1С
Поскольку Astra Linux базируется на пакетной базе Debian, установка зависимостей проходит стабильно. Для 1С и PostgreSQL нам понадобятся библиотеки, аналогичные тем, что мы ставили в Ubuntu. Выполните команду установки основных системных утилит и библиотек:
sudo apt install -y libwebkitgtk-3.0-0 libMagickWand-6.Q16 libfontconfig libfreetype6
libgsf-1-common libglib2.0-0 unixodbc libkrb5-3 libgssapi-krb5-2
Примечание: Обратите внимание, что пакеты в Astra Linux могут иметь другие постфиксы версий по сравнению со свежей Ubuntu (например, libglib2.0-0 вместо libglib2.0). Также установим пакет со шрифтами Microsoft Core Fonts для корректного формирования PDF и печатных форм в 1С:
sudo apt install -y ttf-mscorefonts-installer
fc-cache -fv
Шаг 4. Установка PostgreSQL (сборка для 1С)
Для корректной совместной работы платформы 1С и PostgreSQL под управлением отечественной ОС воспользуемся специализированной DEB-сборкой СУБД от компании 1С или Postgres Pro.
- Скопируйте DEB-пакеты PostgreSQL из локальной папки Windows в каталог Astra Linux:
mkdir -y ~/DISTR/Postgres
cp /mnt/c/TMP_C/postgresql_11* ~/DISTR/Postgres/
- Перейдите в каталог с пакетами и выполните их установку:
cd ~/DISTR/Postgres
sudo apt install ./*.deb
- Запустите службу PostgreSQL:
sudo service postgresql start
- Задайте пароль суперпользователя базы данных postgres:
sudo su postgres
psql -c "ALTER USER postgres WITH PASSWORD '1111';"
exit
Шаг 5. Установка и запуск Сервера 1С:Предприятие
Установка сервера 1С выполняется аналогично Ubuntu, так как Astra Linux использует ту же систему пакетов .deb.
- Создайте каталог для дистрибутива сервера 1С:
mkdir -p ~/DISTR/1C
cp /mnt/c/TMP_C/deb64_*.tar.gz ~/DISTR/1C/
cd ~/DISTR/1C
tar -xvf deb64_*.tar.gz
- Установите пакеты 1С в строгой последовательности (common, server, ws):
sudo apt install ./1c-enterprise83-common_*.deb ./1c-enterprise83-server_*.deb
./1c-enterprise83-ws_*.deb
- Включите режим отладки в конфигурационном файле /etc/init.d/srv1cv83, установив параметр SRV1CV8_DEBUG=1:
sudo nano /etc/init.d/srv1cv83
Найдите закомментированную строку #SRV1CV8_DEBUG и замените её на: SRV1CV8_DEBUG=1
- Запустите службу сервера 1С:
sudo service srv1cv83 start
Шаг 6. Настройка автозапуска в WSL для Astra Linux
Как и в работе №2, настроим беспрепятственный запуск системных служб без интерактивного ввода пароля sudo.
- Запустите редактирование файла sudoers:
sudo visudo
- Добавьте в конец файла разрешения для вашего пользователя (например, developer): developer ALL=(ALL) NOPASSWD: /usr/sbin/service postgresql * developer ALL=(ALL) NOPASSWD: /usr/sbin/service srv1cv83 *
- На хост-системе Windows настройте запуск через планировщик задач, используя аргумент: wsl.exe -d Astra -u developer sudo service postgresql start && sudo service srv1cv83 start
Практическое задание
Цель работы: Приобрести практический опыт импорта сторонних дистрибутивов в WSL, развертывания платформы 1С и СУБД PostgreSQL в среде Astra Linux, а также адаптации прав доступа. Задание:
- ☐ Выполните импорт rootfs Astra Linux в среду WSL под именем Astra с помощью утилиты wsl --import.
- ☐ Подключите официальный репозиторий Astra Linux Common Edition («Орел») и обновите списки пакетов.
- ☐ Установите необходимые пакеты зависимостей для Платформы 1С и СУБД PostgreSQL.
- ☐ Разверните связку сервера 1С:Предприятие и PostgreSQL из пакетов .deb.
- ☐ Инициализируйте СУБД, задайте пароль системного пользователя postgres равным 1111.
- ☐ Включите отладочный режим HTTP на сервере 1С.
- ☐ Проверьте статус служб с помощью команды service --status-all. Убедитесь, что процессы отображаются в Диспетчере задач Windows.
Проверьте себя
- На базе какого популярного дистрибутива Linux построена отечественная операционная система Astra Linux? Ответ: Astra Linux построена на пакетной базе дистрибутива Debian.
- Какой инструмент операционной системы Windows позволяет развернуть любой дистрибутив Linux (включая отечественные Astra Linux или Альт Линукс), отсутствующий в стандартном магазине Microsoft Store? Ответ: Консольная утилита WSL с параметром --import (команда wsl --import), которая позволяет импортировать образ файловой системы в виде архива .tar в WSL как полноценный дистрибутив.
- Почему при установке платформы 1С на Astra Linux рекомендуется использовать именно DEB-версии дистрибутивов 1С? Ответ: Так как Astra Linux базируется на Debian, она использует формат пакетов .deb и пакетный менеджер dpkg/apt. RPM-пакеты предназначены для систем Red Hat / CentOS / РЕД ОС.
- Какие особенности Astra Linux Special Edition следует учитывать при запуске 1С в режиме максимальной безопасности (высокие уровни защищенности)? Ответ: Модуль безопасности Parsec реализует жесткий мандатный контроль доступа и контроль целостности. Для промышленной эксплуатации процессов СУБД и 1С в таких режимах требуется тонкая настройка мандатных контекстов. Для сред разработки обычно используют базовый уровень защищенности («Орел»), где мандатные ограничения отключены.
- Как в Astra Linux, запущенной внутри WSL, настроить автоматический запуск сервера 1С и PostgreSQL при старте Windows? Ответ: С помощью настройки беспарольного доступа NOPASSWD в /etc/sudoers внутри дистрибутива Astra и создания задачи в Планировщике задач Windows, которая вызывает команду wsl.exe -d Astra -u <имя_пользователя> sudo service ... при входе пользователя или старте ОС.
Попробовать НОПик →
Проверить свой уровень бесплатно →