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

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

Обновлено: 23.12.25

1. Создание модулей

1.1. Создайте файл init.pp в office

Директория, где создать файл

/etc/puppetlabs/code/environments/production/modules/office/manifests/

Со следующим содержимым

# Class: office
class office {
 
  if $facts['os']['family'] == 'RedHat' or $facts['os']['family'] == 'Centos' or $facts['os']['family'] == 'RedOS' {
    include yumpkg
  }
 
  if $facts['os']['family'] == 'Debian' or $facts['os']['family'] == 'Ubuntu'
  {
    include aptpkg
  }
}

1.2. Создайте файл init.pp в aptpkg

Директория, где создать файл

/etc/puppetlabs/code/environments/production/modules/aptpkg/manifests/

Со следующим содержимым

# Class: apt
class aptpkg {
 
  file { '/etc/apt/sources.list.d/r7.list':
    ensure  => file,
    content => 'deb https://downloads.r7-office.ru/repository/r7-desktop-apt/ buster main',
  }
 
  exec { 'apt_key_import':
    command => 'curl -s https://download.r7-office.ru/repos/RPM-GPG-KEY-R7-OFFICE.public | gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/r7.gpg --import',
    path    => '/usr/bin:/bin:/user/sbin:/sbin',
  }
 
  file {
    'r7.gpg':
    ensure => present,
    path   => '/etc/apt/trusted.gpg.d/r7.gpg',
    mode   => '0644'
  }
 
  exec { 'apt_update':
  command => 'apt update -y',
  path    => '/usr/bin:/bin:/user/sbin:/sbin',
  }
 
  file {
    'r7.conf':
    ensure => present,
    source => 'puppet:///modules/aptpkg/r7.conf',
    path   => '/etc/apt/auth.conf.d/r7.conf',
    mode   => '0600',
  }
 
  exec { 'apt_install_r7-office':
    command => 'apt install -y r7-office',
    path    => '/usr/bin:/bin:/user/sbin:/sbin',
  }
 
  file {
    'license.lickey':
    ensure => present,
    source => 'puppet:///modules/office/license.lickey',
    path   => '/etc/r7-office/license/license.lickey',
  }
}

1.3. Создайте файл init.pp в yumpkg

Директория, где создать файл

/etc/puppetlabs/code/environments/production/modules/yumpkg/manifests/

Со следующим содержимым

# Class: yumpkg
class yumpkg {
  yumrepo { 'r7':
    name      => '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',
  }
 
  exec { 'yum_install_r7-office':
    command => 'yum install -y r7-office',
    path    => '/usr/bin:/bin:/user/sbin:/sbin',
  }
}

2. Создание необходимых файлов

2.1. Создайте файл r7.conf в aptpkg

Директория, где создать файл

/etc/puppetlabs/code/environments/production/modules/aptpkg/files/

Со следующим содержимым:

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

2.2. Создайте файл r7.repo в yumpkg

Директория, где создать файл

/etc/puppetlabs/code/environments/production/modules/yumpkg/files/

Со следующим содержимым:

[r7]
name=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

2.3. Лицензия

Поместите файл лицензии в следующей директории

/etc/puppetlabs/code/environments/production/modules/office/license.lickey

3. Настройка foreman

3.1. Выберите необходимый узел или группу узлов и нажмите кнопку Изменить

3.2. Выберите вкладку Puppet ENC

Выберите созданный класс office, включите его, нажав иконку со знаком «Плюс», и нажмите кнопку «Применить»

4. Применение на клиенте

4.1. В ручном режиме командой:

puppet agent -t

4.2. В автоматическом режиме

Уточнение

По умолчанию раз в 30 минут.

4.2.1. Для изменения этого параметра

Добавьте строчку в файл

/etc/puppetlabs/puppet/puppet.conf

Укажите значение в секундах в блоке main

[main]
server = foreman.builder-testad.ru
runinterval = 600