Ansible: различия между версиями

Материал из support.qbpro.ru
imported>Vix
Нет описания правки
imported>Vix
Нет описания правки
Строка 1: Строка 1:
Установка Ansible на Debian 9
Ansible это система управления конфигурациями, которая используется для управления большим количеством однотипных (выполняющих одни и те же функции) хостов. В отличие от большинства конкурентов, таких как Puppet, Chef не требует установки собственного программного обеспечения - достаточно иметь доступ к компьютеру, например по SSH. Для управления конфигурациями Ansible использует Playbooks - специальным образом описанные на языке YAML сценарии.
Для установки Ansible на системах, использующих пакетный менеджер apt достаточно выполнить apt-get install.
apt-get instal ansible
Проверить, что ansible установился корректно можно командой:
ansible --version
Все настройки ansible находятся в папке /etc/ansible.
Для того, чтобы ansible могу управлять каким-либо хостом, необходимо сгенерировать ему файл ключа ssh с помощью ssh-keygen. На первый вопрос о том, в какой файл сгенерировать ключ нажать enter, на второй можно ввести парольную фразу с подтверждением, но тогда ее придется вводить всякий раз когда будет запрашиваться доступ к серверу, поэтому ее также оставляем пустой.
root@debian9:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
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:AJZ2E5a+V+dNUvMbGdAwaj8xLiCJ9EkV7TaeSA5pr4I root@debian9
The key's randomart image is:
+---[RSA 2048]----+
| ooo+.oo  ++  |
|  .+oB o  .. +o |
|  . +.*...o + oo|
|  .=..++= +o.|
|  ..S.++oB  o|
|  . .+ oo o. |
| .  ..    |
|  E . .    |
|  .      |
+----[SHA256]-----+
Обменяться открытыми ключами с управляемым сервером с помощью команды ssh-copy-id <имя или ip сервера>. После этого при попытке соединиться с данным сервером автоматически прочтется ключ доступа и произойдет вход на целевой сервер без дополнительных запросов.
ssh-copy-id 10.0.0.2
ssh 10.0.0.2
ssh-copy-id root@10.0.0.2
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/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.2's password:
Number of key(s) added: 1
Now try logging into the machine, with:  "ssh 'root@10.0.0.2'"
and check to make sure that only the key(s) you wanted were added.
root@debian9:~# ssh 10.0.0.2
Last login: Thu Jul 26 15:49: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.2
Теперь создадим какой-нибудь плейбук - например установим nginx на сервер с ОС Centos. ОС на управляющем и управляемом могут не совпадать.
nano /etc/ansible/nginst.yml
---
- hosts: 10.0.0.2
  tasks:
    - name: Install Nginx
  yum: pkg=nginx state=latest
Здесь используются следующие команды:
    hosts: задает имя или ip хоста к которому применять данное действие. Можно вписать имя группы - тогда применится ко всем членам данной группы
    tasks: описание задачи
    name: Install Nginx - наименование задачи
    yum: pkg=nginx state=latest -действие. В данном случае это установить пакет nginx через yum, ключ state определяет что делать с пакетом
    latest означает установить или обновить до последней версии, если пакет есть
    present - просто установить
    absent - удалить пакет
Теперь запустим наш плейбук командой:
ansible-playbook /etc/ansible/nginst.yml
Если все сделано правильно, то вывод должен быть такой:
root@debian9:~# ansible-playbook /etc/ansible/nginst.yml
PLAY [10.0.0.2] ****************************************************************
TASK [setup] *******************************************************************
ok: [10.0.0.2]
TASK [Install Nginx] ***********************************************************
changed: [10.0.0.2]
PLAY RECAP *********************************************************************
10.0.0.2              : ok=2 changed=1 unreachable=0 failed=0
После этого надо запустить nginx на целевом сервере.


ПОЛЕЗНОЕ:
ПОЛЕЗНОЕ:

Версия от 09:49, 15 июня 2020

Установка Ansible на Debian 9

Ansible это система управления конфигурациями, которая используется для управления большим количеством однотипных (выполняющих одни и те же функции) хостов. В отличие от большинства конкурентов, таких как Puppet, Chef не требует установки собственного программного обеспечения - достаточно иметь доступ к компьютеру, например по SSH. Для управления конфигурациями Ansible использует Playbooks - специальным образом описанные на языке YAML сценарии.

Для установки Ansible на системах, использующих пакетный менеджер apt достаточно выполнить apt-get install.

apt-get instal ansible

Проверить, что ansible установился корректно можно командой:

ansible --version

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

Для того, чтобы ansible могу управлять каким-либо хостом, необходимо сгенерировать ему файл ключа ssh с помощью ssh-keygen. На первый вопрос о том, в какой файл сгенерировать ключ нажать enter, на второй можно ввести парольную фразу с подтверждением, но тогда ее придется вводить всякий раз когда будет запрашиваться доступ к серверу, поэтому ее также оставляем пустой.

root@debian9:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
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:AJZ2E5a+V+dNUvMbGdAwaj8xLiCJ9EkV7TaeSA5pr4I root@debian9
The key's randomart image is:
+---[RSA 2048]----+
|	ooo+.oo  ++  |
|   .+oB o  .. +o |
|   . +.*...o + oo|
|  	.=..++= +o.|
|  	..S.++oB  o|
|  	. .+ oo o. |
|	.  ..    	|
|   E . .     	|
|  	.      	|
+----[SHA256]-----+

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

ssh-copy-id 10.0.0.2
ssh 10.0.0.2

ssh-copy-id root@10.0.0.2
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/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.2's password:

Number of key(s) added: 1

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

root@debian9:~# ssh 10.0.0.2
Last login: Thu Jul 26 15:49: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.2

Теперь создадим какой-нибудь плейбук - например установим nginx на сервер с ОС Centos. ОС на управляющем и управляемом могут не совпадать.

nano /etc/ansible/nginst.yml
---
- hosts: 10.0.0.2
  tasks:
   - name: Install Nginx
 	yum: pkg=nginx state=latest

Здесь используются следующие команды:

   hosts: задает имя или ip хоста к которому применять данное действие. Можно вписать имя группы - тогда применится ко всем членам данной группы
   tasks: описание задачи
   name: Install Nginx - наименование задачи
   yum: pkg=nginx state=latest -действие. В данном случае это установить пакет nginx через yum, ключ state определяет что делать с пакетом
   latest означает установить или обновить до последней версии, если пакет есть
   present - просто установить
   absent - удалить пакет

Теперь запустим наш плейбук командой:

ansible-playbook /etc/ansible/nginst.yml

Если все сделано правильно, то вывод должен быть такой:

root@debian9:~# ansible-playbook /etc/ansible/nginst.yml

PLAY [10.0.0.2] ****************************************************************

TASK [setup] *******************************************************************
ok: [10.0.0.2]

TASK [Install Nginx] ***********************************************************
changed: [10.0.0.2]

PLAY RECAP *********************************************************************
10.0.0.2               	: ok=2	changed=1	unreachable=0	failed=0

После этого надо запустить nginx на целевом сервере.

ПОЛЕЗНОЕ: