Конвертировать curl в Ansible

curl2code преобразует команды curl в задачи плейбука Ansible с использованием модуля uri. Конвертация выполняется в вашем браузере через WebAssembly для полной конфиденциальности. Для Python ознакомьтесь с нашим конвертером curl в Python. Для PowerShell см. curl в PowerShell. Ниже приведены практические примеры для Ansible.

Как скопировать curl из браузера

  1. 1

    Откройте DevTools

    Нажмите F12 или Ctrl+Shift+I, чтобы открыть инструменты разработчика в браузере.

  2. 2

    Перейдите на вкладку Network

    Нажмите на вкладку Network и выполните действие, которое инициирует HTTP-запрос.

  3. 3

    Скопируйте как cURL

    Нажмите правой кнопкой мыши на запрос → CopyCopy as cURL. Затем вставьте его выше.

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

Что такое модуль Ansible uri?

Модуль uri — это встроенный модуль Ansible для выполнения HTTP-запросов внутри плейбуков. Он поддерживает GET, POST, PUT, DELETE с поддержкой JSON-тела, аутентификации и валидации кода состояния. Дополнительные коллекции не нужны — он является частью ansible.builtin. curl2code генерирует YAML-задачи Ansible с использованием модуля uri.

Модуль uri против get_url против команды с curl — что использовать?

Модуль uri предназначен для вызовов API — он возвращает распарсенный JSON и проверяет статус. get_url используется для скачивания файлов на диск. command: curl считается антипаттерном — теряется идемпотентность и обработка ошибок. Всегда предпочитайте uri для взаимодействия с HTTP API. Для автоматизации на Python см. curl в Python.

Как обрабатывать аутентификацию в Ansible?

Для Bearer: headers: { Authorization: "Bearer {{ token }}" }. Для Basic-аутентификации используйте параметры url_username и url_password. Храните секреты в Ansible Vault: ansible-vault encrypt_string. Модуль uri также поддерживает force_basic_auth: yes для превентивной аутентификации.

Как отправить данные формы с помощью Ansible?

Для JSON-тел: body: {{ data | to_json }} с body_format: json. Для form-urlencoded: body_format: form-urlencoded с body: key=value&key2=value2. Для загрузки файлов multipart требуется модуль community.general.uri или кастомный скрипт. curl2code обрабатывает преобразования -F.

Как обрабатывать ошибки в задачах HTTP Ansible?

Используйте register: result с failed_when: result.status != 200 для кастомных условий сбоя. Используйте ignore_errors: yes, чтобы продолжить выполнение при ошибке. Модуль uri по умолчанию завершается сбоем при не-2xx — переопределите это с помощью status_code: [200, 201, 404], чтобы принимать несколько кодов состояния.

Как парсить JSON-ответы в Ansible?

Модуль uri автоматически парсит JSON, если установлено return_content: yes — доступ через result.json. Используйте фильтры Jinja2: result.json.users | selectattr('active') | list. Для сложных преобразований используйте set_fact с фильтрами. Регистрируйте результаты для использования в последующих задачах.

Как установить тайм-ауты и повторы в Ansible?

Установите timeout: 30 в задаче uri для тайм-аута запроса в секундах. Для повторов: используйте retries: 3 с delay: 5 и until: result.status == 200. Это встроенный паттерн цикла повторов Ansible — кастомные скрипты не нужны. Работает с любым модулем, не только с uri.

Как использовать прокси с Ansible uri?

Установите окружение в задаче: environment: { http_proxy: "http://proxy:8080", https_proxy: "http://proxy:8080" }. Или установите глобально в ansible.cfg или group_vars. Модуль uri учитывает стандартные переменные окружения прокси. Для исключений: no_proxy: "localhost,.internal".

Как отправить POST-запрос с телом JSON в Ansible?

Преобразуйте команду curl POST, такую как curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL, в Ansible с помощью curl2code. Сгенерированный код использует ansible.builtin.uri: url: '{'{ url }'}' method: POST body_format: json body: '{'{ data }'}'. curl2code автоматически обнаруживает флаги -d/--data с содержимым JSON и устанавливает соответствующий заголовок Content-Type в коде модуля uri.

Как добавить авторизацию через Bearer token в Ansible?

Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL в curl2code, и инструмент сгенерирует код модуля uri с заголовком авторизации: headers: Authorization: 'Bearer YOUR_TOKEN'. curl2code распознает Bearer tokens как в флагах -H "Authorization: Bearer ...", так и в --oauth2-bearer. Для Basic auth используйте -u user:pass.

Как установить заголовок Content-Type в Ansible?

curl2code преобразует curl -H "Content-Type: application/json" URL в код модуля uri с правильным заголовком: body_format: json. Для данных -d curl по умолчанию использует application/x-www-form-urlencoded; для загрузки форм -F используется multipart/form-data. curl2code сопоставляет каждый вариант с подходящим API модуля uri.

Полезные ссылки

Руководства по curl

Конвертировать curl в другие языки