Терминальный сервер на Linux + сервер 1c PostgreSQL

Сегодня я выкладываю подробную проверенную инструкцию по организации терминального сервера на Linux

В первую очередь идём по ссылке Xubuntu desktop 14.05.02 и скачиваем дистрибутив. Собирал именно на этой версии. На других будут нюансы, которые выходят за рамки содержания этой статьи. Итак, погнали :-)

Предполагается, что вы уже установили ОС. Открываем терминал:

$ sudo apt-get update && apt-get upgrade
$ sudo apt-get install openssh-server
$ sudo restart ssh
$ sudo apt-get install git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev git
$ mkdir -p ~/xrdp-xorg
$ cd ~/xrdp-xorg
$ BD=`pwd`
$ cd "${BD}"

Клонируем последнюю сборку xrdp и пересобираем с кодеком rfxcodec:

$ git clone git://github.com/neutrinolabs/xrdp
$ cd xrdp
$ git submodule init
$ git submodule update
$ cd librfxcodec
$ ./bootstrap
$ ./configure
$ make
$ cd ..
$ ./bootstrap
$ ./configure --enable-fuse --enable-rfxcodec --disable-ipv6
$ make

Устанавливаем xrdp и сливаем xorg-xrdp бекенд:

$ sudo make install
$ sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin
$ sudo update-rc.d xrdp defaults
$ cd "${BD}"
$ wget https://github.com/neutrinolabs/xorgxrdp/releases/download/v0.2.0/xorgxrdp-0.2.0.tar.gz
$ tar xvfz xorgxrdp-0.2.0.tar.gz
$ cd "${BD}"/xorgxrdp-0.2.0

Настраиваем переключение раскладки с русского на английский язык сочетанием клавиш Ctrl+Shift.

$ kb_model="pc105"
$ kb_layout="us,ru"
$ kb_options="grp:ctrl_shift_toggle"
$ sed -ri.bak "s/(set.model)[^;]+/\1 = \"$kb_model\"/;s/(set.layout)[^;]+/\1 = \"$kb_layout\"/;s/(set.options)[^;]+/\1 = \"$kb_options\"/" xrdpkeyb/rdpKeyboard.c

Компилируем и устанавливаем в систему xorg-xrdp бекэнд:

$ ./bootstrap
$ ./configure
$ make
$ sudo make install

В файле /etc/xrdp/xrdp.ini поменять местами блоки [X11rdp] и [Xorg], чтобы у пользователя по умолчанию был правильный бэкэнд. При подключении к серверу нужно выбирать Xorg в списке сессий. Всё, у нас работает подключение к серверу через клиента с винды или с linux любым клиентом, поддерживающим rdp.

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

$ sudo apt-get install samba
$ sudo nano /etc/samba/smb.conf

Дописываем в конец файла:

[share]
comment = FS Share
path = /srv/samba/share
browsable = yes
guest ok = yes
read only = no
create mask = 0755

Сохраняем, закрываем и обратно в терминал )

$ sudo su
# mkdir -p /srv/samba/share
# chown nobody.nogroup /srv/samba/share/

Параметр -p говорит mkdir создать полное дерево каталога, если оно не существует.

# service smbd restart
# service nmbd restart

Теперь займемся настройкой сервера предприятия 1с.

$ sudo apt-get install -y libgsf-1-114 ttf-mscorefonts-installer imagemagick unixodbc libgsf-bin t1utils libreoffice
$ sudo apt-get install -y libreoffice-l10n-ru libreoffice-l10n-uk firefox firefox-locale-ru cups-pdf

Скачиваем и складываем в любую папку (wget-ом или кладем в ранее настроенную папку через самбу) дистрибутив 1с клиента и сервера и:

$ sudo dpkg -i 1c*.deb
$ sudo apt-get -f install

Если клиенты будут работать через RDP с файловой версией базы, то отключаем службу сервера 1с, т.к. она нужна была только для удовлетворения зависимостей:

$ sudo update-rc.d srv1cv83 disable

Если используется сетевой hasp-ключ, то пропишем параметры поиска:

$ sudo mkdir /opt/1C/v8.3/x86_64/conf
$ sudo su
# echo [NH_COMMON] >/opt/1C/v8.3/x86_64/conf/nethasp.ini
# echo  NH_TCPIP = Enabled>>/opt/1C/v8.3/x86_64/conf/nethasp.ini
# echo [NH_TCPIP]>>/opt/1C/v8.3/x86_64/conf/nethasp.ini
# echo  NH_SERVER_ADDR = 192.168.0.99>>/opt/1C/v8.3/x86_64/conf/nethasp.ini
# echo  NH_TCPIP_METHOD = UDP>>/opt/1C/v8.3/x86_64/conf/nethasp.ini

Редактируем общесистемную маску и меняем значение на umask 002: <.з>

$ sudo nano /etc/login.defs 

Всех терминальных пользоватлей относим в группу grp1cv8 (если не были отнесены ранее, можно и в другую группу). Меняем права на папку tmp:

$ sudo chown -R root:grp1cv8 /tmp
$ sudo chmod g+s /tmp

Предполагаем, что программа установлена в каталог /opt/1C, базы находятся в в каталоге /usr/local/1c_bases.
Устанавливаем пользователя и группу на каталог и подкаталоги программы.

$ sudo chown -R usr1cv8:grp1cv8 /opt/1C

Устанавливаем права доступа и владельцев на каталоги и подкаталоги баз данных:

$ sudo chown -R usr1cv8:grp1cv8 /usr/local/1c_bases
$ sudo chmod -R g+sw /usr/local/1c_bases

Ну, и конечно, все пользователи, которые работают с 1c должны принадлежать группе grp1cv8.

Как обновить платформу?
Скачать все файлы обновления для Linux с сайта 1с https://releases.1c.ru/, разархивировать всё в одну папку, перейти в нее в терминале:

$ sudo dpkg -i *.deb
$ sudo apt-get install -f

Важно, чтобы в этой папке находились deb-ы только необходимые для установки:

  • 1c-enterprise83-common-nls_версия_разрядность.deb
  • 1c-enterprise83-server-nls_версия_разрядность.deb
  • 1c-enterprise83-ws-nls_версия_разрядность.deb


Теперь установим PostgreSQL.

Настраиваем локали:

# locale-gen en_US
# locale-gen ru_RU
# update-locale LANG=ru_RU.UTF8
# dpkg-reconfigure locales

Доставляем зависимости:

$ sudo apt-get install libxslt1.1 ssl-cert libossp-uuid16
$ cd /tmp
$ wget http://ftp.ru.debian.org/debian/pool/main/i/icu/libicu48_4.8.1.1-12+deb7u3_amd64.deb
$ sudo dpkg -i libicu48*.deb
$ sudo rm libicu48*.deb

Ставим Постгре

$ sudo sh -c 'echo "deb http://1c.postgrespro.ru/deb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro-1c.list'
$ wget --no-verbose -O - http://1c.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO-1C | sudo apt-key add - && sudo apt-get update
$ sudo apt-get install postgresql-pro-1c-9.6
$ sudo service postgresql restart

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

# su postgres
$ cd
$ psql -U postgres -d template1 -c "alter user postgres PASSWORD 'jHGt54ghKrfDgfTfr';"

Где postgres - юзер, от которого будет запущен psql, user postgres - внутренний пользователь БД, а jHGt54ghKrfDgfTfr - пароль, назначаемый этому внутреннему пользователю БД.

Если все ок, то видим
ALTER ROLE

Далее:

# vi /etc/postgresql/9.6/main/pg_hba.conf

Для пользователя postgres приводим строку local all postgres peer к следующему виду:

local all postgres trust
$ exit

Не забываем зафиксировать пакеты PostgreSQL, дабы они не обновились они из репозиториев:

$ sudo apt-mark hold libpq5 postgresql-client-common postgresql-common postgresql-client-pro-1c-9.6 postgresql-common-pro-1c postgresql-contrib-pro-1c-9.6 postgresql-pro-1c-9.6

Перезапускаем службу постгре и смотрим её статус:

$ sudo service postgresql restart
$ sudo service postgresql status

Добавляем службу в автозапуск и перезагружаем:

# update-rc.d postgresql enable
# reboot now

Готово :-)

Вот и всё. Спасибо за внимание.

Надеюсь, что у вас всё получилось.
Если же нет, то добро пожаловать в раздел КОНТАКТЫ

Компонент комментариев CComment

IT-admins

IT-admins

8.00 - 17.00

☎ +7 (8512) 755-888
☎ +7 (905) 480-5470
☎ +7 (917) 199-8113
info@it-admins.ru


IT-admins © 2018