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

Распространение десктопных приложений и лицензий через Ansible

Обновлено: 23.12.25

1. Установка приложений через репозиторий

1.1. Установка/обновление Р7-Органайзер

1.1.1. Создайте файл r7-organizer.yml со следующим содержанием:

---
- name: Установка Р7-Органайзер
  hosts: all
  gather_facts: true
  become: true
  tasks:
    - name: Определение пакетного менеджера
      ansible.builtin.debug:
        var: ansible_pkg_mgr
      # register: ansible_pkg_mgr
 
    - name: Установка через APT
      block:
        - name: Установка GPG ключа
          ansible.builtin.apt_key:
            url: https://download.r7-office.ru/repos/RPM-GPG-KEY-R7-OFFICE.public
            state: present
            keyring: /etc/apt/trusted.gpg.d/r7.gpg
 
        - name: Изменение прав на ключ
          ansible.builtin.file:
            path: /etc/apt/trusted.gpg.d/r7.gpg
            mode: '0644'
 
        - name: Добавить репозиторий в файл
          ansible.builtin.apt_repository:
            repo: 'deb https://downloads.r7-office.ru/repository/r7-desktop-astra/ astralinux main'
            state: present
            filename: r7
 
        - name: Копирование файла лицензии
          ansible.builtin.copy:
            src: /mnt/license.lickey
            dest: /mnt/license.lickey
 
        - name: Копирование файла auth.conf.d/r7.conf
          ansible.builtin.copy:
            src: /mnt/r7.conf
            dest: /etc/apt/auth.conf.d/r7.conf
 
        - name: Установка прав на файл r7.conf
          ansible.builtin.file:
            path: /etc/apt/auth.conf.d/r7.conf
            mode: '600'
 
        - name: Обновление APT
          ansible.builtin.apt:
            update_cache: yes
 
        - name: Установка/обновление пакета r7-organizer
          ansible.builtin.apt:
            name: r7-organizer
            state: latest
 
        - name: Активация
          ansible.builtin.shell: |
              #!/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
              rm -f /mnt/license.lickey
 
      when: ansible_pkg_mgr == "apt"
 
    - name: Установка через YUM
      block:
        - name: Создать директорию для репозиториев yum
          ansible.builtin.file:
            path: /etc/yum.repos.d
            state: directory
 
        - name: Добавление репозитория r7
          ansible.builtin.yum_repository:
            name: r7
            description: r7
            baseurl: https://downloads.r7-office.ru/repository/r7-desktop-yum/
            enabled: 1
            gpgcheck: 1
            gpgkey: https://download.r7-office.ru/repos/RPM-GPG-KEY-R7-OFFICE.public
            sslverify: 0
            username: desktop
            password: gyxiLab84FByn7sCTd5JY
 
        - name: Выполнение команды yum makecache
          yum:
            update_cache: yes
            state: present
 
        - name: Установка/обновление пакет r7organizer
          yum:
            name: r7organizer
            state: latest
 
        - name: Активация
          shell: |
            #!/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
            rm -f /mnt/license.lickey
             
      when: ansible_distribution == "REDOS" or ansible_distribution == "RED OS" or ansible_pkg_mgr == "dnf" or ansible_pkg_mgr == "yum"

1.1.2. Создайте файл inventory.yaml, в котором нужно указать список клиентов, на которых необходимо выполнить установку

all:
  hosts:
    client.domain.test:
      ansible_host: 192.168.100.111
      ansible_user: root
      ansible_password: password
    client123.domain.test:
      ansible_host: 192.168.100.112
      ansible_user: root
      ansible_password: password

Где,

  • client.domain.test — имя клиента;
  • 192.168.100.111 — IP-адрес клиента;
  • root — пользователь с правами на установку приложений;
  • password — пароль пользователя.

1.1.3. Проверьте подключение указав устройства из inventory.yaml командой:

ansible all -m ping -i inventory.yml
Важно

Перед запуском playbook убедитесь, что на сервере ansible находится файл лицензии по указанному пути /mnt/license.lickey и файл авторизации /mnt/r7.conf со следующим содержимым:

 

machine downloads.r7-office.ru
login desktop
password gyxiLab84FByn7sCTd5JY

1.1.4. Запустите playbook с использованием inventory.yaml командой:

ansible-playbook -i inventory.yml r7-organizer.yml

1.2. Установка/обновление Р7-Редактор

1.2.1. Создайте файл r7-desktop.yml со следующим содержанием:

---
- name: Установка Р7-Редактор
  hosts: all
  gather_facts: true
  become: true
  tasks:
    - name: Определение пакетного менеджера
      ansible.builtin.debug:
        var: ansible_pkg_mgr
 
    - name: Установка через APT
      block:
        - name: Установка ключа
          apt:
            deb: https://download.r7-office.ru/repos/dist/r7-office-keys_1.0-1_all.deb
            state: present
 
        - name: Изменение прав на ключ
          ansible.builtin.file:
            path: /etc/apt/trusted.gpg.d/r7.gpg
            mode: '0644'
 
        - name: Добавить репозиторий в файл
          ansible.builtin.apt_repository:
            repo: 'deb https://downloads.r7-office.ru/repository/r7-desktop-astra/ astralinux main'
            state: present
            filename: r7
 
        - name: Копирование файла auth.conf.d/r7.conf
          ansible.builtin.copy:
            src: /mnt/r7.conf
            dest: /etc/apt/auth.conf.d/r7.conf
 
        - name: Установка прав на файл r7.conf
          ansible.builtin.file:
            path: /etc/apt/auth.conf.d/r7.conf
            mode: '600'
 
        - name: Обновление APT
          ansible.builtin.apt:
            update_cache: yes
 
        - name: Установка/обновление пакета r7-office
          ansible.builtin.apt:
            name: r7-office
            state: latest
 
        - name: Создание директории лицензии
          ansible.builtin.file:
            path: /etc/r7-office/license
            state: directory
 
        - name: Активация
          ansible.builtin.copy:
            src: /mnt/license.lickey
            dest: /etc/r7-office/license/license.lickey
 
      when: ansible_pkg_mgr == "apt"
 
    - name: Установка через YUM
      block:
        - name: Проверка версии CentOS
          block:
            - name: Установка rpmfusion
              ansible.builtin.yum_repository:
                name: rpmfusion
                description: RPM Fusion
                baseurl: https://download1.rpmfusion.org/free/el/7/x86_64/
                gpgcheck: yes
                gpgkey: https://download1.rpmfusion.org/RPM-GPG-KEY-rpmfusion-free-el-7
                enabled: yes
          when: ansible_distribution == 'CentOS' and ansible_distribution_major_version == '9'
 
        - name: Создать директорию для репозиториев yum
          ansible.builtin.file:
            path: /etc/yum.repos.d
            state: directory
 
        - name: Добавление репозитория r7
          ansible.builtin.yum_repository:
            name: r7
            description: r7
            baseurl: https://downloads.r7-office.ru/repository/r7-desktop-yum/
            enabled: 1
            gpgcheck: 1
            gpgkey: https://download.r7-office.ru/repos/RPM-GPG-KEY-R7-OFFICE.public
            sslverify: 0
            username: desktop
            password: gyxiLab84FByn7sCTd5JY
 
        - name: Выполнение команды yum makecache
          yum:
            update_cache: yes
            state: present
 
        - name: Установка/обновление пакет r7-office
          yum:
            name: r7-office
            state: latest
 
        - name: Создание директории лицензии
          ansible.builtin.file:
            path: /etc/r7-office/license
            state: directory
 
        - name: Активация
          ansible.builtin.copy:
            src: /mnt/license.lickey
            dest: /etc/r7-office/license/license.lickey
 
      when: ansible_distribution == "REDOS" or ansible_distribution == "RED OS" or ansible_pkg_mgr == "dnf" or ansible_pkg_mgr == "yum"

1.2.2. Создайте файл inventory.yaml, в котором нужно указать список клиентов, на которых необходимо выполнить установку

all:
  hosts:
    client.domain.test:
      ansible_host: 192.168.100.111
      ansible_user: root
      ansible_password: password
    client123.domain.test:
      ansible_host: 192.168.100.112
      ansible_user: root
      ansible_password: password

Где,

  • client.domain.test — имя клиента;
  • 192.168.100.111 — IP-адрес клиента;
  • root — пользователь с правами на установку приложений;
  • password — пароль пользователя.

1.2.3. Проверьте подключение указав устройства из inventory.yaml командой:

ansible all -m ping -i inventory.yml

Запустите playbook с использованием inventory.yaml командой:

Важно

Перед запуском playbook убедитесь, что на сервере ansible находится файл лицензии по указанному пути /mnt/license.lickey

ansible-playbook -i inventory.yml r7-organizer.yml

2. Установка приложений через пакет

2.1. Установка Р7-Органайзер

2.1.1. Создайте файл r7-organizer.yml со следующим содержанием:

---
- name: Установка Р7-Органайзер
  hosts: all
  gather_facts: true
  become: true
  tasks:
 
    - name: Distribution
      ansible.builtin.debug:
        var: ansible_distribution
       
    - name: Определение пакетного менеджера
      ansible.builtin.debug:
        var: ansible_pkg_mgr
         
    - name: Астра Линукс
      block:
        - name: Копирование deb-пакета
          ansible.builtin.copy:
            src: /mnt/r7-organizer.deb
            dest: /tmp/r7-organizer.deb
  
        - name: Установка Р7-Органайзер
          apt:
            deb: /tmp/r7-organizer.deb
            state: present
 
        - name: Копирование файла лицензии
          ansible.builtin.copy:
            src: /mnt/license.lickey
            dest: /mnt/license.lickey
 
        - name: Активация
          ansible.builtin.shell: |
            #!/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
            rm -f /mnt/license.lickey
  
      when: ansible_distribution == "Astra Linux" or ansible_distribution == "Ubuntu" or ansible_distribution == "Debian"
  
    - name: Установка через YUM/DNF
      block:
        - name: Копирование rpm-пакета
          ansible.builtin.copy:
            src: /mnt/r7-organizer.rpm
            dest: /tmp/r7-organizer.rpm
  
        - name: Установить Р7-Органайзер
          yum:
            name: /tmp/r7-organizer.rpm
            state: latest
            disable_gpg_check: yes
 
        - name: Копирование файла лицензии
          ansible.builtin.copy:
            src: /mnt/license.lickey
            dest: /mnt/license.lickey
 
        - name: Активация
          ansible.builtin.shell: |
            #!/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
            rm -f /mnt/license.lickey
  
      when: ansible_distribution == "REDOS" or ansible_distribution == "RED OS" or ansible_pkg_mgr == "dnf" or ansible_pkg_mgr == "yum"

2.1.2. Создайте файл inventory.yaml, в котором нужно указать список клиентов, на которых необходимо выполнить установку

all:
  hosts:
    client.domain.test:
      ansible_host: 192.168.100.111
      ansible_user: root
      ansible_password: password
    client123.domain.test:
      ansible_host: 192.168.100.112
      ansible_user: root
      ansible_password: password

Где,

  • client.domain.test — имя клиента;
  • 192.168.100.111 — IP-адрес клиента;
  • root — пользователь с правами на установку приложений;
  • password — пароль пользователя.

2.1.3. Проверьте подключение указав устройства из inventory.yaml командой:

ansible all -m ping -i inventory.yml

2.1.4. Запустите playbook с использованием inventory.yaml командой:

Важно

Перед запуском playbook убедитесь, что на сервере ansible находится файл лицензии по указанному пути /mnt/license.lickey и установочный файл с именем r7-organizer.deb или r7-organizer.rpm, в зависимости от пакетного менеджера клиента

ansible-playbook -i inventory.yml r7-desktop.yml

2.2. Установка Р7-Редактор

2.2.1. Создайте файл r7-desktop.yml со следующим содержанием:

---
- name: Установка Р7-Редактор
  hosts: all
  gather_facts: true
  become: true
  tasks:
 
    - name: Определение пакетного менеджера
      ansible.builtin.debug:
        var: ansible_pkg_mgr
 
    - name: Установка через APT
      block:
        - name: Установка ключа
          apt:
            deb: https://download.r7-office.ru/repos/dist/r7-office-keys_1.0-1_all.deb
            state: present
         
        - name: Перезагрузка
          reboot:
          async: 40
          poll: 0
 
        - name: Ожидание включения
          wait_for_connection:
            timeout: 20
 
        - name: Установка необходимых пакетов
          apt:
            name: "{{ item }}"
            state: present
          with_items:
            - fonts-crosextra-carlito
            - fonts-dejavu
            - fonts-liberation
            - fonts-opensymbol
            - curl
            - gstreamer1.0-libav
            - gstreamer1.0-plugins-ugly
            - libasound2
            - libc6
            - libcairo2
            - libgcc1
            - libgconf-2-4
            - libgtk-3-0
            - libstdc++6
            - libx11-6
            - libxss1
            - x11-common
            - xdg-utils
 
        - name: Копирование deb-пакета
          ansible.builtin.copy:
            src: /mnt/r7-desktop.deb
            dest: /tmp/r7-desktop.deb
 
        - name: Установка Р7-Редактор
          apt:
            deb: /tmp/r7-desktop.deb
            state: present
 
        - name: Создание директории лицензии
          ansible.builtin.file:
            path: /etc/r7-office/license
            state: directory
 
        - name: Активация
          ansible.builtin.copy:
            src: /mnt/license.lickey
            dest: /etc/r7-office/license/license.lickey
 
      when: ansible_pkg_mgr == "apt"
 
    - name: Установка через YUM/DNF
      block:
        - name: Проверка версии CentOS
          block:
            - name: Создать директорию для репозиториев yum
              ansible.builtin.file:
                path: /etc/yum.repos.d
                state: directory
            - name: Установка rpmfusion
              command: sudo dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm
          when: ansible_distribution == 'CentOS' and ansible_distribution_major_version == '9'
 
        - name: Копирование rpm-пакета
          ansible.builtin.copy:
            src: /mnt/r7-office-2024.1.1-373.el8.x86_64.rpm
            dest: /tmp/r7-desktop.rpm
                         
        - name: Установить Р7-Редактор
          yum:
            name: /tmp/r7-desktop.rpm
            state: present
            disable_gpg_check: yes
 
        - name: Создание директории лицензии
          ansible.builtin.file:
            path: /etc/r7-office/license
            state: directory
 
        - name: Активация
          ansible.builtin.copy:
            src: /mnt/license.lickey
            dest: /etc/r7-office/license/license.lickey
 
      when: ansible_distribution == "REDOS" or ansible_distribution == "RED OS" or ansible_pkg_mgr == "dnf" or ansible_pkg_mgr == "yum"

2.2.2. Создайте файл inventory.yaml, в котором нужно указать список клиентов, на которых необходимо выполнить установку

all:
  hosts:
    client.domain.test:
      ansible_host: 192.168.100.111
      ansible_user: root
      ansible_password: password
    client123.domain.test:
      ansible_host: 192.168.100.112
      ansible_user: root
      ansible_password: password

Где,

  • client.domain.test — имя клиента;
  • 192.168.100.111 — IP-адрес клиента;
  • root — пользователь с правами на установку приложений;
  • password — пароль пользователя.

2.2.3. Проверьте подключение указав устройства из inventory.yaml командой:

ansible all -m ping -i inventory.yml

2.2.4. Запустите playbook с использованием inventory.yaml командой:

Важно

Перед запуском playbook убедитесь, что на сервере ansible находится файл лицензии по указанному пути /mnt/license.lickey и установочный файл с именем r7-desktop.deb или r7-desktop.rpm, в зависимости от пакетного менеджера клиента

Также обратите внимание, что использовав данный playbook, будет выполнена перезагрузка на хостах.

ansible-playbook -i inventory.yml r7-desktop.yml