Руководство пользователя
Примечание
Повышение инклюзивности в открытом исходном коде
Компания Red Hat стремится заменить проблемную лексику в своем коде, документации и веб-ресурсах. Мы начинаем с этих четырех терминов: master, slave, blacklist и whitelist. Просим сообщать об упущенных терминах, создавая issue или pull request. Более подробная информация доступна в сообщении нашего CTO Криса Райта.
Добро пожаловать в Руководство пользователя Ansible! Это руководство о работе с Ansible, включая использование командной строки, работу с инвентарём, взаимодействие с данными, написание задач, плейбуков и playbooks; выполнение playbooks и справочные материалы. На этой странице описаны наиболее распространённые ситуации и вопросы, которые приводят читателей в этот раздел. Если вы предпочитаете традиционное содержание, вы можете найти его внизу страницы.
Начало работы
-
Мне нужен обзор работы Ansible. Где я могу найти:
- краткое видео-введение quick video overview
- текстовое введение text introduction
- Я готов изучать Ansible. Какие концепции Ansible мне нужно изучить?
- Я хочу использовать Ansible без написания playbook. Как использовать ad hoc команды?
Написание задач, плейбуков и playbooks
- Я пишу свой первый playbook. Что мне нужно знать перед началом?
-
У меня есть конкретный случай использования задачи или плейбука:
- Выполнение задач с повышенными привилегиями или как другой пользователь с помощью become
- Повторение задачи один раз для каждого элемента в списке с помощью циклов
- Выполнение задач на другом компьютере с помощью делегирования
- Выполнение задач только при определенных условиях с помощью условных операторов и оценки условий с помощью тестов
- Группирование набора задач вместе с помощью блоков
- Выполнение задач только тогда, когда что-то изменилось, с помощью обработчиков
- Изменение способа, которым Ansible обрабатывает ошибки
- Установление удаленных значений среды
- Я хочу использовать преимущества многоразовых артефактов Ansible. Как создать многоразовые файлы и роли?
- Мне нужно включить один файл или playbook в другой. В чем разница между включением и импортом?
- Я хочу запустить выбранные части моего playbook. Как добавить и использовать метки?
Работа с инвентарём
- У меня есть список серверов и устройств, которые я хочу автоматизировать. Как создать инвентарь для их отслеживания?
- Я использую облачные сервисы, и серверы и устройства постоянно запускаются и останавливаются. Как отслеживать их с помощью динамического инвентаря?
- Я хочу автоматизировать определенные подмножества моего инвентаря. Как использовать шаблоны?
Взаимодействие с данными
- Я хочу использовать один playbook для нескольких систем с различными атрибутами. Как использовать переменные для обработки различий?
- Я хочу получить данные о моих системах. Как получить доступ к фактам Ansible?
- Мне нужно получить доступ к конфиденциальным данным, таким как пароли, с помощью Ansible. Как защитить эти данные с помощью Ansible vault?
- Я хочу изменить имеющиеся данные, чтобы использовать их в задаче. Как использовать фильтры для преобразования данных?
- Мне нужно получить данные из внешнего хранилища данных. Как использовать lookups для доступа к базам данных и API?
- Я хочу попросить пользователей playbook предоставить данные. Как получить пользовательский ввод с помощью подсказок?
- Я часто использую определенные модули. Как оптимизировать свой инвентарь и playbooks, задавая значения по умолчанию для параметров модулей?
Выполнение playbooks
После того, как ваш playbook готов к запуску, вам могут понадобиться эти темы:
- Выполнение «сухих» playbooks с помощью режима проверки и diff
- Запуск playbooks при отладке с помощью шагов запуска и выполнения
- Исправление задач во время выполнения с помощью отладчика Ansible
- Управление выполнением playbooks с помощью стратегий и др.
- Выполнение задач, плейбуков и playbooks асинхронно
Расширенные возможности и справка
- Использование расширенного синтаксиса
- Обработка сложных данных
- Использование плагинов
- Использование ключевых слов playbooks
- Использование инструментов командной строки
- Отклонение конкретных модулей
- Обслуживание модулей
Традиционное содержание
Если вы предпочитаете прочитать всё Руководство пользователя, вот список страниц в порядке:
- Быстрый старт Ansible
- Основные концепции Ansible
- Начало работы
- Введение в адхоковые команды
- Работа с плейбуками
- Введение в плейбуки
- Рекомендации и советы
- Понимание повышения привилегий: become
- Циклы
- Управление местоположением выполнения задач: делегирование и локальные действия
- Условные операторы
- Тесты
- Блоки
- Обработчики: выполнение операций при изменении
- Обработка ошибок в плейбуках
- Установка удалённой среды
- Работа с менеджерами версий, специфичными для языка
- Повторное использование артефактов Ansible
- Роли
- Включение и импорт
- Теги
-
Как создать свой инвентарь
- Основы инвентаря: форматы, хосты и группы
- Добавление переменных в инвентарь
- Назначение переменной одному компьютеру: переменные хоста
- Назначение переменной многим компьютерам: переменные группы
- Организация переменных хоста и группы
- Как объединяются переменные
- Использование нескольких источников инвентаря
- Подключение к хостам: параметры поведенческого инвентаря
- Примеры настройки инвентаря
- Работа с динамическим инвентарём
- Шаблоны: таргетирование хостов и групп
- Методы и подробности подключения
- Работа с инструментами командной строки
-
Использование переменных
- Создание допустимых имён переменных
- Простые переменные
- Когда нужно указывать переменные в кавычках (особенность YAML)
- Переменные-списки
- Переменные-словари
- Регистрация переменных
- Ссылка на вложенные переменные
- Преобразование переменных с помощью фильтров Jinja2
- Где задавать переменные
- Приоритет переменных: где мне следует разместить переменную?
- Использование расширенного синтаксиса переменных
- Открытие переменных: факты и магические переменные
-
Шифрование содержимого с помощью Ansible Vault
- Управление паролями vault
- Шифрование содержимого с помощью Ansible Vault
- Использование зашифрованных переменных и файлов
- Настройка значений по умолчанию для использования зашифрованного содержимого
- Когда зашифрованные файлы становятся видимыми?
- Ускорение Ansible Vault
- Формат файлов, зашифрованных с помощью Ansible Vault
-
Использование фильтров для обработки данных
- Обработка неопределенных переменных
- Определение различных значений для true/false/null (тернарное)
- Управление типами данных
- Форматирование данных: YAML и JSON
- Комбинирование и выбор данных
- Генерация случайных данных
- Управление списковыми переменными
- Выбор из наборов или списков (теория множеств)
- Вычисление чисел (математика)
- Управление сетевыми взаимодействиями
- Шифрование и вычисление контрольных сумм строк и паролей
- Работа с текстом
- Работа со строками
- Работа с UUID
- Обработка дат и времени
- Получение имён ресурсов Kubernetes
- Обращения к справочным таблицам (lookups)
- Взаимодействие с пользователем: подсказки (prompts)
- Значения по умолчанию для модулей
- Проверка задач: режим check и режим diff
- Выполнение playbooks для устранения неполадок
- Отладка задач
- Управление выполнением playbooks: стратегии и многое другое
- Асинхронные действия и опрос
- Расширенный синтаксис
- Обработка сложных данных
- Отклонение модулей
-
Образец настройки Ansible
- Образец структуры каталогов
- Альтернативная структура каталогов
- Образец переменных групп и хостов
- Образец playbooks, организованные по функциям
- Образец файлов задач и обработчиков в роли, основанной на функциях
- Что позволяет образец настройки
- Организация для развертывания или настройки
- Использование локальных модулей Ansible
- Работа с модулями
-
Работа с плагинами
- Плагины действий
- Плагины become
- Плагины кеширования
- Плагины обратной связи
- Плагины cliconf
- Плагины подключения
- Плагины httpapi
- Плагины инвентаризации
- Плагины обращений к справочным таблицам
- Плагины netconf
- Плагины оболочки
- Плагины стратегий
- Плагины переменных
- Использование фильтров для обработки данных
- Тесты
- Отклонение модулей
- Ключевые слова playbooks
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/user_guide/index.html