- Обновление 1С-сервера Ubuntu/Debian Linux
- . Внимание, прежде чем приступать к обновлению 1С убедитесь, что у вас есть доступ к обновлениям в 1С:ИТС
- Обновление Сервера 1С под Linux
- Автор Zerox
- 7 комментариев
- Обновляем платформу 1С на сервере под управлением Linux
- Проблематика
- Окружение
- Инструкция по обновлению
- Заключение, благодарности.
Обновление 1С-сервера Ubuntu/Debian Linux
. Внимание, прежде чем приступать к обновлению 1С убедитесь, что у вас есть доступ к обновлениям в 1С:ИТС
Для обновления сервера 1C Предприятия под Ubuntu Linux необходимо сделать ряд операций, сначала необходимо узнать, какие пакеты установлены. Для того, что бы узнать, какие пакеты были установлены в консоле выполняем команду:
sudo dpkg -l | more | grep 1c-enter > rem.txt
Далее, открываем файлик rem.txt командой:
Отображение пакетов будет выведено в алфавитном порядке, в таком виде:
ii 1c-enterprise83-client 8.3.5-1248 1C:Enterprise 8.3 client applications
ii 1c-enterprise83-client-nls 8.3.5-1248 National resource files for 1C:Enterpise 8.3 client applications for Linux
ii 1c-enterprise83-common 8.3.5-1248 1C:Enterprise 8.3 common components
ii 1c-enterprise83-common-nls 8.3.5-1248 National resource files for 1C:Enterpise 8.3 common components for Linux
ii 1c-enterprise83-server 8.3.5-1248 1C:Enterprise 8.3 server for Linux
ii 1c-enterprise83-server-nls 8.3.5-1248 National resource files for 1C:Enterpise 8.3 server for Linux
ii 1c-enterprise83-ws 8.3.5-1248 1C:Enterpise 8.3 Web-services components for Linux
ii 1c-enterprise83-ws-nls 8.3.5-1248
Из данных этого файлика стало известно, что установлена платформа версии 8.3. Название пакетов подчеркуто специально, что бы вы могли соорентироваться. Далее, необходимо остановить сервис 1С командой:
sudo /etc/init.d/srv1cv83 stop
После остановки сервера, необходимо удалить пакеты ранней версии: Выполняем команды:
sudo dpkg -r 1c-enterprise83-ws-nls
sudo dpkg -r 1c-enterprise83-ws
sudo dpkg -r 1c-enterprise83-server-nls
sudo dpkg -r 1c-enterprise83-server
sudo dpkg -r 1c-enterprise83-common-nls
sudo dpkg -r 1c-enterprise83-common
Если используйте терминальный сервер, то и переустанавливаем клиента:
sudo dpkg -r 1c-enterprise83-client-nls
sudo dpkg -r 1c-enterprise83-client
После удаление. необходимо установить новые пакеты, сделать это можно слив все новые пакеты в одну папку и запустив команду в этой папке:
Обновление Сервера 1С под Linux
1С последнее время стала часто менять установщик сервера под Linux. Сначала с переходом на единый дистрибутив поменялся процесс обновления и установки сервера. А теперь по мере изменения версий в рамках единого установщика тоже происходят заметные изменения. То gnome на сервер автоматом ставит, а не так давно вместо скрипта запуска для init.d, появился unit для systemd.
Если у вас есть желание научиться профессионально строить и поддерживать высокодоступные виртуальные и кластерные среды, рекомендую познакомиться с онлайн-курсом Администратор Linux. Виртуализация и кластеризация в OTUS. Курс не для новичков, для поступления нужно пройти вступительный тест.
Во время очередного обновления я немного затупил и решил записать актуальную пошаговую инструкцию по обновлению сервера 1С на Linux, чтобы просто на неё посмотреть и всё сделать, а не вспоминать, что делал в прошлый раз.
1️⃣ Останавливаем сервер 1С. В зависимости от установленной версии, команда будет выглядеть по-разному. До 8.3.21 вот так:
# systemctl stop srv1cv8-8.3.21.1484@default
2️⃣ Я рекомендую сохранить настройки кластера из домашней директории /home/usr1cv8/.1cv8/1C/1cv8. Только текстовые файлы с настройками, больше ничего. У меня разок была ситуация, когда обновлял тестовый сервер, где .1cv8 была символьной ссылкой на другой том. По какой-то причине она была заменена на новую пустую директорию. Когда запустил сервер, очень удивился, что в списке баз пусто. А их там было штук 30. Сервер хоть и тестовый, я всегда сначала на нём проверял обновления, но всё равно перспектива добавления заново всех баз не радовала. Решил детальнее разобраться, что случилось и заметил, что символьная ссылка пропала. Вернул её на место и все базы восстановились.
Тем не менее, у меня были ситуации, когда я терял настройки сервера. Хоть и некритично, но всё равно неприятно. Лишняя работа. Рекомендую параметры сохранять перед обновлением.
3️⃣ Качаем дистрибутив единого установщика и копируем на сервер. Имя файла имеет примерно такой формат: server64_8_3_22_1709.tar.gz. Распаковываем:
# tar xzvf server64_8_3_22_1709.tar.gz
Можно сразу запустить установщик ./setup-full-8.3.22.1709-x86_64.run и интерактивно выбрать все настройки, либо запустить в пакетном режиме, указав необходимые настройки. Например:
# ./setup-full-8.3.22.1709-x86_64.run --mode unattended --enable-components server,ws,client_full
Установили компоненты: Сервер 1С, модуль расширения веб сервера, толстый клиент.
4️⃣ Если раньше был скрипт запуска в /etc/init.d/srv1cv83, удаляем его. Вместо него устанавливаем юнит systemd:
# systemctl link /opt/1cv8/x86_64/8.3.22.1709/srv1cv8-8.3.22.1709@.service
Добавляем в автозагрузку и запускаем:
# systemctl enable srv1cv8-8.3.22.1709@.service # systemctl start srv1cv8-8.3.22.1709@.default
Обращаю внимание, что команда на запуск изменилась. Нужно добавлять имя экземпляра сервера. По умолчанию — default. Так сделано для того, чтобы было удобно запускать несколько разных экземпляров сервера с разными настройками на одном хосте, повесив их на разные порты.
5️⃣ Напомню, что управлять кластером 1С можно с помощью бесплатной панели управления ПУСК. Если у вас оснастки администрирования установлены на Windows машине, не забудьте там обновить платформу и зарегистрировать утилиту администрирования новой версии, иначе не получится подключиться к обновлённому серверу. Я частенько забываю это сделать.
На этом с обновлением сервера 1С всё. Ничего сложного. 1С неплохо потрудились с переработкой установщика. С одной стороны выглядит как-то громоздко — один установщик под всем дистрибутивы, вместо пакетов. Но с другой стороны — процесс стал проще и одинаков под все системы.
Автор Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале — https://t.me/srv_admin/425 или на сайте в контактах.
7 комментариев
На днях обновлял один из серверов. После обновления очень долго подключались клиенты, висли регламентные задания, LA на сервере в потолок улетал. Причиной была нехватка подключений к postgresql. Увидел это в его логе. Судя по всему подвисли подключения от старого сервера или что-то другое случилось. В итоге остановил сервер 1С, перезапустил postgresql и всё нормализовалось.
Час добрый!
Надо перепрыгнуть с платформы 8.3.19.1726 на 8.3.23.1739. Единого установщика нет. По крайней мере на серверах 1с он не фигурирует нигде. Есть ли пошаговая документация перехода от одной версии к другой?
Кто-то говорит, что надо сносить старую платформу, кто-то нет, кто-то говорит даже о важности последовательности удаления старых пакетов, равно как и о важности последовательности установки новых. Где правда? 🙂
Ничего особо делать не надо. Старое можно не удалять. Останавливайте старую версию. Ставьте новую. После установки новой версии убедитесь, что в юните systemd именно она стоит. И запускайте. Всё.
—
т.е. пакетный менеджер должен понять, что будет обновлена текущая версия? Стало быть и порядок инсталляции не нужен, я так полагаю.
Стремность в том, что подвесить бухгалтерию на неопределенный срок — это жесть. Потому и выспрашиваю у знатоков как поступать.
Но единого установщика нет, как я уже писал. В архиве новой платформы несколько отдельных пакетов. Их просто ставим через пакетный менеджер.
Если вы вообще не разбираетесь в этом, я бы посоветовал где-то потренироваться, прежде чем обновлять рабочий сервер.
Потренироваться — это круто, конечно. Я просто по наследству получил сервак на CentOS. Сейчас встала необходимость обновить платформу 1C. Сам процесс обновления меня мало пугает, потому как обновится просто ради обновления — не вопрос. Вопрос про «подводные камни». Первый, как я понял, это замена inet.d на systemd. Что еще? 🙂
Спасибо. Без воды — всё по теме. Бало бы хорошо с дополнениями по «портовым» настройкам для разных версий платформы.
Обновляем платформу 1С на сервере под управлением Linux
Здравствуйте, меня зовут Шилин Никита и в прошлом я довольно много работал разработчиком 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).
Больше никакой воды, переходим к инструкции.
Инструкция по обновлению
- Сделаем архивы всех боевых баз. Надеюсь, вы еще и проверяете что они работают. Мы проверяем.
- Скачаем нужный дистрибутив с сайта users.v8.1c. Когда перейдёте на страницу для выбора варианта своего дистрибутива вас неприветливо встретят 34 ссылки с вариантами клиентов и прочей информацией. Я прочитал и разобрался в них за вас: Выбираем «Технологическая платформа 1С:Предприятия (64-bit) для Linux».
- Создадим на сервере папку через WinSCP, загрузим в неё дистрибутив и распакуем через WinSCP.
- Идём в SSH-клиент, подключаемся к серверу 1С, переходим в папку с распакованным дистрибутивом, запускаем единый установочный файл:
./setup-full-8.3.22.1709-x86_64.run
Останавливаем службу:
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
Вот и всё! Можно возвращаться к работе.
Заключение, благодарности.
Для подготовки я использовал материалы следующих статей:
Выражаю благодарность авторам, за то что они собрали информацию по работе с подсистемой systemd, так как большинство мануалов, в том числе официальных, написано для традиционной подсистемы init.
Дополнения и уточнения в комментариях приветствуются.