← Все статьи

Ansible: запуск с нужной задачи, без inventory и команда на всех серверах

Автор: Юрий Нефёдов, системный инженер · 06.08.2024 · обновлено 24.10.2026

Ansible — система автоматизации настройки серверов: вы описываете нужное состояние в плейбуке, а Ansible приводит к нему все машины по SSH. Ниже три приёма, которые экономят время в ежедневной работе.

Продолжить плейбук с нужной задачи

Если длинный плейбук упал в середине, не обязательно проходить его заново целиком. Ключ --start-at-task запускает выполнение с задачи с указанным именем:

ansible-playbook playbook.yml --start-at-task "Установка пакетов"

Имя задачи должно совпадать с полем name в плейбуке.

Запуск на одном хосте без inventory

Чтобы проверить плейбук на одной машине, не обязательно править файл inventory. Адрес можно указать прямо в ключе -i. Запятая в конце обязательна: по ней Ansible понимает, что это список хостов, а не путь к файлу:

ansible-playbook -i 172.0.0.1, playbook.yml

Команда сразу на всех серверах

Для разовых проверок плейбук не нужен: модуль shell выполнит команду на всех хостах из inventory. Пример — проверить, какой адрес возвращает DNS-сервер для записи на каждом сервере:

ansible -i inventory -m shell -a "dig A_record @dns_server" all | sed '/^;/d' | sed '/CHANGED/d' | sed '/^[[:space:]]*$/d'

Команды sed убирают лишнее из вывода: строки комментариев dig (начинаются с точки с запятой), служебные строки Ansible с пометкой CHANGED и пустые строки. Остаются только сами ответы.

Нужна помощь с настройкой?

Если задача сложнее, чем в статье, напишите мне. Первая консультация бесплатная.