Современные компании стремительно переходят в облака и стараются перенести все рабочие процессы в облачные сервисы.
Облачные платформы и сервисы становятся популярнее с каждым днем, имея массу преимуществ перед работой на серверах. Речь не только о стоимости и простоте работы, но и безопасности.
Одной из самых востребованных облачных платформ на сегодняшний день является Microsoft Azure - надежное облако с постоянно расширяющимся комплексным набор облачных служб.
Имея в своём составе уникальные программы Azure позволяет значительно сократить расходы компании на работу всей IT-инфраструктуры, а также перенести необходимые для беспрерывного рабочего процесса программы и приложения.
Именно об этом и пойдёт речь в нашем кейсе про перенос и развёртывание 1С в облаке Microsoft Azure на базе Linux и Postgre 11.
Создаем группу ресурсов Azure
Группа ресурсов – это логическое объединение ресурсов Azure для упрощения управления и понимания взаимосвязи.
Указываем верную Подписку и Регион размещения
После создания - переходим в группу ресурсов, которую только что создали
Создаем ВМ с ОС CentOS
Переходим в Виртуальные машины и выбираем Добавить
При создании, убедимся в том, что Подписка, Группа ресурсов и Регион выбраны верно.
Задаём параметры виртуальной машины:
- Имя
- Образ ОС (CentOS 7 Minimal)
- Размер
- Учетная запись (Имя пользователя не должно быть Администратор (или Administrator)
- Пароль
- Общедоступные входящие порты (для подключения к виртуальной машине извне)
- Открытый ключ SSH
Для авторизации в ВМ будем использовать ключ SSH. Для этого сгенерируем пару. Проще для этого использовать PuTTY Key Generator.
На следующем шаге добавляем Диски:
- Диск ОС – SSD категории «Премиум»
- Диск для данных - SSD категории «Премиум»
- Диск для бэкапов - HDD категории «Стандарт»
Переходим к настройкам Сетевых подключений
Проверяем, чтобы все параметры создались новыми:
- Виртуальная сеть и Подсеть
- Общедоступный IP-адрес
- Группа безопасности сети
Переходим к параметрам мониторинга и управления ВМ: настраиваем нужные нам параметры и, по-необходимости – Автозавершение ВМ в нерабочие часы.
Дополнительные настройки и параметры тегирования мы, за ненадобностью, пропускаем и переходим к инициализации процесса создания ВМ
После того, как Azure подготовит и запустит наш виртуальный сервер для 1С, можем к нему подключиться.
Выбираем созданную машину и копируем Общедоступный IP.
Запускаем PuTTY, вводим IP, указываем наш приватный ключ. Подключаемся.
Теперь необходимо установить обновления операционной системы.
Все манипуляции необходимо производить от имени пользователя root
, либо командой sudo –i
повышать привилегии текущего пользователя
Обновляем систему и устанавливаем необходимый софт
Вводим команду yum update -y
и видим
Ставим софт
Вводим команду yum install tar gzip bzip2 net-tools mc nano -y
Отключаем SELinux
Открываем файл конфигурации:
nano /etc/selinux/config
Переключаем SELinux в режим работы permissive :
#SELINUX=enforcing
SELINUX=permissive
Ctrl
+ O
– записать
Ctrl
+ X
– выход
Добавляем з апись в hosts
Открываем файл:
nano /etc/hosts
Из такого вида
Приводим в такой:
127.0.0.1 localhost hostname hostname.local
где вместо “hostname” надо вписать имя хоста, а вместо “hostname.local” – имя хоста в домене, если домен используется
Ctrl
+ O
– записать
Ctrl
+ X
– выход
Отключаем ipv6
Открываем следующий файл:
nano /etc/sysctl.conf
добавляем в конец документа строчки
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Ctrl
+ O
– записать
Ctrl
+ X
– выход
Применяем настройки командой sysctl -p
видим следующее:
Загружаем дистрибутивы
Например, с помощью рекурсивной передачи файлов (команда pscp) в FAR Manager:
Вводим пароль для пользователя Linux и нажимаем Enter
Дожидаемся окончания передачи файлов и возвращаемся на Linux машину.
Устанавливаем postgresql
Переходим в папку с распакованными файлами
cd /home/username/linux_1c/postgresql_11.7_5.1C_x86_64_rpm/
Для проверки наличия всех необходимых для установки файлов выполняем команду ls
Устанавливаем командой yum install *.rpm
Подтверждаем
Монтируем диск для данных
Смотрим подключенные диски командой fdisk -l и в
идим
Нам нужен диск sdc
,
Начинаем разметку раздела: fdisk /dev/sdc
В строку Command (m for help)
:
Вводим n
- Partition type: Выбираем
p
- Partition number: Выбираем
1
- В строке First sector нажимаем «Enter»
- В строке Last sector нажимаем «Enter»
- Вводим
w
для записи и подтверждения
Размечаем диск и выбираем тип файловой системы: mkfs -t ext4 /dev/sdc1
Далее, нам нужно произвести монтирование разделов. Вводим команду nano /etc/fstab
в последнюю строчку нам надо вписать:
/dev/sdc1 /var/lib/pgsql/11/data/ ext4 defaults 0 0
Ctrl
+ O
– записать
Ctrl
+ X
– выход
Выполняем reboot
для перезагрузки
Переходим в каталог cd /var/lib/pgsql/11/data
Вводим ls
Видим папку lost+found и удаляем ее командой rm lost+found/ -d
Выбираем y
Поднимаемся выше cd ..
Необходимо назначить пользователя postgres владельцем папки data
Вводим ls -l
чтобы посмотреть список папок и их владельцев
Вводим chown postgres:postgres data/
И проверяем командой ls -l
Монтируем диск для бэкапов
Смотрим подключенные диски командой fdisk -l
Нам нужен диск sdd
Начинаем разметку раздела: fdisk /dev/sdd
В строку Command (m for help):
Вводим n
-
Partition type: Выбираем
p
-
Partition number: Выбираем
1
- В строке First sector: нажимаем «Enter»
- В строке Last sector: нажимаем «Enter»
-
Вводим
w
для записи и подтверждения
Размечаем диск и выбираем тип файловой системы: mkfs -t ext4 /dev/sdd1
Переходим в каталог cd /var/lib/pgsql/11/backups
Далее, нам нужно произвести монтирование разделов.
Вводим команду nano /etc/fstab
Откроется текстовый редактор Nano
в последнюю строчку нам надо вписать:
/dev/sdd1 /var/lib/pgsql/11/backups/ ext4 defaults 0 0
Ctrl
+ O
– записать
Ctrl
+ X
– выход
reboot
для перезагрузки
Инициализируем postgresql
Заходим под пользователем postgres: su – postgres
Переходим в каталог: cd /usr/pgsql-11/bin
Выполняем команду ./initdb --locale=ru_RU.UTF-8
Вводим exit
для выхода
Запускаем PostgreSQL
systemctl enable postgresql-11 systemctl start postgresql-11
Проверяем работоспособность командой systemctl status postgresql-11
Разрешаем авторизацию md5
Открываем следующий файл:
nano /var/lib/pgsql/11/data/pg_hba.conf
Если вы хотите разрешить подключение любого пользователя, указавшего правильный пароль, к любой базе данных экземпляра PostgreSQL с локальных адресов и использующих подключение md5, добавьте в файл pg_hba.conf следующую строку:
host all all 127.0.0.1/32 md5
Или, если вы хотите разрешить подключение любого пользователя, указавшего правильный пароль, к любой базе данных экземпляра PostgreSQL с адресов, начинающихся с 192.168.100 - добавьте такую строку:
host all all 192.168.100.0/24 md5
Ctrl
+ O
– записать
Ctrl
+ X
– выход
Перезапускаем PostgreSQL
systemctl restart postgresql-11
Добавляем пользователя user1c
Заходим под пользователем postgres:
su – postgres
Вводим последовательно команды
psql
create user user1c;
alter role user1c with password 'yourpassword';
(вместо yourpassword
поставьте нужный пароль)
alter role user1c superuser;
\q
exit
Конфигурируем postgres:
Открываем следующий файл:
nano /var/lib/pgsql/11/data/postgresql.conf
Вносим изменения в следующие параметры:
shared_buffers = 2GB
temp_buffers = 256MB
work_mem = 64MB
effective_cache_size = 4GB
effective_io_concurrency = 2
random_page_cost = 2.0
autovacuum = on
autovacuum_max_workers = 4
autovacuum_naptime = 20s
bgwriter_delay = 20ms
bgwriter_lru_multiplier = 4.0
bgwriter_lru_maxpages = 400
synchronous_commit = off
checkpoint_completion_target = 0.7
max_wal_size = 1GB
min_wal_size = 512MB
ssl = off
fsync = on
commit_delay = 1000
commit_siblings = 5
row_security = off
max_files_per_process = 1000
standard_conforming_strings = off
escape_string_warning = off
max_locks_per_transaction = 256
max_connections = 1000
Ctrl
+ O
– записать
Ctrl
+ X
– выход
systemctl restart postgresql-11
systemctl status postgresql-11
Ставим 1С удаляем лишние компоненты
Переходим в папку с дистрибутивами
cd /home/username/linux1c/srv1c/
Устанавливаем 1С
Ставим дополнительные модули
- Выполняем команду
- Если сервер 1С x64 -
yum -y install fontconfig freetype libgsf unixODBC fontconfig-devel ImageMagick
- Если сервер 1С x86 -
yum -y install fontconfig.i686 freetype.i686 libgsf.i686 unixODBC.i686 fontconfig-devel.i686 ImageMagick.i686
Подтверждаем
Выполнено
Ставим шрифты
Переходим в папку - cd /usr/share/fonts/
Создаем в ней папку - mkdir truetype
Переносим в нее ранее подготовленные шрифты
Далее, выполняем команду fc-cache –fv
Ставим 1С в автозагрузку
Выполняем команду systemctl enable srv1cv83
Выполняем команду systemctl start srv1cv83
Проверяем работоспособность командой systemctl status srv1cv83
Устанавливаем драйвер HASP
Для данного примера скачиваем драйвер по ссылке
Переходим в папку с нашими дистрибутивами
cd /home/username/linux1c/hasp
В этот каталог любым удобным образом поместим скачанный пакет установки драйвера. Поскольку драйвер использует 32-битные библиотеки, устанавливаем их:
yum install glibc.i686
Устанавливаем драйвер:
yum install *.rpm -y
Запускаем драйвер защиты HASP:
systemctl start haspd
Проверить статус можно так:
systemctl status haspd
Firewall
Также, необходимо открыть порты встроенного в CentOS Фаерволла. Делается это вот так:
firewall-cmd --permanent --add-port=1560/tcp && firewall-cmd --permanent --add-port=1561/tcp && firewall-cmd --permanent --add-port=1540/tcp && firewall-cmd --permanent --add-port=1541/tcp && firewall-cmd --permanent --add-port=1560-1591/udp
Применяем
firewall-cmd --reload
Проверяем
firewall-cmd --list-all
Создаём информационную базу данных
Запустим клиент 1С на другой виртуальной машине, но уже с ОС Windows и добавляем базу данных:
Видим, что база создалась в кластере и к ней можно подключаться и импортировать конфигурацию.