Найти в Дзене
IT, Python, Mikrotik, Linux

Основные горячие команды Ansible для эффективной работы

Наш канал: 👉 proit_world Проверка подключения # Проверить подключение ко всем хос ansible all -m ping # Проверить конкретную группу ansible webservers -m ping # Проверить с другим пользователем ansible all -m ping -u username -K Запуск плейбуков # Базовый запуск ansible-playbook playbook.yml # С паролем sudo ansible-playbook playbook.yml -K # С ограничением по хостам ansible-playbook playbook.yml --limit webserver1 # Только определенные теги ansible-playbook playbook.yml --tags "nginx,ssl" # Пропустить теги ansible-playbook playbook.yml --skip-tags "debug" Информационные команды # Список всех хостов ansible all --list-hosts # Список хостов в группе ansible webservers --list-hosts # Показать факты о хосте ansible webserver1 -m setup # Проверить синтаксис плейбука ansible-playbook playbook.yml --syntax-check # Тестовый запуск (dry-run) ansible-playbook playbook.yml --check Файловые операции # Копирование файлов ansible all -m copy -a "src=file.txt dest=/tmp/file.txt" # Соз

Наш канал: 👉 proit_world

Проверка подключения

# Проверить подключение ко всем хос

ansible all -m ping

# Проверить конкретную группу

ansible webservers -m ping

# Проверить с другим пользователем

ansible all -m ping -u username -K

Запуск плейбуков

# Базовый запуск

ansible-playbook playbook.yml

# С паролем sudo

ansible-playbook playbook.yml -K

# С ограничением по хостам

ansible-playbook playbook.yml --limit webserver1

# Только определенные теги

ansible-playbook playbook.yml --tags "nginx,ssl"

# Пропустить теги

ansible-playbook playbook.yml --skip-tags "debug"

Информационные команды

# Список всех хостов

ansible all --list-hosts

# Список хостов в группе

ansible webservers --list-hosts

# Показать факты о хосте

ansible webserver1 -m setup

# Проверить синтаксис плейбука

ansible-playbook playbook.yml --syntax-check

# Тестовый запуск (dry-run)

ansible-playbook playbook.yml --check

Файловые операции

# Копирование файлов

ansible all -m copy -a "src=file.txt dest=/tmp/file.txt"

# Создание директории

ansible all -m file -a "path=/tmp/test state=directory"

# Изменение прав

ansible all -m file -a "path=/tmp/file.txt mode=755 owner=root"

Управление пакетами

# Установка пакета (APT)

ansible all -m apt -a "name=nginx state=present" -K

# Обновление всех пакетов

ansible all -m apt -a "upgrade=dist" -K

# Установка (YUM)

ansible all -m yum -a "name=nginx state=present" -K

Системные команды

# Выполнить команду

ansible all -m command -a "uptime"

# Перезагрузка

ansible all -m reboot

# Перезапуск службы

ansible all -m service -a "name=nginx state=restarted" -K

Работа с inventory

# Использование конкретного inventory ф

ansible-playbook -i production.ini playbook.yml

# Динамическое inventory

ansible-playbook -i aws_ec2.yml playbook.yml

# Показать группы из inventory

ansible-inventory -i production.ini --list

# Графическое представление

ansible-inventory -i production.ini --graph

Быстрые исправления

# Перезапустить службу на всех хост

ansible all -m service -a "name=nginx state=restarted" -K

# Добавить пользователя

ansible all -m user -a "name=john state=present" -K

# Изменить пароль

ansible all -m user -a "name=john password={{ 'password' | password_hash('sha512') }}" -K

Работа с ролями

# Создать структуру роли

ansible-galaxy role init my_role

# Установить роль из Galaxy

ansible-galaxy role install username.role_name

# Установить из requirements.yml

ansible-galaxy install -r requirements.yml

# Создать плейбук с ролью

ansible-galaxy role init --role-skeleton=basic my_role

Полезные комбинации

# Запуск с ограничением по времени

timeout 300 ansible-playbook playbook.yml

# Параллельное выполнение

ansible-playbook playbook.yml -f 10

# 10 параллельных процессов

# Запуск с разными переменными

ansible-playbook playbook.yml -e "version=2.4 env=production"

# Сохранить результат в файл

ansible all -m shell -a "date" > output.txt

Поиск проблем

# Проверить доступность портов

ansible all -m wait_for -a "port=80 host={{ inventory_hostname }}"

# Проверить синтаксис YAML

ansible-playbook playbook.yml --syntax-check

# Показать изменения (diff)

ansible-playbook playbook.yml --diff

# Показать список тегов

ansible-playbook playbook.yml --list-tags

#linux #ansible