Конвертиране на curl в Ansible
curl2code конвертира curl команди в Ansible playbook задачи, използвайки модула 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. След това я поставете по-горе.
Често задавани въпроси
Какво е модулът uri на Ansible?
Модулът uri е вграденият модул на Ansible за извършване на HTTP заявки в playbooks. Той поддържа GET, POST, PUT, DELETE с поддръжка на JSON тяло, автентикация и валидация на статус кода. Не е необходима допълнителна колекция — той е част от ansible.builtin. curl2code генерира Ansible task YAML, използвайки модула 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 автентикация: използвайте параметрите 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 token оторизация в 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 свързва всеки от тях с правилния uri модул API.
Полезни връзки
Ръководства за curl
Кодове за грешки на curl
Справка за всеки изходен код на curl — причини, решения и съвети за отстраняване на грешки.
Изтегляне на файлове с curl
Запазвайте файлове с -o, -O, следвайте пренасочвания, възобновявайте изтегляния и още.
SSL, TLS и прокси
Конфигурирайте сертификати, версии на TLS, HTTP/SOCKS проксита и персонализиран DNS.