This commit is contained in:
chase
2026-04-29 13:09:45 +03:00
parent 00d88d187f
commit 19e8c652c8
12 changed files with 58 additions and 2 deletions
@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB