Содержание
Если клиенты находятся в закрытом от интернета контуре необходимо по инструкции от 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 Добавьте второй атрибут для выбора продукта для установки (идентификатор будет использоваться в скрипте)
3.7 Перейдите во вкладку Конфигурация скрипта и заполните тело скрипта
В блоке Добавления репозитория Р7 необходимо ввести Абсолютный путь
{% set name = salt['pillar.get']("app_name") %}
{% set source = salt['pillar.get']("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 вводим r7-office (на данный момент только он присутствует в локальном репозитории)
В поле license_file необходимо ввести содержимое файла лицензии в формате Base64
Получить это значение можно с помощью команды
cat <filename> | base64 -w0
После применения политка начнёт работать
Для проверки на пк в сети можно воспользоваться командой для ручного применения групповых политик
aldpro-salt-call state.apply gpupdate.gp
На примере данной статьи можно добавить в репозиторий приложения r7grafika и r7-organizer


















