Appearance
Команды Ansible
📁 Работа с инвентарем
Проверка структуры инвентаря
bash
ansible-inventory --list -i inventory.inibash
ansible-inventory --graph -i inventory.iniПроверка хостов в инвентаре
bash
ansible all -i inventory.ini --list-hostsbash
ansible webservers -i inventory.ini --list-hosts # для конкретной группыТестирование подключения
bash
ansible all -i inventory.ini -m pingbash
ansible webservers -i inventory.ini -m ping -u root # с указанием пользователя🚀 Запуск плейбуков
Основные опции
bash
ansible-playbook zabbix-agent.yml # Базовый запускbash
ansible-playbook zabbix-agent.yml --syntax-check # Проверка синтаксисаbash
ansible-playbook zabbix-agent.yml --check # Имитация выполнения (check mode)bash
ansible-playbook zabbix-agent.yml --step # Пошаговый запуск (с подтверждением)Уровни детализации (verbose)
bash
ansible-playbook zabbix-agent.yml -v # Базовыйbash
ansible-playbook zabbix-agent.yml -vv # Подробныйbash
ansible-playbook zabbix-agent.yml -vvv # Еще подробнееbash
ansible-playbook zabbix-agent.yml -vvvv # Максимальная детализацияУправление хостами и группами
bash
ansible-playbook zabbix-agent.yml --limit "web01,web02" # Для конкретных хостовbash
ansible-playbook zabbix-agent.yml --limit "webservers" # Для группы хостовbash
ansible-playbook zabbix-agent.yml -i production.ini # С другим инвентаремРабота с переменными
bash
ansible-playbook zabbix-agent.yml -e "zabbix_server=192.168.1.100" # Передача переменнойbash
ansible-playbook zabbix-agent.yml --extra-vars "@vars.json" # Загрузка из файлаИспользование тегов
bash
ansible-playbook zabbix-agent.yml --tags "install,configure" # Запуск определенных теговbash
ansible-playbook zabbix-agent.yml --skip-tags "restart" # Пропуск теговРабота с Vault
bash
ansible-playbook zabbix-agent.yml --ask-vault-pass # Запрос пароляbash
ansible-playbook zabbix-agent.yml --vault-password-file ~/.vault_pass # Файл с паролемПроизводительность
bash
ansible-playbook zabbix-agent.yml -f 10 # Количество параллельных потоков (по умолчанию 5)🔧 Работа с ролями и коллекциями
Создание ролей
bash
ansible-galaxy init role_name # Базовая структура ролиbash
ansible-galaxy init role_name --init-path ./roles # В определенной директорииУстановка из Galaxy
bash
ansible-galaxy role install geerlingguy.nginx # Установка ролиbash
ansible-galaxy role install -r requirements.yml # Установка из requirements файлаbash
ansible-galaxy collection install community.zabbix # Установка коллекцииbash
ansible-galaxy collection install -r requirements.yml # Установка коллекций из файлаУправление установленными
bash
ansible-galaxy role list # Список установленных ролейbash
ansible-galaxy collection list # Список установленных коллекцийbash
ansible-galaxy role search nginx --author geerlingguy # Поиск ролейbash
ansible-galaxy role remove geerlingguy.nginx # Удаление роли📦 Работа с модулями (Ad-hoc команды)
Управление пакетами
bash
ansible all -m apt -a "name=zabbix-agent state=present"bash
ansible all -m yum -a "name=zabbix-agent state=present"bash
ansible all -m dnf -a "name=zabbix-agent state=present"Управление сервисами
bash
ansible all -m service -a "name=zabbix-agent state=started enabled=yes" # Запуск и автозагрузкаbash
ansible all -m systemd -a "name=zabbix-agent state=restarted" # Перезапуск через systemdКопирование файлов
bash
ansible all -m copy -a "src=/etc/zabbix/zabbix_agentd.conf dest=/etc/zabbix/ backup=yes" # С резервным копированиемbash
ansible all -m template -a "src=zabbix_agentd.conf.j2 dest=/etc/zabbix/zabbix_agentd.conf" # Использование шаблоновВыполнение команд
bash
ansible all -m command -a "systemctl status zabbix-agent" # Простые команды (без shell)bash
ansible all -m shell -a "ps aux | grep zabbix" # Shell команды с пайпамиbash
ansible all -m raw -a "echo 'test' > /tmp/test.txt" # Raw команды (без Python)Сбор информации о системе
bash
ansible all -m setup # Все фактыbash
ansible web01 -m setup -a "filter=ansible_os_family" # Фильтр по OSbash
ansible all -m setup -a "gather_subset=network" # Только сетевые настройкиУправление файлами и пользователями
bash
ansible all -m file -a "path=/tmp/test state=directory mode=0755" # Создание директорииbash
ansible all -m file -a "path=/tmp/test state=absent" # Удалениеbash
ansible all -m user -a "name=zabbix state=present groups=sudo" # Создание пользователя🔐 Работа с Ansible Vault
Основные операции
bash
ansible-vault encrypt secrets.yml # Шифрование файлаbash
ansible-vault encrypt vars/production.yml # Шифрование файла в директорииbash
ansible-vault decrypt secrets.yml # Расшифровкаbash
ansible-vault view secrets.yml # Просмотр (без расшифровки на диск)bash
ansible-vault edit secrets.yml # Редактированиеbash
ansible-vault rekey secrets.yml # Смена пароляШифрование строк
bash
ansible-vault encrypt_string 'my_password' --name 'db_password' # Шифрование строкиbash
# Результат можно использовать в переменных:
# db_password: !vault |
# $ANSIBLE_VAULT;1.1;AES256
# 663864396532363436...🐍 Работа с Python окружением
Проверка версий
bash
ansible --versionbash
python3 --versionУстановка и обновление
bash
pip install ansible # Установкаbash
pip install ansible-core # Минимальная версияbash
pip install ansible --upgrade # Обновлениеbash
ansible-galaxy collection install community.general # Установка коллекцийbash
ansible-galaxy collection install community.docker📊 Команды для Zabbix
Проверка статуса
bash
ansible all -m shell -a "systemctl status zabbix-agent | grep Active" # Статус сервисаbash
ansible all -m command -a "zabbix_agentd -t agent.version" # Версия агентаЛоги и отладка
bash
ansible all -m shell -a "tail -n 20 /var/log/zabbix/zabbix_agentd.log" # Просмотр логовbash
ansible all -m systemd -a "name=zabbix-agent state=restarted" -v # Перезапуск с отладкойbash
ansible all -m shell -a "zabbix_agentd -T" # Тест конфигурацииbash
ansible all -m shell -a "zabbix_agentd -p" # Все доступные метрики🛠 Диагностика и отладка
Проверка соединений
bash
ansible web01 -m ping -vvv # Детальный pingbash
ansible web01 -m setup | less # Сбор информации о хостеПовышенные привилегии
bash
ansible all -m ping -b --become-user=root # Становимся rootbash
ansible-playbook playbook.yml -b -K # Запуск с sudo (запросит пароль)Проверка плейбуков
bash
for playbook in *.yml; do
ansible-playbook $playbook --syntax-check
done # Проверка синтаксиса всех плейбуковbash
ansible-playbook zabbix-agent.yml --list-tasks # Просмотр задачbash
ansible-playbook zabbix-agent.yml --list-tags # Просмотр доступных теговДокументация модулей
bash
ansible-doc -l | grep zabbix # Список всех модулейbash
ansible-doc zabbix_agent # Документация конкретного модуля📝 Работа с конфигурацией
Просмотр настроек
bash
ansible-config view # Текущая конфигурацияbash
ansible-config dump # Все настройки со значениямиbash
ansible-config dump | grep gathering # Поиск конкретной настройкиСоздание конфигурации
bash
ansible-config init --disabled > ansible.cfg # Создание базового файла🔄 Дополнительные утилиты
Ansible Console (интерактивный режим)
bash
ansible-console -i inventory.ini # Запуск консолиbash
# Примеры команд внутри консоли:
# ping all
# apt name=nginx state=present
# service name=nginx state=startedРабота с Galaxy
bash
ansible-galaxy role info geerlingguy.nginx # Информация о ролиbash
ansible-galaxy role init --role-skeleton=./skeleton # Создание requirements файла📚 Полезные ссылки
<Giscus />