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