curl-ді Ansible тіліне түрлендіру
curl2code curl командаларын uri модулін пайдаланып, Ansible плейбук тапсырмаларына түрлендіреді. Толық құпиялылық үшін түрлендіру браузеріңізде 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 сұрауларын жасауға арналған ішкі модулі. Ол JSON корпусын қолдау, аутентификация және күй кодын тексеру арқылы GET, POST, PUT, DELETE сұрауларын өңдейді. Қосымша коллекция қажет емес — ол ansible.builtin бөлігі болып табылады. curl2code uri модулін қолданатын Ansible тапсырмасының YAML кодын жасайды.
uri модулі vs get_url vs curl-мен команда — қайсысын қолдану керек?
uri модулі API шақыруларына арналған — ол талданған JSON-ды қайтарады және күйді тексереді. get_url файлдарды дискіге жүктеуге арналған. command: curl — бұл анти-паттерн, өйткені ол идемпотенттілік пен қателерді өңдеу мүмкіндігін жоғалтады. HTTP API әрекеттесулері үшін әрқашан uri модулін таңдаңыз. 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 түрлендірулерін өңдейді.
Ansible HTTP тапсырмаларында қателерді қалай өңдеуге болады?
Реттелетін сәтсіздік шарттары үшін register: result-мен бірге failed_when: result.status != 200 қолданыңыз. Сәтсіздік кезінде жалғастыру үшін ignore_errors: yes қолданыңыз. uri модулі әдепкі бойынша 2xx емес жауаптарда істен шығады — бірнеше күй кодын қабылдау үшін оны status_code: [200, 201, 404] арқылы қайта анықтаңыз.
Ansible-де JSON жауаптарын қалай талдауға болады?
uri модулі return_content: yes орнатылғанда JSON-ды автоматты түрде талдайды — оған result.json арқылы қол жеткізіңіз. Jinja2 сүзгілерін қолданыңыз: result.json.users | selectattr('active') | list. Күрделі түрлендірулер үшін сүзгілері бар set_fact қолданыңыз. Нәтижелерді кейінгі тапсырмаларда қолдану үшін тіркеңіз (register).
Ansible-де тайм-ауттар мен қайталауларды қалай орнатуға болады?
Сұрау тайм-ауты үшін uri тапсырмасында timeout: 30 орнатыңыз (секундпен). Қайталаулар үшін: 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".
Ansible құралында JSON денесі бар POST сұрауын қалай жіберуге болады?
curl2code құралын пайдаланып, curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL сияқты curl POST командасын Ansible кодына түрлендіріңіз. Жасалған код ansible.builtin.uri: url: '{'{ url }'}' method: POST body_format: json body: '{'{ data }'}' функциясын пайдаланады. curl2code құралы JSON мазмұны бар -d/--data жалаушаларын автоматты түрде анықтайды және uri модулінің кодында тиісті Content-Type тақырыбын орнатады.
Ansible құралында Bearer токенімен авторизацияны қалай қосуға болады?
curl2code құралына curl -H "Authorization: Bearer YOUR_TOKEN" URL командасын беріңіз, ол келесі авторизация тақырыбы бар uri модулінің кодын жасайды: headers: Authorization: 'Bearer YOUR_TOKEN'. curl2code құралы Bearer токендерін -H "Authorization: Bearer ..." және --oauth2-bearer жалаушаларынан анықтайды. Basic auth үшін -u user:pass пайдаланыңыз.
Ansible құралында Content-Type тақырыбын қалай орнатуға болады?
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-ті конфигурациялау.