ansible
56 commands
56 shown
Запустить плейбук
Запустить плейбук с diff для отображения изменений
ansible-playbook -i inventory/prod playbook.yml --diff
Ограничить выполнение хостом
Запустить только на указанных хостах из inventory
ansible-playbook -i inventory playbook.yml --limit host1,host2
Запустить по тегу
Выполнить только задачи с указанными тегами
ansible-playbook -i inventory playbook.yml --tags install,configure
Пропустить теги
Пропустить задачи с указанными тегами
ansible-playbook -i inventory playbook.yml --skip-tags cleanup
Dry run (check mode)
Симулировать выполнение без реальных изменений
ansible-playbook -i inventory playbook.yml --check --diff
Ad-hoc ping всех хостов
Проверить связь со всеми хостами из inventory
ansible all -i inventory -m ping
Ad-hoc shell команда
Выполнить команду на всех хостах
ansible all -i inventory -m shell -a 'uptime'
Ad-hoc скопировать файл
Скопировать файл на все хосты
ansible all -i inventory -m copy -a 'src=./file dest=/tmp/file'
Факты хоста
Собрать все Ansible факты (ОС, CPU, сеть) с хоста
ansible <host> -i inventory -m setup | jq '._ansible_facts'
Зашифровать переменную vault
Зашифровать строку inline для использования в плейбуке
ansible-vault encrypt_string 'secret_value' --name 'db_password'
Зашифровать файл vault
Зашифровать весь файл переменных через Ansible Vault
ansible-vault encrypt vars/secrets.yml
Расшифровать vault файл
Расшифровать файл зашифрованный Ansible Vault
ansible-vault decrypt vars/secrets.yml
Просмотреть зашифрованный файл
Просмотреть содержимое зашифрованного файла не расшифровывая на диске
ansible-vault view vars/secrets.yml
Установить роль из Galaxy
Загрузить роли из requirements.yml в локальную директорию
ansible-galaxy install -r requirements.yml -p roles/
Установить коллекцию
Установить коллекцию Ansible из Galaxy
ansible-galaxy collection install community.kubernetes
Список хостов из inventory
Все хосты и группы из inventory
ansible-inventory -i inventory --list | jq 'keys'
Запустить с дополнительными переменными
Передать дополнительные переменные переопределяющие дефолты плейбука
ansible-playbook playbook.yml -e 'env=prod version=2.0'
Подробный вывод
Максимальная детализация — каждая задача, соединение, вывод
ansible-playbook playbook.yml -vvv
Проверить синтаксис плейбука
Проверить синтаксис YAML без выполнения задач
ansible-playbook playbook.yml --syntax-check
Пингануть все хосты
Проверить SSH и Python на всех хостах
ansible all -m ping -i inventory.ini
Выполнить команду на группе
Выполнить shell-команду на всех хостах группы webservers
ansible webservers -m shell -a 'uptime && free -h' -i inventory.ini
Получить facts хоста
Собрать и отфильтровать Ansible facts для одного хоста
ansible <host> -m setup -i inventory.ini | jq '.ansible_facts | {os: .ansible_distribution, mem: .ansible_memtotal_mb}'
Режим проверки (dry run)
Показать что изменится без реального применения
ansible-playbook site.yml --check --diff -i inventory.ini
Запуск с extra variables
Переопределить переменные из командной строки
ansible-playbook deploy.yml -e 'env=prod version=2.1.0' -i inventory.ini
Запуск только на выбранных хостах
Запустить playbook только на указанных хостах
ansible-playbook site.yml --limit 'web-01,web-02' -i inventory.ini
Запуск по тегам
Выполнить только задачи с указанными тегами
ansible-playbook site.yml --tags 'config,restart' -i inventory.ini
Пропустить теги
Пропустить задачи с указанными тегами
ansible-playbook site.yml --skip-tags 'slow,optional' -i inventory.ini
Увеличить подробность вывода
Максимальная подробность для отладки; сохранить в лог
ansible-playbook site.yml -vvv -i inventory.ini 2>&1 | tee /tmp/ansible.log
Зашифровать переменную Vault
Зашифровать значение inline для использования в vars
ansible-vault encrypt_string 'supersecret' --name 'db_password'
Расшифровать vault-файл
Показать расшифрованное содержимое vault-файла
ansible-vault view group_vars/all/vault.yml
Скопировать файл на удалённый хост
Отправить локальный файл на все хосты с правами
ansible all -m copy -a 'src=./nginx.conf dest=/etc/nginx/nginx.conf owner=root mode=0644' -i inventory.ini
Перезапустить сервис на всех хостах
Ad-hoc перезапуск сервиса с повышением привилегий (-b)
ansible webservers -m service -a 'name=nginx state=restarted' -b -i inventory.ini
Граф инвентаря
Отобразить иерархию групп инвентаря в виде дерева
ansible-inventory -i inventory.ini --graph
Тестировать роль через Molecule
Запустить полный тест Molecule: create, converge, verify, destroy
molecule test -s default
Проверка соединения (ping)
Проверить SSH соединение со всеми хостами в инвентаре
ansible all -i inventory.ini -m ping
Ad-hoc команда в shell
Выполнить команду на всех webservers с sudo (-b)
ansible webservers -i inventory.ini -m shell -a 'df -h' -b
Собрать факты для хоста
Собрать и просмотреть Ansible факты для одного хоста
ansible myhost -i inventory.ini -m setup | jq '.ansible_facts.ansible_distribution'
Плейбук с тегами
Выполнить только задачи с тегами nginx или ssl
ansible-playbook site.yml -i inventory.ini --tags 'nginx,ssl'
Пропустить теги
Пропустить задачи с тегами slow или optional
ansible-playbook site.yml -i inventory.ini --skip-tags 'slow,optional'
Зашифровать переменную через Vault
Inline шифрование одной строки для использования в vars
ansible-vault encrypt_string 'mysecretpassword' --name 'db_password'
Ограничить конкретными хостами
Запустить плейбук только на web01 и web02
ansible-playbook deploy.yml -i inventory.ini --limit 'web01,web02'
Пошаговый режим выполнения
Подтверждать каждую задачу перед выполнением (режим отладки)
ansible-playbook site.yml -i inventory.ini --step
Смена пароля vault-файла
Перешифровать vault новым паролем без раскрытия открытого текста; безопасная ротация секретов
ansible-vault rekey vault.yml --new-vault-password-file new_pass.txt
Несколько vault-ID с запросом пароля
Совмещение vault-ID: файл для dev, интерактивный запрос для prod; секреты разделены по окружениям
ansible-playbook site.yml --vault-id dev@dev_pass.txt --vault-id prod@prompt
Редактирование vault на месте
Расшифровать, отредактировать в $EDITOR, зашифровать атомарно — открытый текст не пишется на диск
EDITOR=vim ansible-vault edit group_vars/prod/secrets.yml --vault-password-file ~/.vault_pass
Граф динамического инвентаря
Дерево динамического облачного инвентаря с переменными хостов; проверка группировки плагина перед запуском
ansible-inventory -i aws_ec2.yml --graph --vars
Инвентарь в формате YAML
Преобразовать динамический инвентарь в статический YAML для diff или офлайн-отладки
ansible-inventory -i aws_ec2.yml --list --yaml > resolved_inventory.yml
Группы по ключу через constructed
Автогруппировка хостов по фактам/тегам через плагин constructed; напр. role_web, region_eu
plugin: constructed
keyed_groups:
- key: tags.Role
prefix: role
- key: placement.region
prefix: region
Каркас роли через Molecule
Создать роль со сценарием Molecule; MOLECULE_DISTRO задаёт тестовый образ
molecule init role my_role --driver-name docker && cd my_role && MOLECULE_DISTRO=ubuntu2204 molecule create
Molecule converge и verify
Применить роль к тестовому инстансу, затем выполнить проверки (testinfra/ansible)
molecule converge && molecule verify
Проверка идемпотентности Molecule
Повторный прогон роли с падением при changed — ловит неидемпотентные задачи
molecule idempotence
Вход в инстанс Molecule
Зайти по SSH в тестовый контейнер Molecule для разбора состояния до destroy
molecule login --host instance
Возобновление с нужной задачи
Пропустить всё до названной задачи; продолжить упавший плейбук без повтора подготовки
ansible-playbook site.yml --start-at-task "Deploy app config"
Сухой список задач и хостов
Показать план: все задачи и итоговые целевые хосты без подключения
ansible-playbook site.yml --list-tasks --list-hosts -i prod
Профилирование времени задач
Ранжировать задачи по времени выполнения для поиска медленных; profile_roles — вариант по ролям
ANSIBLE_CALLBACKS_ENABLED=profile_tasks ansible-playbook site.yml
Сохранение временных файлов на хосте
Сохранить отправленные скрипты модулей в ~/.ansible/tmp для ручной отладки падающего модуля
ANSIBLE_KEEP_REMOTE_FILES=1 ansible-playbook site.yml -vvvv --limit <host>
no commands match