Bash-скрипт для установки 1С:Предприятие 8.3 и СУБД PostgreSQL на сервер CentOS 7

Данный скрипт позволяет практически полностью установить сервер 1С. В конце остается только настроить PostgreSQL для конкретного железа.

Скрипт объединяет личный опыт и различные публикации по установке 1С  и СУБД PostgreSQL на сервер под управлением CentOS 7.

Выполняет следующие действия:

  1. Отключает selinux
  2. Устанавливает необходимые пакеты
  3. Устанавливает Apache
  4. Устанавливает samba и создает сетевой каталог
  5. Устанавливает Postgres Pro и настраивает (см. https://postgrespro.ru/)
  6. Скачивает указанную платформу с releases.1c.ru (Необходимы логин и пароль доступа)
  7. Устанавливает сервер 1С и толстый клиент (если не нужен клиент, то в скрипте можно закомментировать строку на скачивание curl)
  8. Настраивает публикации информационных баз
  9. Создает пустые информационные базы в кластере
  10. Настраивает правила firewall

 

Настройка параметров установки:

Перед установкой необходимо настроить параметры в начале скрипта:

  • DATABASES="bgu;zgu;test" #Список создаваемых баз данных через ;
  • HOSTNAME="1c-srv"   # имя этого хоста для файлов публикации
  • HOST_IP="192.168.0.10"  # адрес этого для файлов публикации
  • USERNAME=’1c_user’   #Логин на портал releases.1c.ru
  • PASSWORD=’psw111111′ #Пароль на портал releases.1c.ru
  • PG_PASSWORD=’pg_pass’   #Пароль пользователя ‘postgres’
  • VER_1C=’8.3.14.1630′ #Версия устанавливаемой платформы

 

Действия перед установкой:

  • Установить CentOS 7 minimal (вообще не понимаю, зачем некоторые графическое окружение ставят)
  • Обновить командой yum update -y и перезагрузить.
  • С помощью WinSCP или другой утилиты скопировать файл install.sh на сервер.
  • Создать в этом же каталоге файл pg_tune.sql с командами вкладки "ALTER SYSTEMhttps://pgtune.leopard.in.ua/ 
  • Установить права на запуск командой chmod +x ./install.sh
  • Запустить установку командой ./install.sh

После перезагрузки настраиваем параметры PostgreSQL, например с помощью https://pgtune.leopard.in.ua/, и перезапускаем командой systemctl restart postgrespro-1c-10.service

Проверяем, набрав в браузере http://<HOST_IP>/<имя одной из баз в DATABASES>. Должна открытся пустая база (если в сети есть hasp license manager) или выдаться ошибка об отсутствии клиентских лицензий.

Далее на любой машине заливаем *.dt в созданные базы через конфигуратор.

В сетевой каталог \<HOST_IP>install копируем два архива

  • windows_8_3.zip — установщик тонкого клиента x32 (просто зипуем все файлы инсталлятора платформы)
  • windows64_8_3.zip — установщик тонкого клиента x64

 

Собственно все — можно допускать к работе пользователей

Для скачивания платформы использовал статью //infostart.ru/public/817947/

 

UPDATE: Для настройки PostgreSQL можно создать файл pg_tune.sql с командами вкладки "ALTER SYSTEMhttps://pgtune.leopard.in.ua/ и выполнить команды

sudo -u postgres /opt/pgpro/1c-10/bin/psql -f  /tmp/pg_tune.sql
systemctl restart postgrespro-1c-10.service

UPDATE (13.04.2024): Изменил скрипт. Теперь перед запуском скрипта необходимо создать файл pg_tune.sql с настройками PostgreSQL. 

UPDATE (25.05.2024): 

  1. Изменил настройки сети. Теперь необходимо только указать имя хоста в переменной HOSTNAME. Скрипт при необходимости сам переименует хост и внесет адрес в файл /etc/hosts
  2. Ввел переменные: 
    • CLIENT — устанавливать толстый клиент 
    • VM_TOOLS — устанавливать open-vm-tools для ESXi
  3. Изменил конфигурационный файл samba с учетом переменной HOSTNAME.

UPDATE (26.05.2024): 

Включена установка шрифтов Microsoft Core Fonts

Спасибо за комментарии serg52

UPDATE (21.06.2024): 

Добавлено создание настроек резервного копирования. Параметры BACKUP_DIR, BACKUP_HOUR, DAY_MONTH и HISTORY_DAYS

 

 

25 Comments

  1. Senator_I

    Спасибо, интересная вещь, при случае попробую.

    Reply
  2. Dmitri_1C

    Толь закончил настройку сервера на ubuntu, аналогично в планах написать скприпт, поэтому плюсую однозначно.

    Reply
  3. YPermitin

    (2)

    на ubuntu, аналогично в планах написать ск

    Будет интересно взглянуть на скрипт. Если будете выкладывать, то скажите где смотреть 🙂

    Reply
  4. Infactum

    Скриптам место в гите. Там и обсудить можно — наверняка есть, что улучшить.

    Стартмани правда так срубить будет куда сложнее.. да..

    Reply
  5. w.r.

    Для разовой процедуры установки наверно не надо

    Кстати, для Ubuntu, если у кого-то стоит версия PostgreSQL от 1С c DEB пакетов, рекомендую исключить пакеты из обновления командой

    sudo apt-mark hold postgre*

    Чтобы командой

    sudo apt-get upgrade

    Не затирать пакеты от 1С пакетами из репозитория postgres (если подключен для pgAdmin4 например)

    Reply
  6. Sedaiko

    (5) Да изначально планировал сделать «шпаргалку» со списком комманд, так как планировалось часто поднимать тестовые сервера именно с нуля на ESXi. А потом Остапа понесло…

    Reply
  7. user762380

    а можно чистую ссылку на скачивания скрипта …

    Reply
  8. edelweiss

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

    Reply
  9. ArchiMozes

    Скиньте в личку пожалуйста. Заранее благодарен!

    Reply
  10. v3rter

    (3)


    Будет интересно взглянуть на скрипт. Если будете выкладывать, то скажите где смотреть 🙂

    Выложите для убунты — оставьте ссылку здесь, чтобы легче было найти, если что.

    Reply
  11. Kumiro

    Добрый день.

    Спасибо автору.

    Можно скрипт в личку?

    Спасибо.

    Reply
  12. edelweiss

    Бесполезно, автор никак не реагирует на наши здешние сообщения, хотя я готов скинуть автору какую-то разумную сумму за труды…

    Reply
  13. Sedaiko

    (12) Я хз как файл отправлять в личку

    Reply
  14. serg52

    По скрипту:

    1) Нет вопросов при установке — (скачивать клиент не скачивать и.т.д ниже)

    2) Нет выбора типа сервера 32 или 64 (скрипт скачивания нужно допиливать, что с ходу лично у меня не получилось)

    3) В скрипте не все работает с ходу

    — фаервол на завёлся…. systemctl stop firewalld после этого попытаться подключиться к серверу вышло, но кластер баз данных не завёлся

    — в etc/host обязательно добавит строку 127.0.0.1 имя сервера — иначе не будет стартовать!

    Автоматом это не происходит

    127.0.0.1 localhost

    x.x.x.x 1c

    — Например samba — на виндовой машине пришлось прописывать в hosts адрес 1c сервера

    — .pg_tune.sql

    Created symlink from /etc/systemd/system/multi-user.target.wants/postgrespro-1c-10.service to /usr/lib/systemd/system/postgrespro-1c-10.service.

    ALTER ROLE

    cp: не удалось выполнить stat для «.pg_tune.sql»: Нет такого файла или каталога

    psql:/tmp/pg_tune.sql:22: ОШИБКА: ошибка синтаксиса (примерное положение: «#»)

    СТРОКА 1: # DB Version: 10

    — с базами данных не все так гладко

    Создаем базы данных в кластере……

    Ошибка установки соединения с кластером серверов

    Сервис не поддерживается

    Ошибка установки соединения с кластером серверов

    server_addr=tcp://localhost:1540 descr=[::1]:1540:111(0x0000006F): Connection refused;

    127.0.0.1:1540:111(0x0000006F): Connection refused;

    line=1056 file=./src/DataExchangeTcpClientImpl.cpp

    Ошибка разбора параметра: cluster

    Ошибка установки соединения с кластером серверов

    Сервис не поддерживается

    Ошибка установки соединения с кластером серверов

    server_addr=tcp://localhost:1540 descr=[::1]:1540:111(0x0000006F): Connection refused;

    127.0.0.1:1540:111(0x0000006F): Connection refused;

    line=1056 file=./src/DataExchangeTcpClientImpl.cpp

    Ошибка разбора параметра: cluster

    Да и для 32-х битного сервера нужны иные пакеты ImageMagick.i686, freetype.i686,libgsf.i686, glib2.i686, unixODBC.i686

    почему нет допила под ubuntu…

    Reply
  15. Sedaiko

    (15)

    1. CentOS 7 — дистрибутив всегда 64 битный.

    2. Уже давно нет смысла ставить сервер 1С предприятие 32 бита

    3. С именем машины да, можно сказать косяк — я изначально при установке указываю нужное имя. Надо допилить командой hostnamectl set-hostname your-new-hostname

    4. pg_tune.sql — должен соответствовать формату sql, комментарии там не начинаются символом #

    На днях допилю с учетом Ваших заметок

    Reply
  16. Sedaiko

    (15)

    почему нет допила под ubuntu

    Я конечно понимаю что при установке ubuntu можно поставить флажечки — apache, samba, mysql и php, вроде все просто.

    Но не считаю что имеет смысл использование ubuntu в качестве сервера, она больше подходит под десктопы.

    Reply
  17. serg52
    2. Уже давно нет смысла ставить сервер 1С предприятие 32 б

    Я вас убеждать не буду, но смысл есть.

    Reply
  18. ansh15

    (16)

    нет смысла ставить сервер 1С предприятие 32 бита

    Смысл только один — сэкономить, кажется, 36 т.р.(они же ~600 $) работодателю/клиенту на разнице стоимости лицензий.

    Reply
  19. serg52

    Ждали ждали скрипт и не дождались ….

    Reply
  20. serg52

    Нашёл ещё один минус скрипа

    файлы

    pg_hba.conf

    postgresql.conf

    Ложатся в скрытые папки + по умолчанию PG доступен только как localhost

    Reply
  21. Sedaiko

    (20)

    Ждали ждали скрипт и не дождались

    Да добью я. после праздников аврал

    Reply
  22. Sedaiko

    (21)

    по умолчанию PG доступен только как localhost

    Дык и планировалось с ставить кластер на одной машине :

    —db-server=127.0.0.1

    Более сложные системы всегда нужно настраивать вручную

    Reply
  23. Sedaiko

    (20) Подшаманил кое-что.

    Reply
  24. serg52

    Скрипт уже отличный но можно местами улучшить.

    1) Например допилить настройку скрипта в интерактив — вопрос — ответ. Т.е введите ваш логин от портала 1с, введите ваш пароль, укажите имя хоста, введите сколько баз вы хотите по умолчанию баз, введите название баз 1,2,3

    Выберите версию сервера из последних 5-и.

    2) Без msttcore-fonts-installer этого пакета шрифты не будут красивыми

    По любому нужен пакет шрифтов…. В том или ином виде.

    Reply
  25. Sedaiko

    (25) msttcore-fonts собираюсь, а интерактив не буду, смысла не вижу

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *