0Pricing
DevOps Bootcamp · Урок

Возврат JSON и соблюдение changed

Используйте протокол результатов модуля

«Возврат JSON и соблюдение changed» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Модули обмениваются данными в формате JSON

Завершая работу, модуль должен передать Ansible результат в формате JSON. Так контроллер узнаёт, что произошло на узле.

Завершайте работу с помощью exit_json

При успешном выполнении вызывайте module.exit_json. Он выводит результат в формате JSON и корректно завершает работу модуля с правильным кодом завершения.

module.exit_json(changed=True, name='web')

Ключ changed имеет значение

Всегда достоверно сообщайте значение changed. Оно показывает Ansible, изменили ли Вы систему, и определяет, будет ли в выводе строка ok или changed.

module.exit_json(changed=False)

Проверяйте состояние перед изменением

Чтобы правильно использовать changed, сначала считайте текущее состояние. Если оно уже соответствует цели, установите changed=False и ничего не делайте.

if current == desired:
    module.exit_json(changed=False)

Возвращайте дополнительные данные

В exit_json можно добавить любые ключи, и они появятся в результате задачи. Позже пользователи смогут сохранить эти данные и использовать их повторно.

module.exit_json(changed=True, user_id=42)

Завершайте работу с помощью fail_json

Если что-то пошло не так, вызовите module.fail_json с понятным сообщением. Ansible отметит задачу как неуспешную и покажет Ваш текст.

module.fail_json(msg='API request timed out')

Не ограничивайтесь простым выводом

Не используйте print или необработанный stdout. Ansible ожидает только итоговый объект JSON, поэтому лишний вызов print повреждает результат и приводит к сбою задачи.

Только один вызов завершения

Каждый модуль завершается ровно одним вызовом exit_json или fail_json. Оба вызывают SystemExit, поэтому код после них не выполняется.

Полезное сообщение помогает

Добавляйте в результаты понятное msg с описанием выполненных действий. Хорошие сообщения превращают непонятные запуски в удобные для чтения.

module.exit_json(changed=True, msg='Created user web')

Следуйте поведению встроенных модулей

Формируйте вывод так же, как это делают основные модули: сообщайте о changed, возвращайте содержательные поля и явно сообщайте об ошибке с указанием причины. Единообразие укрепляет доверие.

Результат определяет всё

Обработчики, условные конструкции и зарегистрированные переменные читают данные из Вашего JSON. Именно правильное значение changed делает модуль полноценным участником экосистемы Ansible.

Быстрая проверка

Подумайте, что должен сообщить модуль, если ничего не было изменено.

Итоги

При успехе завершайте работу через exit_json, а при ошибке — через fail_json, честно сообщайте значение changed и никогда не выводите необработанные данные. Таков протокол результатов модуля. 📦

Часто задаваемые вопросы

Урок «Возврат JSON и соблюдение changed» бесплатный?

Да — полный текст урока «Возврат JSON и соблюдение changed» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Возврат JSON и соблюдение changed»?

Используйте протокол результатов модуля Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Возврат JSON и соблюдение changed»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

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

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