Установка сервера 1с v8.3 + PostgreSQL на Linux Debian v7.3 под управлением Hyper-V

Установка сервера 1с v8.3 + PostgreSQL на Linux Debian v7.3 под управлением Hyper-V

Сервер 1с 8.3 + PostgreSQL на Linux Debian под управлением Hyper-V

Исходные данные:
———————————————————————-
Сервер с процессором Intel(R) Xeon(R) CPU E5-1620 v2 @ 3.70GHz; 32 Gb оперативки; RAID1 из двух терабайтовых HDD + RAID1 из двух SSD по 100Gb.
———————————————————————-

Устанавливаю Hyper-V Server 2012 по инструкции: https://blog.knasys.ru/administration/установка-и-настройка-hyper-v-server-2012/

При этом ставлю его в 60-ти гибайтовый раздел на RAID1 из терабайтовых винтов.
За одно разбиваю всё пространство RAID-ов на разделы:
RAID1 из HDD:
— 60Gb под Hyper-V (диск C:)
— 450Gb под образы и конфиги для виртуалок (диск D:)
— оставшееся место под всякий хлам (диск E:)

RAID1 из ssd:
— 60Gb для образа жесткого диска сервера 1с (диск F:)
— оставшееся место не размечаю (по рекомендациям производителя SSD в целях увеличения производительности и срока жизни SSD-шек)

———————————————————————-

Через 5nine Hyper-V Manager создаю виртуальную машину для сервера 1с:
Имя: serv1c
Расположение: D:Virtserv1c
Оперативная память: 8Gb фиксированного размера (при динамической может не работать программная лицензия)
Процессор: 8 виртуальных процессоров
Жесткий диск: 50Gb фиксированного размера
Расположение жесткого диска: F:serv1c.vhdx (на SSD будет лежать только он)

В сервере 3 сетевых порта:
первый используется для управления сервером BMC. назначаю ему адрес 192.168.0.1 в BIOSе.
Второй делаю Extended Lan в 5nine manager пойдет на другие виртуалки сервера — её адрес 192.168.0.2
Третий — Extended Lan пойдет на виртуалку 1с сервера — её адрес 192.168.0.3

Настройка фаервола:

Для работы 5nine необходимо помимо доступа к серверу разрешить входящие многоадресные DNS-запросы:

Направление: Входящие, Исходящие
Действие: Разрешить
Протокол: UDP
С диапазона адресов: 192.168.0.2-192.168.0.3 (сетевые карты гипервизора)

———————————————————————-

Дебиан 7.3 ставлю без графической оболочки.

При установке делаю один раздел (для новичков), т.к. в /usr/local/pgsql/data/base/ грузится база.

Ошибка типа «Удаленный хост принудительно разорвал соединение» в 1с появляется как раз при отсутствии свободного места.

Для переключения между консолями исп-ся SHIFT+(F1 — F7)

Выход из пользователя: exit

Просмотреть использование диска можно командой: df -h

Просмотреть использование оперативки и процессора командой: htop (но htop нужно сначала установить)

Просмотреть использование сети -командой: iftop (тоже надо установить)

Сменить пароль: passwd

————————————————————————

Устанавливаем mc: Вставляем первый диск дебиана, затем:

apt-get install mc

Устанавливаем htop для мониторинга системы: Вставляем первый диск дебиана, затем:

apt-get install htop

Устанавливаем iftop для мониторинга системы: Вставляем первый диск дебиана, затем:

apt-get install iftop

————————————————————————-
Если сетевой адрес Вы не вводили вручную, значит он назначен dhcp. Желательно поменять на статический.
Проверяем конфигурацию соединения:

ifconfig

Делаем копию файла /etc/network/interfaces:

cp /etc/network/interfaces /etc/network/interfaces.old

Открываем файл /etc/network/interfaces через nano:

nano /etc/network/interfaces

Примерное содержание такое:

# The loopback network interface
 auto lo
 iface lo inet loopback
# The primary network interface
 allow-hotplug eth0
 iface eth0 inet dhcp

Делаем его таким (нельзя использовать 192.168.0.1 — 192.168.0.3 т.к. они заняты):

# The loopback network interface
 auto lo
 iface lo inet loopback
# The primary network interface
 allow-hotplug eth0
 iface eth0 inet static
 address 192.168.0.6
 netmask 255.255.255.0
 gateway 192.168.0.254

Далее назначаем адрес DNS сервера:

Делаем копию файла /etc/resolv.conf:

cp /etc/resolv.conf /etc/resolv.conf.old

Открываем файл /etc/resolv.conf через nano:

nano /etc/resolv.conf

Оставляем там только строку «nameserver 8.8.8.8»
Если используете домен, то оставляем ещё и «domain имя_Вашего_домена»

Для вступления изменений в силе делаем:

reboot

————————————————————————-

Редактируем список репозиториев, что находится в файле /etc/apt/sources.list.

Для начала делаем его копию:

cp /etc/apt/sources.list /etc/apt/sources.list.old

Открываем этот файл в nano:

nano /etc/apt/sources.list

Удаляем там всё и прописываем следующие строки:

deb http://ftp.ru.debian.org/debian/ wheezy main contrib
deb-src http://ftp.ru.debian.org/debian/ wheezy main contrib
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
deb http://ftp.ru.debian.org/debian/ wheezy-updates main
deb-src http://ftp.ru.debian.org/debian/ wheezy-updates main

Выполняем следующие команды для обновления репозиториев:

apt-get update
apt-get upgrade
apt-get dist-upgrade

————————————————————————

Установка Samba для доступа к сети:

aptitude install samba
aptitude install samba-client

Свои конфигурационные файлы Samba хранит в каталоге /etc/samba/. Здесь находится конфигурационный файл smb.conf.

Для начала создаем резервную копию файла smb.conf:

cp /etc/samba/smb.conf /etc/samba/smb.conf.old

Теперь открываем smb.conf через nano:

nano /etc/samba/smb.conf

Конфигурационный файл smb.conf поделен на разделы, которые заключаются в квадратные скобки. Основных разделов три: [global], [homes], [printers].

Раздел [global] – параметры этого раздела применяются к серверу целиком или являются умолчаниями для разделов если они специально не определены.

Раздел [homes] – если этот раздел включен в конфигурационный файл, то сервисы подключающие клиентов к их домашним директориям могут быть созданы сервером на лету.

Раздел [ptinters] – работает как [homes], но для принтеров. Если [printers] раздел есть в конфигурационном файле, пользователи имеют возможность подключиться к любому принтеру из local host’s printcap файла.

Удаляем всё содержимое файла smb.conf и приводим его к виду:

[global]
 # nastraivaem prinadlejnost k rabochey gruppe
 workgroup = PSB
 netbios name = serv1c
 server string = serv1c
# uroven jurnalirovaniya
 log level = 1
# parametry bezopasnosti
 encrypt passwords = yes
 passdb backend = smbpasswd
 security = share
# parametry kodirovki
 unix charset = UTF-8
 dos charset = cp1251
 store dos attributes = yes
# razmer fayla jurnala
 max log size = 10
[share]
 comment = public folder
 path = /home/share
 writable = yes
 printable = no
 guest ok = yes
 read only = no

Создадим каталог share:

mkdir /home/share

Установим максимальные права доступа, всем:

chmod 777 /home/share

Осталось перезапустить демон Samba:

/etc/init.d/samba restart

Теперь можно видеть расшаренную папку в проводнике винды.  Ели не видно, проверьте правильность заполнения файла smb.conf построчно!

——————————————————————

Для правильной работы PostgreSQL увеличиваем максимальный объем разделяемой памяти ядра до 512 Мб.

echo kernel.shmmax = `echo 512*1024*1024 | bc` >> /etc/sysctl.conf
echo kernel.shmall = `echo 512*1024*1024 | bc` >> /etc/sysctl.conf

Тезультатом данных команд является появление записи «kernel.shmmax = 134217728» в файле /etc/sysctl.conf.

Проверяем изменения:

sysctl -p

Перезагружаемся

reboot

——————————————————————

Установка Postgre SQL

Скачиваем дистрибутивы с сайта Этерсофт:

(можно не париться с консолью, скачать в винде и закинуть в расшаренную папку)

wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/libpq5.5-9.2eter_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/postgre-etersoft9.2-contrib_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/postgre-etersoft9.2-seltaaddon_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/postgre-etersoft9.2-server_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/postgre-etersoft9.2_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/extra/postgre-etersoft9.2-docs_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/extra/postgre-etersoft9.2-plperl_9.2.1-eter1debian_i386.deb
wget http://updates.etersoft.ru/pub/Etersoft/Postgre@Etersoft/stable/Debian/7.0/extra/postgre-etersoft9.2-plpython_9.2.1-eter1debian_i386.deb

Устанавливаем Postgre@Etersoft

dpkg -i *.deb

В процессе установки запустится настройка локалей, в первом окне ни чего не отмечаем, нажимаем далее, во втором окне указываем локаль ru_RU.UTF-8 как локаль по умолчанию.

В конце установки получаем ошибки:

insserv: warning: script 'postgresql' missing LSB tags and overrides
insserv: warning: script 'postgresql.outformat' missing LSB tags and overrides

Для устранения этих двух ошибок необходимо добавить секции LSB в скрипт /etc/init.d/postgresql.

Делаем копию:

cp /etc/init.d/postgresql /etc/init.d/postgresql.old

Открываем в nano:

nano /etc/init.d/postgresql

Он должен начинатся с текста, для этого заменяем первую строку скрипта на текст:

#!/bin/bash
 ### BEGIN INIT INFO
 # Provides: postgresql
 # Required-Start: $local_fs
 # Required-Stop: $local_fs
 # Should-Start: $syslog
 # Should-Stop: $syslog
 # Default-Start: 2 3 4 5
 # Default-Stop: 0 1 6
 # Short-Description: Start postgresql.
 ### END INIT INFO

Далее правим файл postgresql.outformat:
Делаем копию:

cp /etc/init.d/postgresql.outformat /etc/init.d/postgresql.outformat.old

Открываем в nano:

nano /etc/init.d/postgresql.outformat

Файл /etc/init.d/postgresql.outformat должен начинатся с текста:

#!/bin/bash
 ### BEGIN INIT INFO
 # Provides: postgresql.outformat
 # Required-Start: $local_fs
 # Required-Stop: $local_fs
 # Should-Start: $syslog
 # Should-Stop: $syslog
 # Default-Start: 2 3 4 5
 # Default-Stop: 0 1 6
 # Short-Description: Start postgresql.outformat.
 ### END INIT INFO

Затем добавим скрипты автоматического запуска сервера уже без ошибок

update-rc.d postgresql defaults
update-rc.d postgresql.outformat defaults

Запускаем, при первом запуске создается кластер

/etc/init.d/postgresql start

Результат команды должен быть таков:

Initializing database: [ DONE ]
Starting postgresql service: [ DONE ]

Меняем пароль для учетной записи SQL-сервера postgres.

Делаем копию:

cp /var/lib/postgresql/data/pg_hba.conf /var/lib/postgresql/data/pg_hba.conf.old

Открываем в nano:

nano /var/lib/postgresql/data/pg_hba.conf

Сначала нужно изменить настройки безопасности, для чего в файле конфигурации /var/lib/postgresql/data/pg_hba.conf изменяем строчку:

local    all    all    peer

на строчку:

local    all    all    trust

Сохраним изменения и перезапустим Postgre SQL, для вступлений изменений настроек, командой

/etc/init.d/postgresql restart

Результат команды должен быть таков:

Stopping postgresql service: [ DONE ]
Starting postgresql service: [ DONE ]

Теперь соединяемся с SQL-сервером под учетной записью postgres и меняем пароль

учетной записи SQL-сервера postgres (т.е. делаем для пользователя postgres пароль 123456789):

psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD '123456789'"

Снова редактируем файл конфигурации /var/lib/postgresql/data/pg_hba.conf изменяем строчку:

local    all    all    trust

на строчку:

local    all    all    md5

и

local    all    all    0.0.0.0/0    ident

на строчку:

local    all    all    0.0.0.0/0    md5

Перезапускаем PostgreSQL:

/etc/init.d/postgresql restart

Перезагружаемся:

reboot

Проверка работоспособности.
Проверям статус сервера:

/etc/init.d/postgresql status

Результат команды должен быть таков:

pg_ctl: сервер работает (PID: 2240)
/usr/bin/postgres "-p" "5432" "-D" "/var/lib/postgresql/data"

Сервер запущен. Если, это не так, запустите сервер, так, как было описано выше.

Проверяем, использование порта:

netstat -plan | grep 5432
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 2240/postmaster
unix 2 [ ACC ] STREAM LISTENING 4772 2240/postmaster /tmp/.s.PGSQL.5432

Так и должно быть.

—————————————————

Примечания по пользователям бд.

чтобы зайти под пользователем postgres в консоли: psql -U postgres -W
Чтобы выйти: q
Просмотр зарегистрированных юзеров: du
Смена пароля: зайти под пользователем, выполнить: ALTER USER юзер PASSWORD ‘пароль’;
Проверяем занесенные базы: l

Создание нового пользователя и управление его правами:

Добавить нового пользователя можно командой :
CREATE USER имя_пользователя PASSWORD ‘пароль’;

Если есть надобность сделать обычного пользователя «суперпользователем» , то вводим
ALTER USER ‘имя_пользователя’ SUPERUSER;

Отменяем права супер пользователя:
ALTER USER ‘имя_пользователя’ NOSUPERUSER;

Команда ALTER USER:

ALTER USER Имя_пользователя [ [ WITH ] option [ … ] ]
SUPERUSER | NOSUPERUSER — Как говорилось выше , дать или отнять прова суперпользователя.
CREATEDB | NOCREATEDB — Дать разрешение создавать или запретить создавать базы данных пользователю.
CREATEROLE | NOCREATEROLE — Дать пользователю возможность создавать роли доступа.
CREATEUSER | NOCREATEUSER — Дать возможность пользователю создавать других пользователей или отнять данную привилегию.
ALTER USER Имя_пользователя RENAME TO Новое _имя_пользователя — Переименовать одного пользователя в другого.
Проверяем наличие пользователей, которые могут работать с базами данных:
du (в выводе будет список пользователей с их разрешениями).

Вход под желанным пользователем:
 psql –U имя_пользователя

—————————————————

Установка сервера 1С:Предприятие

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

Что надо из дистрибутива:

NLS-ы точно не нужно (это для дистрибов где русской кодировки нет)

WS-ка нужна для публикации веб-сервиса.

1c-enterprise83-common_8.3.4-365_i386.deb
1c-enterprise83-crs_8.3.4-365_i386.deb
1c-enterprise83-server_8.3.4-365_i386.deb
1c-enterprise83-ws_8.3.4-365_i386.deb

И устанавливаем:

cd /home/share/
dpkg -i 1c-enterprise83-common_8.3.4-365_i386.deb
dpkg -i 1c-enterprise83-server_8.3.4-365_i386.deb
dpkg -i 1c-enterprise83-ws_8.3.4-365_i386.deb
dpkg -i 1c-enterprise83-crs_8.3.4-365_i386.deb

Снова получаем ошибку missing LSB tags, для ее устранения уже привычным способом правим начало скрипта /etc/init.d/srv1cv83:

Но для начала сделаем копию:

cp /etc/init.d/srv1cv83 /etc/init.d/srv1cv83.old

Открываем в nano:

nano /etc/init.d/srv1cv83
#!/bin/bash
 ### BEGIN INIT INFO
 # Provides: srv1cv83
 # Required-Start: $local_fs
 # Required-Stop: $local_fs
 # Should-Start: $syslog
 # Should-Stop: $syslog
 # Default-Start: 2 3 4 5
 # Default-Stop: 0 1 6
 # Short-Description: Start 1C 8.3 server.
 ### END INIT INFO

Установим необходимые для работы 1С права:

chown -R usr1cv8:grp1cv8 /opt/1C
chmod 777 /opt/1C

И добавим скрипты автоматического запуска сервера 1С при старте системы и остановки при завершении работы:

update-rc.d srv1cv83 defaults

Установим некоторые дополнительные компоненты, необходимые для 1С:8.

apt-get install unixODBC
apt-get install t1utils
apt-get install msttcorefonts
apt-get install libgsf-bin
apt-get install imagemagick
apt-get install texlive-binaries
apt-get install libicu48 libicu48-dbg libicu-dev

Перезагружаем сервер:

reboot

————————————————————————————

Проверяем, все должно работать.

netstat -atu | more

если вот такие строки видно, то значит все должно быть хорошо.

tcp 0 0 *:1560 *:* LISTEN
tcp 0 0 *:postgresql *:* LISTEN
tcp 0 0 *:1540 *:* LISTEN
tcp 0 0 *:1541 *:* LISTEN

————————————————————————————

Создание базы данных.

На машине администратора установим оснастку «Администрирование серверов 1С:Предприятия» из дистрибутива платформы 1С для Windows. Для того, чтобы Windows машины могли обращаться по имени к Linux серверу в файл C:WindowsSystem32driversetchosts добавим строку вида:

192.168.0.6    serv1c

где 192.168.0.6 адрес, а serv1c имя нашего сервера.

ВЫРУБАЕМ ФАЕРВОЛ!!!!

Открываем оснастку «Администрирование серверов 1С Предприятия», выбираем пункт 1C:Enterprise 8.3 Central Servers и через меню Действие — Создать создаем (добавляем) наш сервер, в поле Имя указав serv1c.

Запускаем 1С и создаем новую базу.
Выбираем «Создание информ. базы без конфигурации».
Называем «Test1», на сервере 1С.

Кластер серверов: serv1c
Имя информационной базы: test1
Защищенное соединение: Выключено — иначе будут лезть ошибки
Тип СУБД: PostgreSQL
Сервер баз данных: serv1c
Имя базы данных: test1
Пользователь базы данных: postgres
Пароль: 123456789

По нажатию кнопки Готово будет создана новая база.

источник http://infostart.ru/public/238077/

P.S.: Всё работает, ошибок нет, но от этого варианта я отказался, т к почемуто PostgreSQL при выполнении операций использует только одно ядро из имеющихся 8-ми. из-за этого сильно снижается быстродействие. Как настроить его на использование нескольких ядер я не знаю, но вроде бы это нужно делать с помощью утилиты pg_bouncer, которая является посредником между 1с и СУБД. При установке на PostgreSQL от Etersoft появилось множество неудовлетворенных зависимостей, но при установке PostgreSQL с официального сайта, установить pg_bouncer удалось, но настроить взаимодействие БД с 1с не получилось. В итоге, промучившись пару недель и прочитав статьи по сравнению быстродействия различных СУБД в связке с 1с, я забросил это гиблое дело и пошел ставить 1с-ку на винду и MS SQL Express.

P.P.S.: Для желающих помучиться с Postgre, есть книжка по настройке, но я её не дочитал 🙂

А.Ю.Васильев. Работа с PostgreSQL

(Просмотрено 4 432 раз, 1 раз за сегодня)

Один комментарий к “Установка сервера 1с v8.3 + PostgreSQL на Linux Debian v7.3 под управлением Hyper-V

  1. Добрый день!
    По производительности что получилось? Сильно ли она снизилась за счет использования визуализации?
    Заранее спасибо за ответ!

Добавить комментарий

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