Сервер 1С 8.3 на Ubuntu.

Как установить сервер 1С 8.3 на Ubuntu 18.04 или 16.04?

Рассмотрим вариант установки сервера, использующего программную лицензию. Этот способ одинаково подходит как для серверов Ubuntu 16.04, так и для Ubuntu 18.04 (которая бывает только x64)

Вводные данные

  • Используемая ОС: Ubuntu 18.04 x64
  • Используемая версия 1C: 8.3.12.1412 (У вас скорее всего будет отличаться)
  • Характеристики сервера 1С: 8 vCPU + 32GB оперативной памяти + 50 GB дискового пространства
  • Характеристики тестовых стендов:
    1. ESXi1
      • CPU: 2x Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
      • vCPU: 40
      • RAM: 256GB
      • Raid 0 из 10k SAS
      • Ethernet 1GBit
    2. ESXi2
      • CPU: Intel(R) Xeon(R) CPU E5-2660 @ 2.20GHz
      • vCPU: 32
      • RAM: 96GB
      • 10k SAS без raid
      • Ethernet 1GBit
  • Базой данных служит Postgres 9.6.6-1.1С  от 1С

Для тестов специально выбрано 2 блейда одной модели. Так как блейды без доп расширений имеют физическое ограничение в 2 диска на блейд, мы не можем тестировать различные конфигурации дискового хранилища без того, чтобы постоянно его не перенастраивать. Поэтому у нас будет 2 бейда, 1-й блейд будет иметь Raid 0 из двух 10k SAS дисков, второй будет иметь не объединенные в рейд 10k SAS и 7200 SAS. Единственные отличия помимо уже описанных, это модели процессоров и объем памяти. Так же 2 блейда позволят в будущем организовать более правдоподобные сценарии тестирования всевозможных кластеров и миграции.

Устанавливаем Сервер 1С 8.3 на Ubuntu

Подразумевается что Ubuntu Server 18.04 x64 вы уже установили. Если нет то надо установить Ubuntu Server 18.04 x64. Можно и десктопную убунту, инструкция подойдет и для серверной и для десктопной версии, но смысл установки десктопной версии для функционала сервера категорически отсутствует.

  1. Подключаемся к нашему серверу через SSH

  2. Обновляем убунту командой

    sudo apt-get update && sudo apt-get dist-upgrade -y

  3. Ставим библиотеки необходимые для работы Сервера 1С

    Тут вопрос достаточно тонкий, каждая библиотека нужна для реализации конкретного функционала и если вы этот функционал использовать не будете, эти библиотеку можно не устанавливать.
    Документация на портале ИТС к 1С:Предприятие 8.3.12 -> Клиент-серверный вариант. Руководство администратора -> Глава 1 -> Пункт 1.3. Общие требования для клиент-серверного варианта работы говорит нам что для различного функционала Серверу 1С требуются следующие библиотеки.

    1. libMagickWand-6.Q16
    2. libfreetype
    3. libgsf-1
    4. libglib-2.0
    5. unixodbc
    6. libkrb5
    7. libgssapi-krb5
    8. Майкрософтовские шрифты
      Поверхностная проверка покажет, что в Ubuntu 18.04 x64 часть библиотек уже стоит

      Но для того чтобы убедиться наверняка, можно отправить команду для их установки всех требуемых библиотек и недостающее доставится, а устаревшее обновится.
      sudo apt-get install libwebkitgtk-3.0-0 libjavascriptcoregtk-3.0-0 libMagickWand-6.Q16 libfreetype6 libgsf-1-114 libglib2.0-0 unixodbc libkrb5-3 libgssapi-krb5-2 ttf-mscorefonts-installer 
      Эта команда доставит все заявленные в документации библиотеки
  4. Заливаем архив с сервером 1с

    Архив скачанный с сайта 1С, будет называться deb64.tar.gz . Заливаем архив с пакетами сервера на убунту в папку /tmp

    1. Как вариант, можно подключиться из венды к нашему серверу по SFTP через WinSCP
    2. Можно поднять внутри сети какой-нибудь сервер и скачать архив с помощью wget
  5. Извлекаем архив

    1. Переходим в папку /tmp
      cd /tmp
    2. Смотрим там ли наш архив, с помощью команды ls
      ls
    3. Убеждаемся что он там, и извлекаем из него пакеты
      tar -xvf ./deb64.tar.gz
    4. Снова проверяем какие файлы теперь есть в нашей папке /tmp
      ls
  6. Устанавливаем пакеты сервера 1С

    Теперь, для того чтобы установить сервер 1С, будет достаточно находясь в папке /tmp, при условии наличия там файлов с сервером 1с, выполнить следующую команду:

    sudo dpkg -i ./1c-e*.deb

    Те, кому интересно немного матчасти, читаем этот пункт дальше. Остальным нужно проследовать к следующему пункту.
    Собственно почему получилось без проблем установить все 6 пакетов одной командой?

    • Команда dpkg обрабатывает все пакеты в в том же порядке, в котором их отображает команда ls или же ls -l
    • Случилось это по чистой случайности или же по воле великих админских богов, но расположенные в алфавитном порядке пакеты извлеченные из архива, как раз складываются в таком порядке что при установке каждого пакета, все предидущие пакеты от которых он мог зависеть уже установлены.
    • Если вдруг порядок пакетов когда-то изменится, то ставить их надо в следующем порядке:
      1. common — независит ни от чего
      2. common-nls — зависит от common
      3. server — зависит от common
      4. server-nls — зависит от server
      5. ws — зависит от server
      6. ws-nls — зависит от ws
    • Таким образом вы не сможете установить пакет ws, пока не установите server, который в свою очередь требует common
    • Пакеты *-nls — языковые пакеты. Если вам не требуется функционал который они предоставляют их можно не устанавливать. Кто-то может поспорить, у меня все сервера работают без nls пакетов. Выбор за вами. Для чистоты последующих экспериментов я поставлю все пакеты.
  7. Запускаем сервер 1С

    Сервер 1С 8.3.12 для Linux не запускается автоматически после установки, убедиться в этом можно выполнив любую из двух команд:

    systemctl status srv1cv83
    service srv1cv83 status

    Резутатом будет следующее сообщение:
    Чтобы запустить сервер, нужно выполнить одну из двух команд:

    sudo systemctl start srv1cv83
    sudo sesrvice srv1cv83 start

    Попытка повторно узнать статус сервера покажет вам следующие результат:

Собственно поздравляю. Вы успешно установили Сервер 1С 8.3 на Ubuntu 18.04. Но это только часть работы. Для того чтобы начать тестирование, нам необходимо развернуть PostgreSQL на другом сервере. Развернуть её можно и на одном сервере в 1С, на любителя.