Установка плагина через Ansible на Alt Linux#
Что такое Ansible#
Ansible — инструмент автоматизации, который позволяет устанавливать и настраивать ПО сразу на множестве машин одной командой, без необходимости заходить на каждую вручную.
Установка Ansible#
Обновление системы#
Перед установкой Ansible необходимо обновить операционную систему:
sudo apt-get update
sudo apt-get upgrade
Установка зависимостей#
Для работы Ansible требуются некоторые зависимости:
sudo apt-get install software-properties-common sshpass
sshpass необходим для передачи пароля при SSH-подключении к хостам.
Установка Ansible#
sudo apt-get install ansible
Проверка установки#
После установки проверьте работоспособность:
ansible --version
При корректной установке будет выведена информация о версии.
Структура репозитория#
.
├── ansible.cfg
├── inventory
├── install-plugin.yaml
└── files/
├── globalerp-browser-extension-latest-alt1.x86_64.rpm
└── globalerp-desktop-agent-latest-alt1.x86_64.rpm
Описание файлов:
ansible.cfg— файл конфигурации Ansible.inventory— файл инвентаризации, содержащий список хостов для установки плагина.install-plugin.yaml— основной плейбук, выполняющий полный цикл установки плагина.files/— директория с RPM-пакетами (плагином и расширением), которые будут скопированы на все хосты.
Файл ansible.cfg#
[defaults]
host_key_checking = False
Отключает проверку SSH-fingerprint при первом подключении к хостам, поэтому предварительно заходить на каждую машину вручную не нужно.
Подготовка пакетов#
Скачайте актуальные RPM-пакеты в директорию files/:
wget -P files/ https://repo.global-system.ru/artifactory/common/ru/bitec/gs-browser-extension/rpm/globalerp-browser-extension-latest-alt1.x86_64.rpm
wget -P files/ https://repo.global-system.ru/artifactory/common/ru/bitec/gs-desktop-agent/linux/rpm/globalerp-desktop-agent-latest-alt1.x86_64.rpm
Настройка хостов#
Для автоматизации необходимо настроить хосты, на которых будут выполняться задачи. Для этого создайте файл inventory и перечислите в нём список хостов.
Пример файла inventory#
[browser_hosts]
alt10 ansible_host=<ip_address>
alt11 ansible_host=<ip_address>
[browser_hosts:vars]
ansible_user=<user>
ansible_ssh_pass=<password>
ansible_become=true
ansible_become_method=sudo
ansible_become_pass=<password>
где <ip_address> — IP-адрес хоста, <user> — имя пользователя, <password> — пароль.
Плейбук install-plugin.yaml#
- name: Install browser extension and desktop agent via RPM
hosts: browser_hosts
become: true
vars:
extension_rpm_src: "files/globalerp-browser-extension-latest-alt1.x86_64.rpm"
extension_rpm_dest: "/tmp/globalerp-browser-extension-latest-alt1.x86_64.rpm"
agent_rpm_src: "files/globalerp-desktop-agent-latest-alt1.x86_64.rpm"
agent_rpm_dest: "/tmp/globalerp-desktop-agent-latest-alt1.x86_64.rpm"
tasks:
- name: Copy browser extension RPM to host
ansible.builtin.copy:
src: "{{ extension_rpm_src }}"
dest: "{{ extension_rpm_dest }}"
mode: "0644"
- name: Install browser extension from RPM
ansible.builtin.command: "apt-get -y install {{ extension_rpm_dest }}"
- name: Copy desktop agent RPM to host
ansible.builtin.copy:
src: "{{ agent_rpm_src }}"
dest: "{{ agent_rpm_dest }}"
mode: "0644"
- name: Install desktop agent from RPM
ansible.builtin.command: "apt-get -y install {{ agent_rpm_dest }}"
Запуск#
Установка плагина на все хосты из inventory:
ansible-playbook -i inventory install-plugin.yaml