Ubuntu / Ubuntu Server 16.04 — Установка PostgreSQL 9.6 для 1С

Для работы Сервера 1С Linux, необходимо иметь СУБД. В будущем мы будем рассматривать связку 1C Server Ubuntu + PostgreSQL Ubuntu. Но прежде чем перейти к рассмотрению и тестированию данной связки, нам необходимо установить PostgreSQL для 1С на Ubuntu Server 16.04 . По большому счету на данном этапе мы не будем рассматривать куда устанавливать postgres, на одну вирт машину рядом с сервером 1С, на другую виртмашину машину в пределах одного хоста, или же другую виртмашину на другом хосте. Сейчас необходимо лишь описать процесс установки postgresql на ubuntu server 16.04. Чтобы в дальнейшем прибегать к этой статье как основе для следующих статей. Почему именно 16.04 а не 18.04 которая уже вышла? Просто чтобы не заморачиваться за установку Postgres 9.6 на 18.04, которая жалуется на то что эта версия слишком старая и требует установку Postgres 10

Установка PostgreSQL для 1С на Ubuntu

Хотел бы сразу же предостеречь от установки PostgreSQL, которая будет использоваться для организации работы серверов 1С, из репозиториев. Связано это с тем, что 1С — капризная дичь, для её работы нужны специальные сборки PostgreSQL, которые в официальных репозиториях не проживают, банально за ненадобностью таких реализация PostgreSQL для чего-либо кроме 1С. Поэтому перво наперво нам нужна именно 1Сная сборка PostgreSQL. Такая сборка либо берется с сайта ИТС 1С, если есть готовая под вашу платформу, либо собирается ручками из исходников со всеми необходимыми патчами (которые тоже имеются на сайте ИТС). Собственно если вы можете собрать постгрес из исходников, то вам эта статься и не нужна. Поэтому я буду описывать ситуацию установки PostgreSQL для 1С на Ubuntu Server 18.04 из готового пакета, с сайта ИТС 1С.

Исходные данные

  • Установленный и обновленный Ubuntu Server 16.04 x64. Если нет то вам сюда Установка Ubuntu Server 16.04
  • IP и имя тестового сервера Ubuntu Postgres: 192.168.1.111 ag-psql-s1
  • IP и имя тестового сервера Ubuntu 1C: 192.168.1.110 ag-1c-s1
  • На сервере ag-1c-s1 в /etc/hosts должна быть запись 192.168.1.111 ag-psql-s1
  1. Скачиваем DEB пакет в архиве

    Ubuntu 18.04 - Установка PostgreSQL 1C - Скачивание дистрибутива
    Попутно стоит заглянуть в Особенности релиза. Про Ubuntu там написано следующее:
    sudo apt-get install libicu55 postgresql-common
    Это то что нам будет необходимо сделать прежде чем устанавливать скачанный пакет.

  2. Устанавливаем локали

    По сути, когда мы устанавливали систему, и выбрали там Russian + Russian, мы уже сделали все необходимое, но таки на всякий случай, можно перегенерировать локали повторно. Вводим последовательно:

    1. sudo locale-gen en_US
    2. sudo locale-gen ru_RU
    3. sudo update-locale LANG=ru_RU.UTF8
    4. sudo dpkg-reconfigure locales
      В появляющихся диалогах нужно ничего не меняя просто выбрать <Ok>
  3. Переносим архив в папку /tmp

    Заливаем пакет в /tmp на наш сервер, с помощью WinSCP или любым другим удобным для вас способом.

  4. Переходим в папку /tmp
    cd /tmp
  5. Убеждаемся что наш архив на месте
    lsUbuntu 18.04 - Установка PostgreSQL 1C - Проверяем наличие архива
  6.  Извлекаем архив
    tar -xvf ./postgresql_9.6.6_1.1C_amd64_deb.tar.bz2
  7.  Проверяем куда был извлечен архив, команда ls
    Ubuntu 18.04 - Установка PostgreSQL 1C - Извлекаем архивАрхив был извлечен в папку ./postgresql-9.6.6-1.1C_amd64_deb
  8.  Устанавливаем пакеты
    1. Сперва тот что упомянут в Особенностях релиза
    2. Потом все пакеты что извлеклись в папку postgresql-9.6.6-1.1C_amd64_deb
      cd ./postgresql-9.6.6-1.1C_amd64_deb
      sudo dpkg -i ./*.deb
  9. Проверяем что все работает
    service postgresql status — Должно зелененьким написать active (exited)
    telnet localhost 5432 — Проверяем можно ли подключиться на порт 5432 на локальной машине. Должно написать Connected to localhost
  10. Проверяем доступ из вне
    Если при подключении внутри сервера всё работает, пытаемся подключиться telnet <ip сервера> 5432. Если не пустило, то
    sudo nano /etc/postgresql/9.6/main/postgresql.conf и смотрим параметр listen_addresses если он равен ‘localhost’, значит сейчас постгрес не принимает подключения откуда либо кроме как с самого сервера. Меняем на ‘*’ и тогда любой компьютер сможет подключиться на порт 5432
  11. Настраиваем доступ суперпользователя
    1. Открываем pg_hba.conf
      Данный файл находится по пути /etc/postgresql/9.6/main/pg_hba.conf
      Если у вас другая версия postgres, в вашем пути числа 9.6 изменятся на номер вашей версии.
      sudo nano /etc/postgresql/9.6/main/pg_hba.conf
    2. Находим строку
      local all postgres peer
    3. Меняем тип доступа для пользователя postgres на trust, строка должна выглядеть
      local all postgres trust
    4. Все остальные строки с правилами необходимо закоментить, поставив вначале знак #. Сохраняем изменения Ctrl+O, закрываем файл Ctrl+X
    5. Перезапускаем postgresql
      sudo service postgresql restart
    6. Супер пользователь не должен быть без пароля. Задаем длинный и сложный пароль пользователю postgres следующей командой:
      psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'Qwerty123'"
      

      Вам нужно будет использовать другой пароль.

    7. Добавляем в pg_hba.conf новую или изменяем одну из имеющихся строку:
      host all postgres 192.168.1.0/24 md5
      192.168.1.0 замените на вашу подсеть.
    8. Перезагружаем PostgreSQL
      sudo service postgresql restart

Теперь пользователь postgres сможет подключиться к серверу с любого устройства находящегося в подсети 192.168.1.0/24, используя логин postgres и пароль Qwerty123. Для того чтобы сервер 1С смог создавать базы на данном сервере, у него в hosts должна быть указана запись связывающая ip адрес с именем сервера ag-psql-s1. В моём случае это 192.168.1.111 ag-psql-s1

Хочу заметить что это плохая практика работать под пользователем postgres. Желательно иметь если не по отдельному пользователю на каждую базу и при наличии подрядчиков, иметь еще отдельные учетки для баз для подрядчиков, то хотябы отдельного пользователя с ограниченными правами, чтобы не накосячить в процессе работы.

Related

Jupyter Notebook и Anaconda для удаленной разработки на отдельном Ubuntu Server, нужны для облегчения себе жизни. А так же чтобы не таскать с места на место свои проектики или не работать с jupyter notebook через удалённый рабочий стол. Еще распространена ситуация, когда у вас дома, в офисе, на даче. Continue reading

PostgreSQL 10 - Потоковая репликация с отработкой фейловера. Данная запись посвящается исключительно "Потоковой репликации", не архивированию, не логической репликации, не восстановлению из бэкапа. Тут описывается потоковая репликация, настройка одного мастера, одного слейва. Continue reading

PostgreSQL 10 FATAL: could not access file "online_analyze" - Ничего не предвещало беды да? Всё шло своим чередом, сервер PostgreSQL 10 для 1C работал в штатном режиме, бухгалтера стадами набигали на 1Сные сервера, делали свои грязные дела, а жалоб никаких не было?. И вот ты уже сидишь обтекая потом гуглишь что. Continue reading

Установка Zabbix 4.0 из репозитория на Ubuntu 18.04 происходит настолько просто что ненужно никаких статей вообще. Признаться честно, у кого у кого, а у Zabbix проблем с установкой нету от слова совсем. Особенно это касается апплаенса или же репозитория. Тем не менее необходимость. Continue reading

JOIN THE DISCUSSION