push
@@ -5,7 +5,7 @@ Ansible - это система управления конфигурацией
|
|||||||
|
|
||||||
Преимущества:
|
Преимущества:
|
||||||
1. Не требует установки клиентов-агентов на целевые машины, использует только SSH протокол
|
1. Не требует установки клиентов-агентов на целевые машины, использует только SSH протокол
|
||||||
2. Пишется на YAML, удобные язык конфигурации, поймет даже новичок
|
2. Пишется на yml, удобные язык конфигурации, поймет даже новичок
|
||||||
3. Есть портал с готовыми конфигурациями на "Ansiblr Galaxy", можно использовать готовое или же взять какие-то готовые решения себе в проект
|
3. Есть портал с готовыми конфигурациями на "Ansiblr Galaxy", можно использовать готовое или же взять какие-то готовые решения себе в проект
|
||||||
## О его работе
|
## О его работе
|
||||||
На главном admin-pc после установки должен быть конфигурационный файл "ansible.cfg", мы указываем там где располагается наш файл с хостами "hosts".
|
На главном admin-pc после установки должен быть конфигурационный файл "ansible.cfg", мы указываем там где располагается наш файл с хостами "hosts".
|
||||||
@@ -14,4 +14,4 @@ Ansible - это система управления конфигурацией
|
|||||||
|
|
||||||
Так же мы будем создавать свои playbook.yaml. Простыми словами - это рецепт, некий алгоритм действий, то, что будет выполнять наш ansible на наших хостах из hosts.
|
Так же мы будем создавать свои playbook.yaml. Простыми словами - это рецепт, некий алгоритм действий, то, что будет выполнять наш ansible на наших хостах из hosts.
|
||||||
|
|
||||||
<img src="./images-for-md/image_1777037728737.png" width="400">
|
<img src="./assets/image_1777037728737.png" width="400">
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
## Установка Ansible
|
||||||
|
Ansible работает через питон, по этому необходимо установить его:
|
||||||
|
```
|
||||||
|
apt update && apt upgrade -y
|
||||||
|
apt install python3 python3-pip python3-venv -y
|
||||||
|
```
|
||||||
|
Установка виртуального окружения:
|
||||||
|
```
|
||||||
|
python3 -m venv
|
||||||
|
source venv/bin/activate
|
||||||
|
```
|
||||||
|
И устанавливаем Ansible:
|
||||||
|
```
|
||||||
|
pip install ansible
|
||||||
|
ansible --version
|
||||||
|
```
|
||||||
|
<img src="assets/image_1777451283920.jpg" width="auto">
|
||||||
|
|
||||||
|
## Настройка Ansible
|
||||||
|
Готово.
|
||||||
|
Ansible используем ssh для подключения, лучше всего и безопаснее использовать ssh-ключ, создадим его:
|
||||||
|
```
|
||||||
|
ssh-keygen
|
||||||
|
```
|
||||||
|
<img src="assets/image_1777451977808.jpg" width="auto">
|
||||||
|
У меня ключ уже создан
|
||||||
|
Расположение:
|
||||||
|
```
|
||||||
|
/home/<user>/.ssh/id_ed25519.pub # публичный ключ
|
||||||
|
/home/<user>/.ssh/id_ed25519 # приватный ключ
|
||||||
|
```
|
||||||
|
|
||||||
|
Перекидываем публичный ssh-ключ на наш тестовый стенд:
|
||||||
|
```
|
||||||
|
ssh-copy-id -i ~/.ssh/ed25519.pub ansible@172.16.13.101
|
||||||
|
```
|
||||||
|
<img src="assets/image_1777454341479.jpg" width="auto">
|
||||||
|
Готово.
|
||||||
|
|
||||||
|
## Первые шаги
|
||||||
|
Мы можем сделать начальную структуру проекта Ansible через команду:
|
||||||
|
```
|
||||||
|
ansible-galaxy role init my-project
|
||||||
|
```
|
||||||
|
<img src="./assets/image_1777454975978.jpg" width="auto">
|
||||||
|
Коротко про каждую:
|
||||||
|
1. defaults - в main.yml хранятся дефолтные переменные с которыми запускается роль
|
||||||
|
2. vars - main.yml задаются переменные
|
||||||
|
3. tasks - сами задачи, плейбуки
|
||||||
|
4. handlers - это обработчики изменений, если ваша роль выполнялась, что-то изменила, потому что оно не соответствовало описанию плейбука, то будет вызван хендлер, если его описали
|
||||||
|
5. templates - шаблоны
|
||||||
|
6. files - хранение файлов, конфигов
|
||||||
|
7. tests - тесты, можно проверять работу плейбуков, не применяя к серверам, локально в среде
|
||||||
|
|
||||||
|
После подключения Ansible делает сбор фактов, узнает полную информацию о системе, какая ОС, архитектура, ip адреса и так далее.
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 130 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 19 KiB |