Ansible
Автоматизация настройки серверов и деплоя приложений. Безагентный (SSH + Python), декларативный (YAML), идемпотентный.
Explanation (Концепции)
| Документ | Описание |
|---|
| architecture | Что такое Ansible, push-модель, компоненты, процесс выполнения |
| inventory | Inventory: форматы, группы, group_vars/host_vars, динамический инвентарь |
| playbook-anatomy | Play, Tasks, Handlers, порядок выполнения, import vs include |
| variables-and-facts | Типы переменных, Facts, Register, приоритет (22 уровня) |
| roles-and-collections | Roles: структура, defaults vs vars. Collections: Galaxy, FQCN |
| async-and-delegation | async/poll, fire-and-forget, delegate_to, run_once, wait_for |
| error-handling | block/rescue/always, ignore_errors, failed_when, changed_when, retries |
How-to (Практические руководства)
| Документ | Описание |
|---|
| install-and-configure | Установка (pipx/apt/brew), ansible.cfg, pipelining |
| manage-inventory | Создание inventory, SSH-ключи, параметры подключения |
| write-playbooks | Запуск, ad-hoc, loops, when, handlers, tags |
| use-templates | Jinja2 шаблоны: синтаксис, условия, циклы, практические примеры |
| create-roles | Создание ролей, defaults, meta/dependencies, Galaxy |
| manage-secrets | Ansible Vault: шифрование, vault.yml, encrypt_string, CI/CD |
| debug-playbooks | debug, -vvv, —diff, debugger, assert, ansible-lint |
| deploy-strategies | Rolling, Blue-Green, Canary. serial, healthcheck, rollback |
| test-with-molecule | Molecule: тестирование ролей, идемпотентность, CI/CD |
Recipes (Готовые решения)(В процессе)
Reference (Справочники)
| Документ | Описание |
|---|
| modules | Справочник модулей: apt, file, template, service, uri, git… |
| jinja2-filters | Фильтры Jinja2: default, to_yaml, join, hash, regex, lookups |
| project-structure | Рекомендуемая структура проекта, именование, Makefile |
| best-practices | Чек-лист: идемпотентность, FQCN, no_log, lint, performance |
| cheatsheet | CLI шпаргалка: ansible-playbook, vault, galaxy, inventory, doc |
Tutorials (Пошаговые уроки)
Быстрый старт
# 1. Установка
pipx install ansible
# 2. Проверка подключения
ansible all -i "server," -m ping -u ubuntu
# 3. Первый playbook
ansible-playbook site.yml
# 4. С vault
ansible-playbook site.yml --ask-vault-pass
Связанные разделы
- index — Docker и Docker Compose
- index — Kubernetes (Phase 3)