Ansible. Начало. Установка на Debian 10.

Ansible. Начало. Установка на Debian 10.

Ansible — это программное решение для удаленного управления конфигурациями.

Ansible работает путем настройки клиентских машин, называемых управляемыми узлами, с компьютера, на котором установлены и настроены компоненты Ansible, который далее в тексте называется узлом управления Ansible.

Он взаимодействует по обычным каналам SSH для извлечения информации из удаленных систем, выдачи команд и копирования файлов. Из-за этого система Ansible не требует установки какого — либо дополнительного программного обеспечения на клиентских компьютерах.

Это один из способов, которым Ansible упрощает администрирование серверов. Любой сервер, на котором открыт SSH-порт, может быть включен в конфигурацию Ansible, независимо от того, на какой стадии он находится в своем жизненном цикле. Это означает, что любой компьютер, которым вы можете управлять через SSH, вы также можете администрировать через Ansible.

Ansible использует модульный подход, позволяющий расширить функциональные возможности основной системы для работы с конкретными сценариями. Модули могут быть написаны на любом языке и взаимодействовать в стандартном JSON.

Файлы конфигурации в основном написаны в формате сериализации данных YAML из-за его выразительного характера и сходства с популярными языками разметки. Ansible может взаимодействовать с хостами либо с помощью инструментов командной строки, либо с помощью сценариев конфигурации, которые известны как Playbook.

 

Установка Ansible на Debian 10 (Ubuntu 18).

Ansible доступен в стандартных репозиториях Debian 10. Установка выполняется командой

# apt install ansible

На момент написания статьи в репозитории содержалась версия 2.7.7. Для установки более свежей версии необходимо подключить репозиторий ansible:

# echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" | tee -a /etc/apt/sources.list
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
# apt update
# apt install ansible
# ansible --version
ansible 2.9.24

Сейчас на узле управления имеем версию 2.9.24

На узле управления требуется создать пару SSH-ключей
# ssh-keygen
и передать публичный ключ на управляемый хост
# ssh-copy-id root@managed-host

Следующий шаг — настройка файла инвентаризации hosts. По умолчанию он находится в /etc/ansible/ .
В файл вносятся список управляемых узлов, в виде IP-адресов или доменных имён. Возможна группировка узлов по группам. Например,:
[web]
192.168.100.101
sysad.su

[databases]
mysql.sysad.su

Список хостов можно просмотреть командами:
# ansible all --list-hosts — список всех хостов
# ansible web --list-hosts — список хостов из группы web.

Проверку доступности хостов можно провести, используя модуль ping:
# ansible -m ping all

Вывод будет примерно таким:
mysql.sysad.su | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}

Модуль shell позволяет производить выполнение команд на управляемых хостах:
# ansible -m shell -a "df -h" all
# ansible -m shell -a "uname -a" all

mysql.sysad.su | CHANGED | rc=0 >>
Linux mysql 4.19.0-17-amd64 #1 SMP Debian 4.19.194-3 (2021-07-18) x86_64 GNU/Linux

# ansible mysql.sysad.su -m setup — вывод всевозможной информации по управляемому узлу.
При необходимости используется фильтр:
# ansible mysql.sysad.su -m setup -a 'filter=ansible_memtotal_mb'
mysql.sysad.su | SUCCESS => {
«ansible_facts»: {
«ansible_memtotal_mb»: 1995,
«discovered_interpreter_python»: «/usr/bin/python»
},
«changed»: false
}

Nicko

Добавить комментарий