воскресенье, 22 июля 2012 г.

Установка 1C Enterprise 8.2.15.301 под CentOS 6.3

Неавно решил попробовать поставить серверную часть 1C:Предприятие под линуксом, тем более, что 32-разрядный ключ защиты HASP всё равно лежит без дела, да и нашёлся свободный железный сервачок под это дело, правда всего с 1Гб памяти, зато с 6 SCSI дисками. Два самых больших из которых 140Гб, я поставил в зеркало, а остальные 72 Гб в RAID5.

Имя сервера srv1c
IP-Адрес: 192.168.0.101
DNS: Работают под Windows Server 2008 R2 и имеют адреса 192.168.0.100 и 192.168.0.200.


Предварительная настройка системы

Устанавливаем базовую систему, прописываем IP, шлюз по-умолчанию и имя хоста.
Прописываем IP:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="00:30:48:27:BF:3E"
NM_CONTROLLED="yes"
ONBOOT="yes"
IPADDR="192.168.0.101"
NETMASK="255.255.255.0"

Не забываем выставить onboot в yes, для того, чтобы сетевой интерфейс поднимался автоматически.


Добавляем шлюз (gateway):

# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=srv1c.doomgate.local
GATEWAY="192.168.0.222"

Настраиваем DNS и имя домена:
# /cat/resolv.conf
domain doomgate.local
nameserver 192.168.0.100
nameserver 192.168.0.200

Перезапускаем сеть:
# service network restart

И убеждаемся в работоспособности сетевого интерфейса:
# ifconfig

Обновляем систему до актуального состояния:
# yum update

Теперь отключим подсистему безопасности SELinux:
#vi /etc/selinux/config

И настроим или отключим iptables:
# chkconfig iptables off
# chkconfig ip6tables off

Перезагружаем машину, для того, чтобы изменения вступили в силу:
# reboot

Теперь создаём на DNS a-запись с именем хоста. Это необходимо сделать, чтобы не возникало ошибки сетевого доступа к серверу (Windows Sockets – 110001(0x00002A9F)).

Установка драйвера ключа защиты HASP

Создаём директорию для файлов и переходим в неё:
# mkdir ~/hasp
# cd hasp/

Скачиваем с сайта производителя ftp://ftp.aladdin.com/pub/hasp/hl/linux/ необходимые нам паекеты:


Распаковываем HDD_RPM_RedHat_i386.tar.gz
Устанавливаем драйвер ключа защиты:
# yum install ./aksusbd-redhat-1.10-1.i386.rpm
И аналогично устанавливаем hasplm.

Вставляем электронный ключ защиты HASP в сервер и запускаем демон:
# service aksusbd start
# service hasplm restart

Установка PostgreSQL

Установим необходимые пакеты:
# yum install crontabs tmpwatch sudo wget file

Добавляем необходимые репозитории atrpms и epel:
rpm -ivh http://mirror.yandex.ru/epel/6/i386/epel-release-6-7.noarch.rpm
rpm -ivh http://dl.atrpms.net/el6.1-i386/atrpms/stable/atrpms-repo-6-4.el6.i386.rpm
rpm -ivh http://elders.princeton.edu/data/puias/unsupported/5/i386/msttcorefonts-2.0-1.noarch.rpm

Ставим необходимые пакеты:
# yum install xorg-x11-xfs chkfontpath ttf2pt1 unixODBC ImageMagick

Создаём папку для дистрибутива базы данных:
# mkdir ~/psql
# cd ~/psql

Качаем готовую сборку PostgreSQL подготовленную Ethersoft.
http://updates.etersoft.ru/pub/Etersoft/Postgres@Etersoft/stable/x86_64/CentOS/6/


И устанавливаем пакеты:
# yum localinstall --nogpgcheck *.rpm

Инициализируем базу данных:
# su postgres
initdb -D /var/lib/pgsql/data --locale=ru_RU.UTF-8
exit

Добавляем PostgreSQL в автозагрузку и запускаем его:
# chkconfig postgresql on
# service postgresql start

Задаём пароль для пользователя в базе данных:

# su postgres
psql postgres
postgres=# alter user postgres with password 'ПАРОЛЬ';
ALTER ROLE
postgres=# \q
exit

Отредактируем файл /var/lib/pgsql/data/pg_hba.conf раскомментировав строку
host all all 127.0.0.1/32 trust
и заменив значение trust на md5
host all all 127.0.0.1/32 md5

Отредактируем файл /var/lib/pgsql/data/postgresql.conf изменив в нём следующие значения:
listen_addresses = '127.0.0.1' # будем соединяться только локально
effective_cache_size = 2048MB # это значение рекомендуется выставить в половину от установленной на сервере оперативной памяти.
fsync = on # синхронная запись, on повышает надёжность, off скорость.

Остальные настройки уже специфичный тюнинг PostgreSQL, и требуют понимания его работы, так, что на этом настройку базы можно завершить и приступить к установке самого 1С:Предприятие.

Установка 1C Enterprise 8.2.15.301

Идём на http://users.v8.1c.ru авторизуемся и качеме необходимый нам дистрибутив.
В моём случае это http://dl01.v8.1c.ru/get/Info/Platform/8_2_15_301/rpm.tar.gz.

Создаём папку для дистрибутива
# mkdir ~/1c
# cd ~/1c

Загружаем туда полученные файлы через scp, sshfs или любым удобным для вас способом, и устанавливаем их:
# yum --nogpgcheck localinstall *.rpm

После установки кофигурируем сервер, запустив скрипт настройки config_server:
# cd /opt/1C/v8.2/x86/utils/
# ./config_server

Если вы ставите версию x86_64 и у вас выдаёт
ls: cannot access /lib/libc-*.so: No such file or directory
то поставим 32 битные либы glibc

Если скрип настройки говорит об отсутствии libglib-2.0, нужно создать символическую ссылку на него:
# ln -s /lib/libglib-2.0.so.0 /usr/lib/libglib-2.0.so
Дело в том, что библиотека в системе есть, но скрипт настройки и сервер 1c ищет её в /usr/lib, или /usr/lib64 вместо /lib или /lib64.

Необходимо установить 32 битные библиотеки glibc:
# yum install glibc.i686

После устранения этих проблем повторно запускаем скрипт настройки сервера, он должен немного призадумавшись ничего не вывести. Результатом его работы будет файл /opt/1C/v8.2/x86/conf/grcmncfg/type.xml.

Установка SAMBA

Для отображения сервера в сети Windows необходимо поставить samba.
# yum install samba

Далее правим /etc/samba/smb.conf под свои нужды (можно предусмотреть каталлог для выгрузки резервных копий базы), добавляем nmbd и smbd в автозагрузку и запускаем их.
#chkconfig nmb on
#chkconfig smb on
#service nmb start
#service smb start

Теперь настройка окончена, можно запускать клиент 1C и приступить к созданию базы.
Для администрирования кластера серверов 1С, можно установить "консоль управления кламтером серверов". Она позволит завершать сеансы пользователей необходимой для выгрузки информационной базы.

Публикация 1С веб-клиента

Устанавливаем apache2:
# yum install httpd
Переходим в директорию, где установлена 1с, и запускаем скрипт настройки webinst с параметрами:
# cd /opt/1C/v8.2/x86
# ./webinst -apache22 -wsdir itil -dir '/var/www/html/itil/' -connStr \ 'Srvr="srv1c.doomgate.local";Ref="itil"' -confPath /etc/httpd/conf/httpd.conf

Параметры:
-wsdir, задаёт адрес базы, в моём случае это будет http://srv1c.doomgate.local/itil/
-dir, директория, в которой будет размещаться файл default.vrd
-connStr, строка соединения с базой 1с, в которой Srvr - адрес сервера 1с, а Ref – имя базы данных.
-confPath, должен указывать путь к фалйу конфигурации apache — httpd.conf

После чего скрипт внесёт в httpd.conf сервера необходимые изменения, и выдаст:
Installation is successfully completed.
acp: /etc/httpd/conf/httpd.conf
rd: /var/www/html/itil/
vd: /etc/httpd/conf/httpd.conf

Теперь необходимо назначить владельца и группу для файла конфигурации 1с:
# chown apache:apache /var/www/html/itil/default.vrd

Далее по желанию, вносим apache в автозагрузку, и запускаем его:
# chkconfig httpd on
# service httpd start

Теперь можно открыть в браузере страничку http://srv1c.doomgate.local/itil/, и если всё сделано верно, должен появится интерфейс веб-клиента 1с.

Настройка Фаерволла

Теперь настроим iptables.

#!/bin/bash
# Сброс настроек
iptables -F

# Установим политики по умолчанию
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# Разрешаем loopback интерфейс
iptables -A INPUT -i lo -j ACCEPT

# Отклоняем некорректные icmp пакеты
iptables -I INPUT -p icmp -f -j DROP

# REL, ESTB allow
iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT

# Защитим SSH от брутфорса
iptables -A INPUT -p tcp --syn --dport 22 -m recent --name root --set
iptables -A INPUT -p tcp --syn --dport 22 -m recent --name root --update --seconds 30 --hitcount 3 -j DROP

# Разрешаем рабочие порты
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 137 -j ACCEPT
iptables -A INPUT -p tcp --dport 1540 -j ACCEPT
iptables -A INPUT -p tcp --dport 1541 -j ACCEPT
iptables -A INPUT -m multiport -p tcp --dports 1560:1591 -j ACCEPT

# Разрешение главных типов протокола ICMP
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT
Теперь ставим клиенты на рабочие машины и настраеваем подключение к базе.

Комментариев нет:

Отправить комментарий