AnsibleModule и спецификация аргументов
Определяйте и проверяйте входные данные модуля
«AnsibleModule и спецификация аргументов» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Знакомьтесь: AnsibleModule
Класс AnsibleModule — ваш набор инструментов. Он разбирает аргументы, которые передаёт Ansible, проверяет их и предоставляет вспомогательные средства для возврата результатов.
from ansible.module_utils.basic import AnsibleModuleСловарь argument_spec
Опишите все входные данные, которые принимает ваш модуль, в словаре argument_spec. Ansible считывает его, чтобы проверить переданные пользователями значения.
argument_spec=dict(
name=dict(type='str', required=True)
)Задайте тип для каждого аргумента
Укажите type, например str, int, bool, list или dict. Ansible преобразует типы и отклоняет неверные входные данные ещё до запуска вашего кода.
count=dict(type='int', default=1)Отметьте обязательные параметры
Добавьте required=True, и Ansible завершит работу с понятной ошибкой, если пользователь забудет этот аргумент. Дополнительные проверки не нужны.
path=dict(type='str', required=True)Задайте разумные значения по умолчанию
Используйте default, чтобы необязательные аргументы автоматически получали значение. Пользователям нужно указывать только то, что они хотят изменить.
state=dict(type='str', default='present')Ограничьте допустимые варианты
Список choices ограничивает аргумент разрешёнными значениями. Любое другое значение сразу отклоняется с полезным сообщением.
state=dict(choices=['present', 'absent'])Создайте объект модуля
Передайте описание в AnsibleModule, чтобы создать объект. С этого момента все входные данные находятся в безопасности в module.params.
module = AnsibleModule(argument_spec=argument_spec)Прочитайте проверенные входные данные
Получайте доступ к аргументам через module.params, обычный словарь. Значения уже имеют нужные типы и проверены, поэтому просто используйте их.
name = module.params['name']Правила между аргументами
Нужно, чтобы два аргумента передавались вместе, или чтобы они никогда не передавались одновременно? Передайте AnsibleModule такие правила, как required_together или mutually_exclusive, и он обеспечит их соблюдение.
mutually_exclusive=[['src', 'content']]Скройте секреты с помощью no_log
Пометьте конфиденциальные входные данные как no_log=True, чтобы пароли никогда не появлялись в журналах Ansible или подробном выводе.
password=dict(type='str', no_log=True)Позвольте описанию сделать работу
Хорошая argument_spec избавляет от множества ручных проверок. Один раз опишите входные данные, и Ansible автоматически обработает типы, ошибки и документацию.
Быстрая проверка
Подумайте, как входные данные пользователя попадают в код модуля.
Итоги
Определите входные данные в argument_spec, указав типы, значения по умолчанию, обязательность и допустимые варианты, создайте AnsibleModule, а затем считайте обработанные значения из module.params. ✅
Часто задаваемые вопросы
Урок «AnsibleModule и спецификация аргументов» бесплатный?
Да — полный текст урока «AnsibleModule и спецификация аргументов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «AnsibleModule и спецификация аргументов»?
Определяйте и проверяйте входные данные модуля Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «AnsibleModule и спецификация аргументов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Когда создавать собственный модуль
- AnsibleModule и спецификация аргументов
- Возврат JSON и соблюдение changed
- Поддержка режима проверки в модуле