Содержание
- 1. Настройка локального репозитория для продуктов Р7
- 2. Добавление пакета в репозиторий
- 3. Настройка Групповой политики
- 3.1. Зайдите в администрирование домена и выберите Групповые политики
- 3.2. Создаем новую групповую политику
- 3.3. Далее перейдите в Доп. параметры групповых политик
- 3.4. Новый параметр
- 3.5. Пример заполнения
- 3.6. Перейдите во вкладку Атрибуты параметра — Новый параметр
- 3.7. Перейдите во вкладку Конфигурация скрипта и заполните тело скрипта
- 3.8. Перейдите в созданную групповую политику и во вкладке Параметры компьютеров выберите созданную групповую политику
- 3.9. Добавление подразделения для применения политики
- 4. Применение политики
В статье описан способ централизованной установки и активации продуктов Р7 (на примере редактора Р7-Офис) на всех компьютерах домена ALDPro с использованием механизма групповых политик.
Требования к оборудованию
- Процессор двухъядерный с тактовой частотой 2 ГГц или лучше;
- Свободной оперативной памяти не менее 2 Гб;
- Свободное место на жестком диске не менее 2 Гб.
Дополнительные требования
Наличие уже настроенного локального репозитория
Если клиенты находятся в закрытом от интернета контуре необходимо по инструкции от ALDPro подключить репозиторий с iso образом ОС Astra.
1. Настройка локального репозитория для продуктов Р7
1.1. Перейдите в Репозитории ПО

1.2. Создайте Новый репозиторий

1.3. Заполните и нажмите Сохранить

После сохранения перейдите в созданную политику и запишите Абсолютный путь до репозитория, он понадобится для настройки репозиториев на клиентских ПК.
2. Добавление пакета в репозиторий
2.1. Перейдите во вкладку Версии и нажмите Новая версия

2.2. Необходимо выбрать Пакеты

2.3. Далее заполняйте по примеру

Нажмите Сохранить.
2.4. Перейдите во вкладку Текущее содержимое и нажмите Загрузить пакет

Выбираете нужный пакет и загружаете:

2.5. После загрузки пакет появится в списке, после этого нажимаем кнопку Опубликовать

3. Настройка Групповой политики
3.1. Зайдите в администрирование домена и выберите Групповые политики

3.2. Создаем новую групповую политику
Вводим имя и нажимаем Сохранить.
3.3. Далее перейдите в Доп. параметры групповых политик

3.4. Новый параметр

3.5. Пример заполнения

3.6. Перейдите во вкладку Атрибуты параметра — Новый параметр
3.6.1. Заполняем атрибут для копирования файла лицензии (идентификатор будет использоваться в скрипте)

3.6.2. Добавьте второй атрибут для выбора продукта для установки (идентификатор будет использоваться в скрипте)
Добавьте второй атрибут для выбора продукта для установки.
Идентификатор: app_name (строго обязательно, именно это имя будет вызвано в скрипте).
Значение этого атрибута app_name будет подставлено в скрипт вместо переменной name.
То есть, создавая здесь app_name, вы задаете имя для переменной, которая будет использоваться далее в логике установки.

3.7. Перейдите во вкладку Конфигурация скрипта и заполните тело скрипта
- В указании переменных необходимо ввести значение Уникального Идентификатора дополнительного параметра Групповой политики из п.3.5.
- В блоке Добавления репозитория Р7 необходимо ввести Абсолютный путь
## В данном примере
#{% set name = salt['pillar.get']('aldpro-hosts:' + host + ":rbta_ldap_custom_gp_gost_install:app_name") %}
#{% set source = salt['pillar.get']('aldpro-hosts:' + host + ":rbta_ldap_custom_gp_gost_install:license_file") %}
##{% set host = salt['grains.get']('nodename') %}
{% set name = salt['pillar.get']('aldpro-hosts:' + host + ":<Уникальный идентификатор доп.политики из п.3.5>:app_name") %}
{% set source = salt['pillar.get']('aldpro-hosts:' + host + ":<Уникальный идентификатор доп.политики из п.3.5>:license_file") %}
Добавление репозитория Р7:
pkgrepo.managed:
- humanname: r7-office
- name: deb [trusted=yes] <Абсолютный путь к репозиторию> latest main
- file: /etc/apt/sources.list.d/r7.list
Обновление:
pkg.uptodate:
- refresh: True
Установка продукта Р7:
pkg.installed:
- names:
- {{ name }}
{% if name == 'r7-office' %}
Активация Р7-Редактор:
file.directory:
- name: /etc/r7-office/license
- user: root
- group: root
- mode: '0777'
- makedirs: True
- recurse:
- user
- group
- mode
cmd.run:
- name: "echo {{ source }} | base64 -d > /etc/r7-office/license/license.lickey"
- unless: 'test -f /etc/r7-office/license/license.lickey'
- shell: /bin/bash
{% elif name == 'r7-organizer' %}
Активация Р7-Органайзер:
cmd.run:
- name: "echo {{ source }} | base64 -d > /mnt/license.lickey"
- unless: 'test -f /mnt/license.lickey'
- shell: /bin/bash
Создание скрипта:
file.managed:
- name: /tmp/activate.sh
- contents: |
#!/bin/bash
SOURCE_FILE="/mnt/license.lickey"
while IFS=: read -r username _ uid gid _ homedir _; do
if [ "$uid" -ge 1000 ] && [ -d "$homedir" ]; then
mkdir -p "$homedir/.r7organizer/license_pro/"
cp "$SOURCE_FILE" "$homedir/.r7organizer/license_pro"
chown -R "$username":"$gid" "$homedir/.r7organizer"
rm -fr "$homedir/.r7organizer/demo"
fi
done < /etc/passwd
- user: root
- group: root
- mode: 600
Установка лицензии для доменных пользователей:
{% set active_domain_users = salt['aldpro_user.get_domain_user_sessions']() %}
{% for user in active_domain_users %}
{% set user_info = salt['user.info'](user) %}
{% if user_info %}
add_license_for_{{ user }}:
file.managed:
- name: {{ user_info.home }}/.r7organizer/license_pro/license.lickey
- source: /mnt/license.lickey
- user: {{ user }}
- group: {{ user }}
- mode: 644
- makedirs: True
- require:
- user: {{ user }}
{% endif %}
{% endfor %}
Выполнение скрипта:
cmd.script:
- source: /tmp/activate.sh
Удаление скрипта:
file.absent:
- name: /tmp/activate.sh
Удаление временного файла лицензии:
file.absent:
- name: /mnt/license.lickey
{% endif %}Заполните комментарий и сохраните
3.8. Перейдите в созданную групповую политику и во вкладке Параметры компьютеров выберите созданную групповую политику

3.9. Добавление подразделения для применения политики
Перейдите во вкладку Подразделения и нажмите Добавить подразделение:

4. Применение политики
Для применения политики необходимо заполнить атрибуты.
В поле app_name (идентификатор которого мы создали в п. 3.6.2) введите точное имя пакета, который требуется установить. Именно это значение подставится в скрипт вместо переменной name.
Для установки редактора введите: r7-office
На данный момент в репозитории доступен только пакет r7-office.
В поле license_file необходимо ввести содержимое файла лицензии в формате Base64.
Получить это значение можно с помощью команды:
cat <filename> | base64 -w0
После применения политика начнёт работать.
Для проверки на ПК в сети можно воспользоваться командой для ручного применения групповых политик:
aldpro-salt-call state.apply gpupdate.gp
На примере данной статьи можно добавить в репозиторий приложения r7grafika и r7-organizer.








