Облачные платформы и сервисы становятся популярнее с каждым днем, имея массу преимуществ перед работой на серверах. Речь не только о стоимости и простоте работы, но и безопасности.
Имея в своём составе уникальные программы 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
- Для данного примера скачиваем драйвер по адресу:
http://ftp.etersoft.ru/pub/Etersoft/HASP/last/x86_64/CentOS/7/haspd-7.60-eter1centos.x86_64.rpm
- Переходим в папку с нашими дистрибутивами
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 и добавляем базу данных:
Видим, что база создалась в кластере и к ней можно подключаться и импортировать конфигурацию.