[{"data":1,"prerenderedAt":65},["ShallowReactive",2],{"article-15-hi":3,"related-15":42,"ArticleBody_MQYV7Mp2gCB8OsAjszcDcWs6uz8PQuB2lXrmWliY":60},{"id":4,"title":5,"slug":6,"content":7,"metaTitle":5,"metaDescription":8,"coverUrl":9,"views":10,"likes":11,"createdAt":12,"updatedAt":13,"category":14,"tags":23,"author":9,"tableOfContents":28,"locale":9,"translated":40,"indexable":41},15,"Ansible. Playbooks - автоматизация по сценарию","ansible-playbooks---avtomatizaciya-po-scenariyu","Если Ad-hoc команды (из предыдущей статьи) - это быстрые разовые действия, то **Playbooks (Плейбуки)** - это полноценные сценарии автоматизации. Это файлы, в которых вы описываете, в каком состоянии должен находиться ваш сервер, а Ansible берет на себя всю работу по приведению его к этому состоянию.\n\n## Что такое YAML?\nПлейбуки пишутся на языке **YAML**. Он максимально приближен к обычному английскому тексту и легко читается.\n\n**Важное правило YAML:** В нем нет скобок, но крайне важны **отступы (пробелы)**. Все элементы одного уровня должны иметь одинаковый отступ. Никогда не используйте клавишу Tab, только пробелы!\n\n---\n\n## Структура простого Playbook\nДавайте создадим файл `setup_web.yml`, который превратит ваш чистый VPS в готовый веб-сервер.\n```yaml\n---\n- name: Установка и настройка веб-сервера Nginx\n  hosts: web_servers\n  become: yes\n  tasks:\n    - name: Установка последней версии Nginx\n      apt:\n        name: nginx\n        state: present\n        update_cache: yes\n\n    - name: Запуск службы Nginx и добавление в автозагрузку\n      service:\n        name: nginx\n        state: started\n        enabled: yes\n\n    - name: Создание индексной страницы\n      copy:\n        content: \"\u003Ch1>Сервер настроен через Ansible на Serv.host!\u003C/h1>\"\n        dest: /var/www/html/index.html\n```\n\n**Разбор ключевых полей:**\n`name`: Описание того, что делает сценарий или конкретный шаг (таск). Помогает понимать логику при запуске.\n`hosts`: Группа серверов из вашего `hosts.ini`, на которых будет запущен сценарий.\n`become: yes`: Указывает, что команды нужно выполнять с правами `sudo` (root).\n`tasks`: Список конкретных шагов (задач).\n`apt`, `service`, `copy`: Это модули, которые выполняют работу.\n\n---\n\n## Главное преимущество - идемпотентность\nЭто страшное слово означает очень простую и полезную вещь: **вы можете запускать один и тот же Playbook сколько угодно раз, и результат будет одинаковым.**\n\nЕсли Nginx уже установлен, Ansible просто пропустит этот шаг. Если файл `index.html` уже совпадает с тем, что вы указали, он не будет его перезаписывать. Это делает автоматизацию безопасной - вы не «сломаете» уже настроенный сервер повторным запуском сценария.\n\n---\n\n## Как запустить Playbook?\nДля запуска сценариев используется специальная команда `ansible-playbook`.\n\nВведите в терминале:\n```\nansible-playbook -i hosts.ini setup_web.yml\n```\n\u003Cimg src=\"https://wiki.serv.host/uploads/3acdad0b-381a-4058-935b-5fad6a7b9c2c.png\" width=\"600\">\n\n**Что вы увидите в консоли:**\n- **PLAY RECAP:** В конце выйдет отчет.\n- **changed=1:** Значит, Ansible внес изменения.\n- **ok=4:** Значит, система уже была в нужном состоянии, и Ansible ничего не трогал.\n- **failed=0:** Ошибок нет.\n---\n\n## Советы для продвинутых\n**1. Проверка синтаксиса.** Перед запуском всегда полезно проверить файл на ошибки:\n```\nansible-playbook setup_web.yml --syntax-check\n```\n**2. Режим \"Dry Run\" (Прогон без изменений).** Хотите узнать, что изменится на сервере, не меняя ничего на самом деле?\n```\nansible-playbook -i hosts.ini setup_web.yml --check\n```\n**3. Комментарии.** Используйте символ `#`, чтобы оставлять заметки в своих YAML файлах. Это поможет вам вспомнить логику через месяц.","Если Ad-hoc команды (из предыдущей статьи) - это быстрые разовые действия, то Playbooks (Плейбуки) - это полноценные сценарии автоматизации. Это файлы, в которы",null,250,1,"2026-03-17T17:45:16.941Z","2026-09-01T19:52:25.000Z",{"id":15,"value":16,"content":17,"sortOrder":11,"parent":18},7,"linux","Linux",{"id":19,"value":20,"content":21,"sortOrder":22},6,"admin","Администрирование",3,[24],{"id":25,"value":26,"content":27},9,"ansible","Ansible",[29,32,34,36,38],{"level":30,"text":31},2,"Что такое YAML?",{"level":30,"text":33},"Структура простого Playbook",{"level":30,"text":35},"Главное преимущество - идемпотентность",{"level":30,"text":37},"Как запустить Playbook?",{"level":30,"text":39},"Советы для продвинутых",false,true,[43,49],{"id":4,"title":5,"slug":6,"content":8,"description":8,"coverUrl":9,"views":44,"likes":11,"createdAt":12,"category":45,"tags":47,"author":9},249,{"id":15,"value":16,"content":17,"sortOrder":11,"parent":46},{"id":19,"value":20,"content":21,"sortOrder":22},[48],{"id":25,"value":26,"content":27},{"id":50,"title":51,"slug":52,"content":53,"description":53,"coverUrl":9,"views":54,"likes":11,"createdAt":55,"category":56,"tags":58,"author":9},14,"Ansible. Установка, инвентарь, Ad-hoc команды ","ansible-ustanovka-inventar-ad-hoc-komandy-","В этой статье мы разберем, что такое Ansible, почему он стал стандартом в автоматизации серверов и как подготовить вашу рабочую станцию к управлению вашими VPS.",245,"2026-03-17T16:29:02.338Z",{"id":15,"value":16,"content":17,"sortOrder":11,"parent":57},{"id":19,"value":20,"content":21,"sortOrder":22},[59],{"id":25,"value":26,"content":27},["Island",61],{"key":62,"result":63},"ArticleBody_MQYV7Mp2gCB8OsAjszcDcWs6uz8PQuB2lXrmWliY",{"head":64},{},1788480152528]