Конвертувати 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 проти command з curl — що використовувати?

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

Як обробляти автентифікацію в Ansible?

Для Bearer: headers: { Authorization: "Bearer {{ token }}" }. Для Basic auth використовуйте параметри 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) для завдання: 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-токена в Ansible?

Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL у curl2code, і він згенерує код модуля uri із заголовком авторизації: headers: Authorization: 'Bearer YOUR_TOKEN'. curl2code виявляє Bearer-токени як у прапорцях -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 в інші мови