Конвертувати curl у Ansible
curl2code конвертує команди curl у завдання плейбука Ansible за допомогою модуля uri. Конвертація виконується у вашому браузері через WebAssembly для повної приватності. Для Python перегляньте наш конвертер curl у Python. Для PowerShell дивіться curl у PowerShell. Нижче наведено практичні приклади на Ansible.
Як скопіювати curl з вашого браузера
- 1
Відкрийте DevTools
Натисніть F12 або Ctrl+Shift+I, щоб відкрити інструменти розробника у вашому браузері.
- 2
Перейдіть на вкладку Network
Натисніть на вкладку Network і виконайте дію, яка ініціює HTTP-запит.
- 3
Скопіюйте як cURL
Клацніть правою кнопкою миші на запит → Copy → Copy 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
Знайдіть будь-який код завершення curl — причини, виправлення та поради з налагодження.
Завантаження файлів за допомогою curl
Зберігайте файли з -o, -O, слідкуйте за перенаправленнями, відновлюйте завантаження та інше.
SSL, TLS та проксі
Налаштування сертифікатів, версій TLS, HTTP/SOCKS-проксі та власного DNS.