Ansible

Автоматизация настройки серверов и деплоя приложений. Безагентный (SSH + Python), декларативный (YAML), идемпотентный.

Explanation (Концепции)

ДокументОписание
architectureЧто такое Ansible, push-модель, компоненты, процесс выполнения
inventoryInventory: форматы, группы, group_vars/host_vars, динамический инвентарь
playbook-anatomyPlay, Tasks, Handlers, порядок выполнения, import vs include
variables-and-factsТипы переменных, Facts, Register, приоритет (22 уровня)
roles-and-collectionsRoles: структура, defaults vs vars. Collections: Galaxy, FQCN
async-and-delegationasync/poll, fire-and-forget, delegate_to, run_once, wait_for
error-handlingblock/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-templatesJinja2 шаблоны: синтаксис, условия, циклы, практические примеры
create-rolesСоздание ролей, defaults, meta/dependencies, Galaxy
manage-secretsAnsible Vault: шифрование, vault.yml, encrypt_string, CI/CD
debug-playbooksdebug, -vvv, —diff, debugger, assert, ansible-lint
deploy-strategiesRolling, Blue-Green, Canary. serial, healthcheck, rollback
test-with-moleculeMolecule: тестирование ролей, идемпотентность, CI/CD

Recipes (Готовые решения)(В процессе)

РецептОписание
server-bootstrapПервичная настройка Ubuntu: users, SSH, swap, UFW
docker-installDocker CE: GPG, repo, daemon.json hardening
nginx-certbotNginx reverse proxy + Let’s Encrypt SSL

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
cheatsheetCLI шпаргалка: ansible-playbook, vault, galaxy, inventory, doc

Tutorials (Пошаговые уроки)

#ДокументЧто изучаем
0101-first-playbookОт нуля до рабочего playbook (Nginx + handler)
0202-server-setupProduction настройка сервера (SSH, UFW, Docker, Vault)
0303-roles-projectРефакторинг монолита в 3 роли
0404-deploy-docker-appДеплой Docker Compose с rollback

Быстрый старт

# 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)

в этой папке 4 элемента