Используется для автоматизации настройки и массового развёртывания программного обеспечения.
Работает с Linux-узлами (SSH-соединение), также поддерживает Windows (WinRM соединение).
Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
Astra Linux Special Edition РУСБ.10015-16 исп. 1
Astra Linux Common Edition 2.12
Установка пакета
Пакет ansible доступен в репозитории Astra Linux Common Edition и в дистрибутиве Astra Linux Special Edition. Установить пакет можно с помощью графического менеджера пакетов (см. Графический менеджер пакетов synaptic) или из командной строки командой
Настройка пакета
При установке пакета создаётся каталог /etc/ansible, содержащий два конфигурационных файла:
- /etc/ansible/hosts - список хостов, с которыми работает ansible;
- /etc/ansible/ansible.cfg - файл настроек ansible.
Файл конфигурации /etc/ansible/hosts
В файле /etc/ansible/hosts указывается список хостов, с которыми должен работать ansible.
Файл снабжен достаточно подробными комментариями:
Дополнительно в файле /etc/ansible/hosts могут быть заданы значения переменных для определённых там хостов (сетевые адреса, псевдонимы и пр.).
Более подробная информация содержится в документации
Простейшие примеры настройки и использования
Настройка подключений SSH
Так как ansible подключается к хостам по протоколу ssh, на каждом хосте, с которым должен работать ansible, должен быть установлен сервер и запущен ssh. Для автоматизации подключений можно использовать ключи или пароли.
Установить сервер ssh и настроить аутентификацию по открытому ключу можно по этой инструкции.
Для настройки аутентификации по паролю:
Установить пакет sshpass:
sudo apt install sshpassОтключить проверку ssh-ключа узла путем задания в файле /etc/ansible/ansible.cfg параметра:
host_key_checking = False
Указать имя пользователя и пароль ssh. Это можно сделать следующими способами:
При запуске Ansible из командной строки с помощью опции --user задать имя пользователя и с помощью опции --ask-pass указать необходимость запроса пароля:
ansible -m ping all --user <имя_пользователя> --ask-passПри использовании inventory-файла с помощью опций ansible_user и ansible_ssh_pass задать имя пользователя и пароль в этом файле:
[all:vars] ansible_connection=ssh ansible_user=<имя_пользователя> ansible_ssh_pass=<пароль>
Далее предполагаем, что в файле /etc/ansible/hosts указан список хостов, и, в примерах, будем работать со всеми указанными хостами применяя псевдоним all.
Просто пинг. Ко всем хостам (all) применяется модуль ping (-m ping):
С помощью модуля shell проверим на всех хостах версию Astra Linux: