Содержание
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
