ansible

56 commands

56 shown

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