Как стать автором
Обновить

Обновляем платформу 1С на сервере под управлением Linux

Время на прочтение 6 мин
Количество просмотров 35K

Вступление

Здравствуйте, меня зовут Шилин Никита и в прошлом я довольно много работал разработчиком 1С, а так же выполнял сопутствующие задачи. В настоящий момент я всё больше занимаюсь управлением командой и исполняю функции CTO на производственном предприятии. Команда у нас небольшая, отдельного девопса нет, а системный администратор не должен заниматься настройкой сервера 1С используется для других целей. Одной из задач на текущий момент для меня является администрирование сервера 1С на базе Ubuntu и его окружения.

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

Действуя по этой методичке вы сможете обновить свою платформу в конце 2022 года, включить отладку на сервере и обновить свой веб-сервер. В отличие от большинства гайдов, работать будем с подсистемой systemd, вместо описанных везде init.d.

Проблематика

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

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

Окружение

Мы используем Ubuntu 20.04.2 LTS (x64) для сервера 1С.

Вторую такую же машину для веб-сервера + Apache 2.4 для самописной интеграции с Битрикс24 (веб-хуки) и публикаций / внутренних сервисов компании.
Так же терминальный сервер для пользователей под Windows Server 2019 Standard.

Все настройки будут происходить по SSH/WinSCP. Все команды, выполняемые в консоли выполняются от имени пользователя с полными правами (root).

Больше никакой воды, переходим к инструкции.

Инструкция по обновлению

[upd: добавлены картинки для установки платформы на Linux]

  1. Сделаем архивы всех боевых баз. Надеюсь, вы еще и проверяете что они работают. Мы проверяем.

  2. Скачаем нужный дистрибутив с сайта users.v8.1c. Когда перейдёте на страницу для выбора варианта своего дистрибутива вас неприветливо встретят 34 ссылки с вариантами клиентов и прочей информацией. Я прочитал и разобрался в них за вас: Выбираем "Технологическая платформа 1С:Предприятия (64-bit) для Linux".

  3. Создадим на сервере папку через WinSCP, загрузим в неё дистрибутив и распакуем через WinSCP.

  4. Идём в SSH-клиент, подключаемся к серверу 1С, переходим в папку с распакованным дистрибутивом, запускаем единый установочный файл:
    ./setup-full-8.3.22.1709-x86_64.run

    Выбираем русский язык.
    Платформу не ставим.
    Клиенты не ставим.
    Сервер ставим.
    Модули расширения веб-сервера нам тут тоже не понадобятся.
    Средства администрирования на ваше усмотрение (мы ставим).
    Интерфейсы на различных языках нам не нужны, кроме русского.
    Дополнительные функции и средства опционально (мы ставим).

    Соглашаемся, соглашаемся, соглашаемся, готово.

    Картинки под спойлером, если возникли сложности.
    Выбираем русский язык
    Выбираем русский язык
    Платформу не ставим
    Платформу не ставим
    Клиенты не ставим
    Клиенты не ставим
    Сервер ставим
    Сервер ставим
    Модули расширения веб-сервера не ставим
    Модули расширения веб-сервера не ставим
    Средства администрирования на ваше усмотрение (мы ставим)
    Средства администрирования на ваше усмотрение (мы ставим)
    Интерфейсы на различных языках: мы оставляем только русский(почему шакалит картинку я так и не понял)
    Интерфейсы на различных языках: мы оставляем только русский
    (почему шакалит картинку я так и не понял)
    Дополнительные функции и средства опционально (мы ставим).
    Дополнительные функции и средства опционально (мы ставим).
    Соглашаемся, соглашаемся, готово.

  5. Останавливаем службу сервера текущей версии платформы:
    systemctl stop srv1cv8-8.3.21.1302@default.service

  6. Отключаем службу:
    systemctl disable srv1cv8-8.3.21.1302@

  7. Удаляем старую платформу:
    cd /opt/1cv8/x86_64/8.3.21.1302/
    ./uninstaller-full

  8. Регистрируем новую службу (тут надо использовать полный путь):
    systemctl link /opt/1cv8/x86_64/8.3.22.1709/srv1cv8-8.3.22.1709@.service

  9. Добавляем новую службу в автозагрузку:
    systemctl enable srv1cv8-8.3.22.1709@

  10. Запускаем службу и проверяем что она работает, перезагружаем сервер:
    systemctl start srv1cv8-8.3.22.1709@default.service
    systemctl status srv1cv8-8.3.22.1709@default.service
    reboot

  11. Проверяем что служба перезапустилась при старте сервера.

    На этом с сервером 1С - всё! Идём дальше.

  12. Скачиваем новую платформу для Windows и ставим её на терминальник (установку платформы на Windows, я надеюсь, все осилят без подсказок. В любом случае есть достаточно статей на эту тему).

  13. Удаляем старую платформу с терминального сервера.

  14. Перезагружаем терминальный сервер.

  15. Проверяем что все заработало, пробуем войти в наши базы.

  16. Регистрируем новую утилиту администрирования серверов и проверяем что можем запустить её, подключиться к кластеру.

  17. Проверяем что отладка не работает. Плачем. Идём настраивать отладку. Для этого надо отредактировать unit-файл службы на сервере 1С.

    Останавливаем службу:
    systemctl stop srv1cv8-8.3.22.1709@default.service


    Идём туда, где лежит файл конфигурации:
    сd /opt/1cv8/x86_64/8.3.22.1709/

    Открываем его:
    nano srv1cv8-8.3.22.1709@.service

    Ищем строку Environment=SRV1CV8_DEBUG= и добавляем в конец -http чтобы получилось:
    Environment=SRV1CV8_DEBUG=-http

    Тут стоит уточнить: вы можете использовать флаг -tcp вместо -http, но у нас стоит NAT и добиться отладки по tcp мне пока не удалось.
    Сохраняем, выходим.

    Перечитываем новую конфигурацию:
    systemctl daemon-reload

    Запускаем службу:
    systemctl start srv1cv8-8.3.22.1709@default.service

    Проверяем статус
    systemctl status srv1cv8-8.3.22.1709@default.service

    Должны увидеть следующее:
    CGroup: /system.slice/system-srv1cv8\x2d8.3.22.1709.slice/srv1cv8-8.3.22.1709@default.service
    ├─3266 /opt/1cv8/x86_64/8.3.22.1709/ragent -d /home/usr1cv8/.1cv8/1C/1cv8 -port 1540 -regport 1541 -range 1560:1591 -seclev 0 -pingPeriod 1000 -pingTimeout 5000 -http

    ├─3296 /opt/1cv8/x86_64/8.3.22.1709/rmngr -port 1541 -host server1c.local -range 1560:1591 -d /home/usr1cv8/.1cv8/1C/1cv8/ -debug -http -clstid bd0a303e-c762-417f-b310-dc3aa2e80fca

    ├─3400 /opt/1cv8/x86_64/8.3.22.1709/dbgs --port=1550

    └─3401 /opt/1cv8/x86_64/8.3.22.1709/rphost -range 1560:1591 -reghost server1c.local -regport 1541 -pid decb62bb-5dbe-42b7-a6c6-bd08c442d996 -debug -http

    Тут мы хотим видеть флаги -http, -debug, а так же процесс сервера отладки dbgs.

  18. Проверяем что отладка запустилась — ставим точку останова в процедуре ПриСозданииНаСервере() в управляемой форме и запускаем её.

  19. Танцуем, потому что мы великолепны!

  20. Идём на веб сервер. Повторяем историю с WinSCP, заливаем дистрибутив, распаковываем, переустанавливаем файлы платформы для веб-сервера.
    Выбираем русский язык, ставим платформу и модули расширения веб-сервера, от остального отказываемся.

  21. Удаляем старую платформу:
    cd /opt/1cv8/x86_64/8.3.21.1302/
    ./uninstaller-full

  22. Останавливаем сервис апача:
    service apache2 stop

  23. Идём в конфигурационный файл и меняем ссылки на файлы расширения веб-сервера:
    cd /etc/apache2/
    nano apache2.conf

    Находим строку
    LoadModule _1cws_module "/opt/1cv8/x86_64/8.3.21.1302/wsap24.so"

    и меняем в ней версию платформы на 8.3.22.1709.
    Сохраняем, закрываем.

  24. Запускаем сервис, проверяем что запустился без ошибок:
    service apache2 start
    service apache2 status

  25. Проверяем что интеграция взлетела. Для этого обновим комментарий в тестовой сделке в битриксе и проверим что он обновится в 1С.

  26. Удаляем установочные файлы платформы на сервере, на веб-сервере и на терминальнике.

  27. После того, как 1С перешла на работу с единым файлом для установки всего-всего, к нам на сервер заодно будет установлен gnome, который нам, например не нужен. Отказаться нельзя. Поэтому мы удаляем gnome, который поставился вместе с платформой:
    apt purge gnome-shell gnome-control-center gnome-keyring
    apt autoremove

Вот и всё! Можно возвращаться к работе.

Заключение, благодарности.

Для подготовки я использовал материалы следующих статей:

https://interface31.ru/tech_it/2021/10/edinyy-distributiv-1c-dlya-linux-server.html

https://infostart.ru/1c/articles/805266/

https://rarus.ru/publications/20210927-ot-ekspertov-ustanovka-1c-linux-496320/

Выражаю благодарность авторам, за то что они собрали информацию по работе с подсистемой systemd, так как большинство мануалов, в том числе официальных, написано для традиционной подсистемы init.

Дополнения и уточнения в комментариях приветствуются.

Теги:
Хабы:
+17
Комментарии 19
Комментарии Комментарии 19

Публикации

Истории

Работа

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн