Site icon IT Draft

Установка и настройки Ansible на CentOS 7

Установка и настройки Ansible на CentOS 7

Установка и настройки Ansible на CentOS 7

Ansible — система управления конфигурациями, написанная на Python, с использованием декларативного языка разметки для описания конфигураций. Используется для автоматизации настройки и развертывания программного обеспечения. Обычно используется для управления Linux-узлами, но Windows также поддерживается. Поддерживает работу с сетевыми устройствами, на которых установлен Python версии 2.4 и выше по SSH или WinRM соединению.

Установка Ansible

Добавляем в систему репозиторий EPEL и устанавливаем программу

[root@localhost]# yum install epel-release
[root@localhost]# yum install ansible

Настройки удалённых хостов хранятся в файле /etc/ansible/hosts
Сделаем резервную копию этого файла

[root@localhost]# mv /etc/ansible/hosts /etc/ansible/hosts.default

Настройка подключения

На сервере с Ansible сгенерируем RSA-ключ

[root@localhost]# ssh-keygen -t rsa

На удаленном сервере (который будем администрировать с помощью Ansible) включаем в SSH авторизацию  по ключам.
Для этого редактируем конфигурационный файл sshd_config и перезапускаем службу

Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров

Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.


[root@localhost]# nano /etc/ssh/sshd_config
PubkeyAuthentication yes 
AuthorizedKeysFile .ssh/authorized_keys

[root@localhost]# service sshd restart

На сервере c Ansible копируем id_pub.pub на удаленный сервер с помощью утилиты ssh-copy-id

[root@localhost]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.84

Тестируем подключение, при этом пароль не должен запрашиваться

[root@localhost]# ssh 192.168.1.84

Добавим наш тестовый сервер в файл hosts, для дальнейшего тестирования возможностей Ansible

[root@localhost]# nano /etc/ansible/hosts
[test]
centos ansible_ssh_host=192.168.1.86

Проверяем работу Ansible

[root@localhost]# ansible test -m ping
centos | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

где test – группа ПК (см. файл /etc/ansible/hosts)

Если нет желания включать авторизацию в SSH по файлу, можно установить утилиту sshpass, и посмотреть на ответ Ansible

[root@localhost]# yum install sshpass
[root@localhost]# ansible test -m ping -k -u root
SSH password:
centos | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

Некоторые команды

ansible -m ping all    - пинг
ansible test -m shell -a 'cat /etc/redhat-release'     - Версия Centos
ansible test -m shell -a 'uname -a'     - Выполнить команду uname -a
ansible test  -m setup - узнать информацию о сервере
ansible -i hosts -m setup -a 'filter=ansible_memtotal_mb' all      - сколько памяти доступно на всех хостах
ansible -i hosts -m setup -a 'filter=ansible_all_ipv4_addresses' all      - узнать ip-адреса всех хостов
ansible -i hosts -m setup -a 'filter=ansible_default_ipv4' all
ansible -i hosts -m setup -a 'filter=ansible_distribution' all
ansible -i hosts -m setup -a 'filter=ansible_distribution_version' all
ansible -i hosts -m setup -a 'filter=ansible_memory_mb' all
ansible -i hosts -m setup -a 'filter=ansible_processor' all
Exit mobile version