Жизнь без Windows, установка серверов на Arch, часть1

13.09.22

Администрирование - Linux

Пошаговое описание установки сервера 1С 8.3.21 и Postgresql 14 на Arch Linux (актуальность лето 2022)

Преамбула: холивары на тему "Арч в продакшн" попрошу изливать в специализированные темы на форуме. Данная статья никоим образом не призывает использовать указанный дистрибутив, но написана исключительно для тех, кто взвесив все "за" и "против" самостоятельно пришёл к такому решению, либо хочет оценить его сложность в сравнении с другими вариантами.

Предполагается, что читатель немного подготовлен и уже научился устанавливать простые дистрибутивы типа Ubuntu, Mint, Астра и т.д. с графическим окружением, а также смог установить и успешно запустить клиента 1С. Статей на эту тему полно, расписывать смысла нет.

Установка Arch Linux

Инструкция будет "по верхам", раскрывающая отклонения от установки по умочанию. Рекомендую для начала потренироваться в виртуальном окружении, для этого установите QEMU/KVM и virt-manager. Подробный порядок установки QEMU/KVM для своего дистрибутива вы легко найдете в сети, ничего сложного там нет. При выборе железа для виртуального сервера установите контроллер VirtIO SCSI и диск типа SCSI, сетевая карта тоже VirtIO. Удалите ненужные для сервера устройства Планшет и Звук:

 

* В боевом окружении вы скорее всего будете использовать несколько дисков и партиций, особенно для СУБД Postgres, но в данной статье всё будет на одном небольшом диске тренировочной машины.

С недавних пор в Arch вернулся скрипт установки, потому порог вхождения в данный дистрибутив стал не сложнее обычных. После загрузки с установочного образа запускаем установщик:

# archinstall
 

Список того что я поменял:

  • Mirror region указал Russia (зеркало репозиториев, необязательно)
  • Выбрал локаль ru_RU.UTF8
  • Разметку диска автоматически на ext4
  • Поменял Hostname на server2
  • Добавил пользователя user1 и дал ему права sudo
  • Выбрал профиль Server, включил sshd
  • Выбрал ядро linux-zen вместо стокового (если политика ИБ требует, то hardened)
  • Дополнительные пакеты mc и base-devel (необязательно, можно установить и позже если надо)
  • Настроил сетевую карту Manual configuration - DHCP
  • Установил Timezone на московское время

Теперь можно начать установку нажав Install. После установки уберите установочный диск, и заготовку сервера на этом считаем завершенным.

* Конечно можно еще установить и настроить firewall, включить selinux, шифрование дисков, настроить очередь дисков, энергосбережение cpupower, сделать много других усовершенствований и оптимизаций, но это тема отдельных больших статей и касаться здесь этих тем я не буду.

Для выяснения адреса тут же в графической консоли virt-manager логинимся на сервер созданным при установке пользователем user1 и набираем команду ip address:

 

Теперь окно virt-manager можно закрыть и в дальнейшем работа с сервером осуществляется только через удаленную консоль ssh. Наберите в консоли своего рабочего компьютера следующую команду (при первом заходе набираем yes) и далее пароль для user1:

ssh user1@10.1.0.230
 

 

Установка сервера 1С 8.3.21

Скачайте и распакуйте у себя на компьютере полный дистрибутив платформы x64 для Linux. Чтобы копировать файлы с линукса на линукс никакие серверы samba или ftp поднимать и настраивать не требуется, просто зайдите на своем компе в каталог с требуемым файлом и воспользуйтесь командой scp:

$ scp setup-full-8.3.21.1393-x86_64.run user1@10.1.0.230:/home/user1

Файл будет скопирован через протокол ssh в домашний каталог пользователя user1 на сервере. Заходим на сервер с помощью ssh и запускаем установщик с привилегией sudo:

$ cd /home/user1
$ sudo ./setup-full-8.3.21.1393-x86_64.run

Нам нужно установить только сервер, веб-расширение (если требуется), и обязательно администрирование, нажимая в ответ на вопросы 'y' или 'n':

 

После завершения все необходимые файлы установились в каталог /opt/1cv8. Это основной каталог программ 1С в Linux, аналог C:\Program Files\1cv8, для изменения файлов в нём требуются административные права, в Linux это команда sudo.
Для запуска агента сервера 1С в качестве службы необходимо провести несложные манипуляции.

Копируем файл описания службы в системный каталог с новым именем, с этим именем и будет запускаться служба (в команде версия платформы указывается актуальная, в данном случае это 8.3.21.1393), имя службы у нас будет srv1cv8:

$ sudo cp /opt/1cv8/x86_64/8.3.21.1393/srv1cv8-8.3.21.1393@.service /usr/lib/systemd/system/srv1cv8.service

Если требуется режим отладки то редактируем скопированный файл (редактор nano не был установлен, поэтому сначала установим его):

$ sudo pacman -S nano
$ sudo nano /usr/lib/systemd/system/srv1cv8.service

Находим следующую строчку и дописываем в конец -debug

Environment=SRV1CV8_DEBUG=-debug

Жмем Ctrl-O, Enter, Ctrl-X для выхода из редактора. Разрешаем автозапуск службы командой:

$ sudo systemctl enable srv1cv8
Created symlink /etc/systemd/system/multi-user.target.wants/srv1cv8.service U94; /usr/lib/systemd/system/srv1cv8.service.

Запускаем:

$ sudo systemctl start srv1cv8

Проверяем статус службы:

[user1@server2 ~]$ systemctl status srv1cv8
`79; srv1cv8.service - 1C:Enterprise Server 8.3 (8.3.21.1393) ()
     Loaded: loaded (/usr/lib/systemd/system/srv1cv8.service; enabled; vendor preset: disabled)
     Active: active (running) since Fri 2022-07-08 15:14:19 MSK; 1s ago
   Main PID: 1325 (ragent)
      Tasks: 82 (limit: 4687)
     Memory: 59.2M
        CPU: 245ms
     CGroup: /system.slice/srv1cv8.service
             _00;^72;1325 /opt/1cv8/x86_64/8.3.21.1393/ragent -d /home/usr1cv8/.1cv8/1C/1cv8 -port 1540 -regport 1541 -range 1560:1591 -seclev 0 ->
             ^92;^72;1338 /opt/1cv8/x86_64/8.3.21.1393/rmngr -port 1541 -host server2 -range 1560:1591 -d /home/usr1cv8/.1cv8/1C/1cv8/ -debug -tcp>

Если у вас такой же вывод, то поздравляю! Сервер 1С запущен и работает. Но этого нам недостаточно, ведь еще нужно администрировать кластер, а в среде линукс это можно делать только с помощью службы ras.

Создайте с помощью nano или mc новый файл конфигурации службы /usr/lib/systemd/system/srv1cv8-ras.service и введите в него следующее содержание:

[Unit]
Description=1C:Enterprise Remote Administration Service
After=network.target
Requires=network.target
[Service]
Type=simple
ExecStart=/opt/1cv8/x86_64/8.3.21.1393/ras cluster --port=1545
KillSignal=SIGINT
PrivateTmp=true
Restart=on-failure
RestartSec=5
User=usr1cv8
Group=grp1cv8
[Install]
WantedBy=multi-user.target

При необходимости поменяйте порт на другой номер, отличный от 1545.

Включим, запустим и проверим статус службы:

[user1@server2 ~]$ sudo systemctl enable srv1cv8-ras
Created symlink /etc/systemd/system/multi-user.target.wants/srv1cv8-ras.service U94; /usr/lib/systemd/system/srv1cv8-ras.service.
[user1@server2 ~]$ sudo systemctl start srv1cv8-ras
[user1@server2 ~]$ sudo systemctl status srv1cv8-ras
`79; srv1cv8-ras.service - 1C:Enterprise Remote Administration Service
     Loaded: loaded (/usr/lib/systemd/system/srv1cv8-ras.service; enabled; vendor preset: disabled)
     Active: active (running) since Fri 2022-07-08 15:30:53 MSK; 5s ago
   Main PID: 24467 (ras)
      Tasks: 12 (limit: 4687)
     Memory: 17.3M
        CPU: 21ms
     CGroup: /system.slice/srv1cv8-ras.service
             ^92;^72;24467 /opt/1cv8/x86_64/8.3.21.1393/ras cluster --port=1545

июл 08 15:30:53 server2 systemd[1]: Started 1C:Enterprise Remote Administration Service.
июл 08 15:30:53 server2 ras[24467]: 1C:Enterprise 8.3 (x86-64)  (8.3.21.1393) Remote Administration Server started. Ctrl+C to exit.
[user1@server2 ~]$ 

После всех настроек на всякий случай перезагрузим весь сервер и снова проверим статус всех служб. Также проверим какие порты слушает наш сервер:

[root@server2 user1]# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      345/sshd: /usr/bin/ 
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      337/systemd-resolve 
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN      337/systemd-resolve 
tcp        0      0 127.0.0.54:53           0.0.0.0:*               LISTEN      337/systemd-resolve 
tcp        0      0 0.0.0.0:1560            0.0.0.0:*               LISTEN      843/rphost          
tcp        0      0 0.0.0.0:1541            0.0.0.0:*               LISTEN      373/rmngr           
tcp        0      0 0.0.0.0:1540            0.0.0.0:*               LISTEN      344/ragent          
tcp        0      0 0.0.0.0:1545            0.0.0.0:*               LISTEN      343/ras             
tcp6       0      0 :::22                   :::*                    LISTEN      345/sshd: /usr/bin/ 
tcp6       0      0 :::5355                 :::*                    LISTEN      337/systemd-resolve 
tcp6       0      0 :::1560                 :::*                    LISTEN      843/rphost          
tcp6       0      0 :::1541                 :::*                    LISTEN      373/rmngr           
tcp6       0      0 :::1540                 :::*                    LISTEN      344/ragent          
udp        0      0 0.0.0.0:5355            0.0.0.0:*                           337/systemd-resolve 
udp        0      0 0.0.0.0:1541            0.0.0.0:*                           373/rmngr           
udp        0      0 0.0.0.0:1560            0.0.0.0:*                           843/rphost          
udp        0      0 0.0.0.0:34357           0.0.0.0:*                           344/ragent          
udp        0      0 127.0.0.54:53           0.0.0.0:*                           337/systemd-resolve 
udp        0      0 127.0.0.53:53           0.0.0.0:*                           337/systemd-resolve 
udp        0      0 10.1.0.230:68           0.0.0.0:*                           264/systemd-network 
udp6       0      0 :::37989                :::*                                843/rphost          
udp6       0      0 :::5355                 :::*                                337/systemd-resolve 
udp6       0      0 :::1541                 :::*                                373/rmngr           
udp6       0      0 :::1560                 :::*                                843/rphost          
udp6       0      0 :::57572                :::*                                344/ragent          
[root@server2 user1]# 

Для администрирования кластера создаем у себя на компьютере с помощью конфигуратора новую пустую файловую базу 1С и открываем его тонким клиентом, необходимо включить Функкции для технического специалиста и найти обработку Управление серверами

 

 

Готово! Уже можно работать с отдельным сервером СУБД.

Во второй части будет установка Postgresql 14 на этот же сервер.

arch linux postgres postgresql установка настройка 8.3.21

См. также

Linux Программист Бесплатно (free)

При многолетней эксплуатации 1С на Windows и MS SQL в базе накапливаются не самые оптимальные запросы, COM-объекты и скрипты, зависящие от ОС. Из-за этого процесс перехода на PostgreSQL и переноса сервера 1С на Linux неизбежно осложняется длительным исправлением кода и оптимизацией запросов. Расскажем о том, как с задачей такого рефакторинга справились в компании Avito.

13.11.2024    4535    klimat12    15    

25

Облачные сервисы, хостинг Linux Тестирование QA Сервера Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Завершающая публикация цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием, отказоустойчивостью и прочая, прочая... В этой статье мы определяемся с быстродействием системы, проводим нагрузочное тестирование и отпускаем ее в свободное плавание (зачеркнуто) выпускаем ее в продуктовый контур, где, конечно же, придется отлавливать ошибки, мониторить состояние и т.п.

31.10.2024    1308    capitan    0    

0

Облачные сервисы, хостинг Linux Сервера Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Одна из завершающих публикаций цикла "В облако на работу:.. Рецепты от Капитана", в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием и прочая, прочая... На закуску разбираемся с отказоустойчивостью. В этой публикации для серверов 1С заодно попробуем подобно сериалу «Разрушители легенд» подтвердить или опровергнуть пару устойчивых мифов о требованиях назначения функциональности.

18.10.2024    1701    capitan    5    

12

Linux Системный администратор Программист Стажер Платформа 1С v8.3 Россия Бесплатно (free)

1C > Postgres > (Linux) > мы (=проблемы в 2024). Информация будет полезна начинающим 1С программистам (и сисадминам). Без ИТС. Часть 1.

01.07.2024    5167    AlOkt    30    

19

Сканер штрих-кода Linux Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Драйвер сканера штрих-кодов в 1С выполнен по технологии NativeAPI, следовательно, поддерживается возможность работы в Linux, но сама настройка оказалось не такой простой, как в Windows, понадобились навыки администрирования linux. В данной публикации представлен опыт установки сканера Mercury CL-2200 P2D BT в ALT Linux.

18.06.2024    1344    MOleg82    1    

9

Облачные сервисы, хостинг Linux Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Одна из завершающих публикаций цикла "В облако на работу:.. Рецепты от Капитана" в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием и прочая прочая... Это основное блюдо, на закуску разберемся с отказоустойчивостью. В этой публикации для PostgreSQL, заодно попробуем сделать это по новому.

17.06.2024    7644    capitan    18    

40

Сервера Linux Системный администратор Россия Бесплатно (free)

Тема Ubuntu, PostgreSQL и 1С уже избитая. Но все же, следуя инструкциям всех мануалов, пришлось потратить около 3-х дней. И как результат — готовые скрипты для установки сервера 1С и PostgreSQL на свежей Ubuntu за 5 минут.

14.06.2024    3871    user1389975    15    

38
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 1324 08.07.22 20:57 Сейчас в теме
Вариант под ubuntu https://infostart.ru/1c/articles/1613181/, с ключами для 8.3.21 разобрался. По PG так же готовая установка, возможно под arch адаптировать нужно
2. App0st0l 31 09.09.22 17:24 Сейчас в теме
Запускаем:

$ sudo systemctl enable srv1cv8


Здесь наверное $ sudo systemctl start srv1cv8
3. cdiamond 235 13.09.22 07:19 Сейчас в теме
4. onec.developer 181 17.02.23 08:48 Сейчас в теме
Где обещанная вторая часть? =)
5. cdiamond 235 22.03.24 11:46 Сейчас в теме
все новые статьи читайте на моем личном сайте almaz-sharipov.ru, т.к. не хочу ограничивать себя в высказываниях в адрес 1С и подставлять хостера или работодателя.
Оставьте свое сообщение