Ansible: модули

Автор: | 03/09/2015
 

ansible_logo_black_squareНачало — Ansible: установка и первоначальная настройка.

Большинство действий на удалённых хостах (нодах) можно выполнить с помощью модулей Ansible.

Полный список модулей, разбитый по категориям, можно найти тут>>>.

Например — модуль shell позволяет выполнять консольные команды на сервере:

$ ansible all -m shell -a 'echo $HOSTNAMEE'
cent_ans_serv | success | rc=0 >>

cent_ans_client1 | success | rc=0 >>

Ключ -a для модуля shell используется для передачи ему аргументов.

Так же можно установить и какое-то приложение, например — lftp.

Добавим пользователя setevoy в sudoers, и разрешим ему выполнение команды без ввода пароля — вызываем visudo, добавляем строку:

setevoy ALL=(ALL)       NOPASSWD: ALL

Повторяем на обоих хостах, после чего выполняем установку:

$ ansible all -s -m shell -a 'yum -y install lftp'
...
cent_ans_serv | success | rc=0 >>
Loaded plugins: fastestmirror, security
...
Installed:
  lftp.i686 0:4.0.9-1.el6_5.1

Complete!

Конечно, такой подход к установке пакетов не самый удобный. Поэтому — можно использовать модуль yum.

Например, установка nmap на всех хостах с помощью модуля yum выглядит так:

$ ansible all -s -m yum -a 'name=nmap state=latest'

Проверяем:

$ yum list installed | grep nmap
nmap.i686              2:5.51-4.el6       @base

Ansible имеет огромное количество встроенных модулей, даже такие как ec2 — для управления серверами EC2 в AWS, или portinstall — для управления портами FreeBSD. Имеются и модули сторонних разработчиков, например — ansible-bamboo для управления сервером Bamboo.