0Pricing
DevOps Bootcamp · Урок

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 — локальная установка не требуется.

Все уроки этого курса

  1. Когда создавать собственный модуль
  2. AnsibleModule и спецификация аргументов
  3. Возврат JSON и соблюдение changed
  4. Поддержка режима проверки в модуле
← Назад к DevOps Bootcamp