Консультация Oblako.kz

Установка Ansible на Centos 7.3

Ansible применяется для управления множеством хостов. Не требует установки дополнительного программного обеспечения - нужен только доступ к управляемому компьютеру. ОС управляющего и управляемого сервера могут не совпадать, т.е управляющий сервер может быть на Centos а принимающий на Debian и наоборот. Ansible использует Playbooks - сценарии.на языке YAML.

Для установки Ansible на ОС, использующих yum напишем в командной строке:

yum install ansible

Проверим корректность установки.

ansible --version

Настройки ansible хранятся в папке /etc/ansible.

Для взаимодействия с другими хостами необходимо сгенерировать ключевой файл с помощью ssh-keygen.


ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:UlMWzER2AWF9v/HNTQQ2gzz8BNW/5ruuh2bmBKoilwA root@centos7x64
The key's randomart image is:
+---[RSA 2048]----+
|     	=@B+=*o |
|     	=o.*.ooo|
|    	o	= o.|
| E 	. .	..+|
|  .   . S  .   oB|
|   .   .  . .  +=|
|	. .  .   .+  |
|   . +  .   .= o |
|	o ..	=o++o|
+----[SHA256]-----+

Обмен открытыми ключами можно осуществить используя ssh-copy-id <имя или ip сервера>. При соединении с данным сервером прочитается ключ и будет предоставлен доступ.

ssh-copy-id 10.0.0.4 ssh 10.0.0.4

[root@centos7x64 ~]# ssh-copy-id 10.0.0.4
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '10.0.0.4 (10.0.0.4)' can't be established.
ECDSA key fingerprint is SHA256:J+QBiNgCn0OR9WWOOBy9S0NJxk0xue4w7sXDuJYO5Zg.
ECDSA key fingerprint is MD5:e8:cb:20:e0:1a:40:3f:9e:01:2c:72:92:88:f1:fb:22.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.0.0.4's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '10.0.0.4'"
and check to make sure that only the key(s) you wanted were added.



root@debian9:~#  ssh 10.0.0.4
Linux debian9 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Jul 26 14:53:46 2018 from 185.11.35.28

Теперь добавим этот узел в файл:

/etc/ansible/hosts.

Узел можно добавить отдельно или в любую группу, если хостов несколько, например в webservers:

[webservers] #alpha.example.org #beta.example.org #192.168.1.100 10.0.0.4

Сделаем плейбук - например установим curl на сервер с ОС Debian.


nano /etc/ansible/curlinst.yml
---
- hosts: 10.0.0.4
  tasks:
   - name: Install curl
 	apt: name=curl state=present

В плейбуке использованы следующие команды:

  • hosts: задает имя или ip хоста или группы хостов
  • tasks: описание задачи
  • name: Install curl - имя задачи
  • apt: name=curl state=present -операция - установить пакет curl через apt, ключ state указывает что делать с пакетом
  • latest означает установить или обновить до последней версии, если пакет есть
  • present - просто установить
  • absent - удалить пакет

Запустим плейбук командой:

ansible-playbook /etc/ansible/curlinst.yml


[root@centos7x64 ~]# ansible-playbook /etc/ansible/curlinst.yml

PLAY [10.0.0.4] ****************************************************************

TASK [Gathering Facts] *********************************************************
ok: [10.0.0.4]

TASK [Install apache service but avoid starting it immediately] ****************
changed: [10.0.0.4]

PLAY RECAP *********************************************************************
10.0.0.4               	: ok=2	changed=1	unreachable=0	failed=0
Последнее обновление: 07.10.2022