Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Сервер лицензирования
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Установка Р7-Офис. Корпоративный сервер для Ansible

Обновлено: 10.03.24

В этой статье рассмотрим установку программного продукта Р7 Сервер Базовый в архитектуре Middle используя ansible на операционных системах Linux (ubuntu 18-22, debian 10-11, astra linux 1.7.3 orel, RedOS_7.3.2, Centos 7-8).

Требования

Операционная система Ubuntu 18-22, Debian 10-11, Astra linux 1.7.3 Orel, RedOS_7.3.2, Centos 7-8

  • Для корпоративного сервера
    • Процессор: рекомендуется от 6 ядер
    • Оперативная память: рекомендуется от 12 Гб
    • Свободное место на жестком диске: рекомендуется от 50 Гб
    • Python version 3.*
  • Для документ сервера
    • Процессор: рекомендуется от 4 ядер
    • Оперативная память: рекомендуется от 8 Гб
    • Свободное место на жестком диске: рекомендуется от 50 Гб
    • Python version 3.*
  • Для базы данных mysql
    • Процессор: рекомендуется от 2 ядер
    • Оперативная память: рекомендуется от 2 Гб
    • Свободное место на жестком диске: рекомендуется от 15 Гб
    • Python version 3.*
  • Для elasticsearch
    • Процессор: рекомендуется от 4 ядер
    • Оперативная память: рекомендуется от 6 Гб
    • Свободное место на жестком диске: рекомендуется от 50 Гб
    • Python version 3.*

1. Разверните 4 ( 5 в случае если будет использоваться вынесенный elastic) виртуальные машины для следующих сервисов:

  • CS
  • DS
  • mysql master
  • mysql slave
  • elastic

2. Установите Python и Ansible на машину, с которой будет осуществляться запуск плейбука:

DEB:

sudo apt install python3
sudo apt install ansible

RPM:

sudo yum install python3
sudo yum install ansible

3. Скачайте данный репозиторий к себе на рабочую машину

Устанавливаем утилиты

DEB:

apt install wget unzip

RPM:

yum install wget unzip

Скачиваем архив:

wget https://download.r7-office.ru/ansible/cs-middle-main.zip
unzip cs-middle-main.zip
cd cs-middle-main

4. Запуск плейбука

Для запуска скрипта необходимо заполнить переменные которые находятся:

  • inventory/hosts
  • inventory/group_vars/all/main.yml
  • поместите сертификаты ssl в папку cs-middle/roles/cs_ds_ssl/files/ и укажите имя сертификатов в переменной path_cert_cs/path_cert_ds в inventory/group_vars/all/main.yml а так же имя dns имя сервера DS и CS (не обязательно если будет использоваться http)

Примеры hosts и main.yml ниже.

4.1. Файл находится по пути cs-middle/inventory/hosts

Заполните следующие переменные:

  • ansible_host: ip адрес хоста
  • ansible_port: порт для подключения по ssh
  • ansible_user: пользователь для подключения по ssh

4.2. Заполните глобалные переменные в файле main.yml (не обязательно)

Файл находится по пути cs-middle/inventory/group_vars/all/main.yml (описание глобальных переменных ниже)

4.3. Запустите плейбук

Для запуска плейбука используйте следующую команду

  • Установка cs_middle + elasticsearch + https:
ansible-playbook -i inventory/hosts cs.yml
  • Установка cs_middle:
ansible-playbook -i inventory/hosts cs.yml  --tags "cs_middle"
  • Установка cs_middle + elasticsearch:
ansible-playbook -i inventory/hosts cs.yml  --tags "cs_middle, elc"
  • Установка cs на одном хосте:
ansible-playbook -i inventory/hosts cs.yml  --tags "cs"
  • Установка cs_middle + https:
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i inventory/hosts cs.yml  --tags "cs_middle_https"

где:

  • ANSIBLE_HOST_KEY_CHECKING — переменная среды, используемая в Ansible для указания того, должен ли Ansible проверять ключи хостов при подключении к узлам. Когда ANSIBLE_HOST_KEY_CHECKING установлен в True, Ansible проверит ключи хостов и отклонит подключение, если обнаружит несоответствие ключей. Если установлено значение False, Ansible не будет проверять ключи хостов.
  • -i inventory/hosts — указывает путь к инвентарному файлу, который содержит информацию о хостах, на которых будет выполняться плейбук. В данном случае, Ansible будет использовать файл hosts в папке inventory
  • cs.yml — указывает на плейбук, который нужно выполнить. В данном случае, Ansible будет выполнять плейбук, который находится в файле cs.yml
  • --tags "cs_middle, elc" — фильтрует задачи, которые будут выполнены в плейбуке на основе указанных тегов. В данном случае, будут выполнены только задачи, помеченные тегами cs_middle и elc.

Пример inventory/hosts

[cs]
cs_1 ansible_host=192.168.1.1 ansible_port=22 ansible_user=ssh_user
[ds]
ds_node ansible_host=192.168.1.2 ansible_port=22 ansible_user=ssh_user
[master_db]
master_node ansible_host=192.168.1.3 ansible_port=22 ansible_user=ssh_user
[slave_db]
slave_node ansible_host=192.168.1.4 ansible_port=22 ansible_user=ssh_user
[elc]
elastic_node ansible_host=192.168.1.5  ansible_port=22 ansible_user=ssh_user

Переменные hosts

varsОписание
cs_1хост, на котором будет установлен корпоративный сервер (оставляем по умолчанию)
ds_nodeхост, на котором будет установлен документ сервер (оставляем по умолчанию)
master_nodeхост, на котором будет установлена база данных mysql master (оставляем по умолчанию)
slave_nodeхост, на котором будет установлена база данных mysql svale (оставляем по умолчанию)
elastic_nodeхост, на котором будет установлен elasticsearch (оставляем по умолчанию)
ansible_hostip адрес хоста
ansible_portпорт для подключения через ssh ( по умолчанию 22)
ansible_userпользователь для подключения по ssh

Пример inventory/group_vars/all/main.yml

cs: "{{ hostvars[groups['cs'][0]].ansible_host }}" 
ds: "{{ hostvars[groups['ds'][0]].ansible_host }}"  
ms: "{{ hostvars[groups['slave_db'][0]].ansible_host }}" 
mm: "{{ hostvars[groups['master_db'][0]].ansible_host }}"
elc: "{{ hostvars[groups['elc'][0]].ansible_host }}"
mysql_root_db_pass: "P@SSw0rd"
mysql_root_db_user: root
mysql_repl_user:
  - name: repl
    pass: "Passw0rd"
    host: "%"
    priv: "*.*:REPLICATION SLAVE"
mysql_cs_repl:
  - name: cs_user
    pass: "Passw0rd"
    priv: "*.*:ALL"
    host: "%"
    db_name: r7-office
    db_host: "{{ hostvars[groups['master_db'][0]].ansible_host }}"
DS_password: "Passw0rd"
DS_db_psql: r7office
DS_psql_user: r7office
DS_psql_pass: r7office
#HTTPS
#CS
cs_https: cs.test.ru
path_cert_cs: cs_r7-office.crt
path_keys_cs: cs_r7-office.key
#DS
ds_https: ds.test.ru
path_cert_ds: ds_r7-office.crt
path_key_ds: ds_r7-office.key

Переменные group_vars

varsОписание
csip адрес хоста для корпоративного сервера. Берет значение ansible_host из файла inventory/hosts
dsip адрес хоста для документ сервера. Берет значение ansible_host из файла inventory/hosts
msip адрес хоста для базы данных (Master). Берет значение ansible_host из файла inventory/hosts
mmip адрес хоста для базы данных (Slave). Берет значение ansible_host из файла inventory/hosts
elcip адрес хоста для elasticsearch. Берет значение ansible_host из файла inventory/hosts
mysql_root_db_passпароль от пользователя root для входа в mysql
mysql_root_db_userпользователь для входа в mysql
mysql_repl_userпеременные для настройки mysql Master с mysql Slave.
name — имя пользователя
pass — пароль от пользователя
host — ip адрес , с которого разрешен вход под данным пользователем ( если указать % то доступ будет разрешен с любого ip)
priv- привилегии пользователя
mysql_cs_replпеременные для интеграции корпоративного сервера с Mysql базой.
name — имя пользователя
pass — пароль от пользователя
priv- привилегии пользователя
host — ip адрес , с которого разрешен вход под данным пользователем (если указать % то доступ будет разрешен с любого ip)
DS_passwordпароль для интеграции документ сервера с корпоративным сервером
DS_db_psqlимя базы данных для документ сервера
DS_psql_userимя пользователя для базы данных документ сервера
DS_psql_passпароль для базы данных документ сервера
cs_httpsDNS имя сервера CS. Необходимо указывать при использовании https
path_cert_csимя или путь до сертификата CS. В случаи если сертификат находится по локальному пути /cs-middle/roles/cs_ds_ssl/files/ необходимо указать имя. Если сертификат находится в другом месте, указываем путь до сертификата /var/certs/cs_uatr.ru.cert
path_keys_csимя или путь до ключа сертификата CS. В случаи если ключ находится по локальному пути /cs-middle/roles/cs_ds_ssl/files/ необходимо указать имя. Если ключ находится в другом месте, указываем путь до него /var/certs/cs_key_uatr.ru.cert
ds_httpsDNS имя сервера DS. Необходимо указывать при использовании https
path_cert_dsимя или путь до сертификата DS. В случаи если сертификат находится по локальному пути /cs-middle/roles/cs_ds_ssl/files/ необходимо указат имя. Если сертификат находится в другом месте, указываем путь до сертификата /var/certs/ds_uatr.ru.cert
path_key_dsимя или путь до ключа сертификата DS. В случаи если ключ находится по локальному пути /cs-middle/roles/cs_ds_ssl/files/ необходимо указать имя. Если ключ находится в другом месте, указываем путь до него /var/certs/ds_key_uatr.ru.cert

Лицензирование Документ сервера

Если у вас есть лицензия для документ сервера, ее необходимо переместить в папку roles/ds/templates/license.lic

 

Была ли эта статья полезной?

Поделитесь пожалуйста своим мнением

      В статье есть ошибкиРекомендации не помоглиТекст трудно понятьСодержание статьи не соответствует заголовкуДругое