curl-কে Ansible-এ রূপান্তর করুন
curl2code uri মডিউল ব্যবহার করে curl কমান্ডগুলোকে Ansible প্লেবুক টাস্কে রূপান্তর করে। সম্পূর্ণ গোপনীয়তার জন্য রূপান্তরটি WebAssembly-এর মাধ্যমে আপনার ব্রাউজারে চলে। Python-এর জন্য আমাদের curl to Python converter দেখুন। PowerShell-এর জন্য curl to PowerShell দেখুন। নিচে ব্যবহারিক Ansible উদাহরণ দেওয়া হলো।
আপনার ব্রাউজার থেকে কীভাবে curl কপি করবেন
- 1
DevTools ওপেন করুন
আপনার ব্রাউজার ডেভেলপার টুলস ওপেন করতে F12 অথবা Ctrl+Shift+I চাপুন।
- 2
Network ট্যাবে যান
Network ট্যাবে ক্লিক করুন এবং সেই কাজটি করুন যা HTTP রিকোয়েস্টটি ট্রিগার করে।
- 3
cURL হিসেবে কপি করুন
রিকোয়েস্টের ওপর রাইট-ক্লিক করুন → Copy → Copy as cURL। তারপর এটি উপরে পেস্ট করুন।
সচরাচর জিজ্ঞাসিত প্রশ্নাবলী
Ansible uri মডিউল কী?
uri মডিউল হলো প্লেবুকের মধ্যে HTTP রিকোয়েস্ট করার জন্য Ansible-এর বিল্ট-ইন মডিউল। এটি JSON বডি সাপোর্ট, অথেন্টিকেশন এবং স্ট্যাটাস কোড ভ্যালিডেশনসহ GET, POST, PUT, DELETE হ্যান্ডেল করে। কোনো অতিরিক্ত কালেকশনের প্রয়োজন নেই — এটি ansible.builtin-এর অংশ। curl2code uri মডিউল ব্যবহার করে Ansible টাস্ক YAML জেনারেট করে।
uri মডিউল বনাম get_url বনাম curl কমান্ড — কোনটি ব্যবহার করবেন?
uri মডিউল API কলের জন্য — এটি পার্স করা JSON রিটার্ন করে এবং স্ট্যাটাস ভ্যালিড করে। get_url ডিস্কে ফাইল ডাউনলোডের জন্য ব্যবহৃত হয়। command: curl একটি অ্যান্টি-প্যাটার্ন — এটি আইডেমপোটেন্সি এবং এরর হ্যান্ডলিং নষ্ট করে। HTTP API ইন্টারঅ্যাকশনের জন্য সবসময় uri-কে প্রাধান্য দিন। পাইথন অটোমেশনের জন্য curl to 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। মাল্টিপার্ট ফাইল আপলোডের জন্য 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 রেসপন্স পার্স করবেন?
যখন return_content: yes সেট করা থাকে, তখন uri মডিউল স্বয়ংক্রিয়ভাবে JSON পার্স করে — যা result.json-এর মাধ্যমে অ্যাক্সেস করা যায়। Jinja2 ফিল্টার ব্যবহার করুন: result.json.users | selectattr('active') | list। জটিল ট্রান্সফরমেশনের জন্য ফিল্টারসহ set_fact ব্যবহার করুন। পরবর্তী টাস্কগুলোতে ব্যবহারের জন্য রেজাল্ট রেজিস্টার করুন।
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 এক্সেপশনের জন্য: 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 module কোডে উপযুক্ত Content-Type হেডার সেট করে।
Ansible-এ Bearer token অথরাইজেশন কীভাবে যোগ করবেন?
curl2code-এ curl -H "Authorization: Bearer YOUR_TOKEN" URL পাস করুন এবং এটি অথরাইজেশন হেডার সহ uri module কোড জেনারেট করে: headers: Authorization: 'Bearer YOUR_TOKEN'। curl2code -H "Authorization: Bearer ..." এবং --oauth2-bearer উভয় ফ্ল্যাগ থেকে Bearer token শনাক্ত করে। Basic auth এর জন্য -u user:pass ব্যবহার করুন।
Ansible-এ Content-Type হেডার কীভাবে সেট করবেন?
curl2code curl -H "Content-Type: application/json" URL কমান্ডকে সঠিক হেডার সহ uri module কোডে রূপান্তর করে: body_format: json। -d ডেটার জন্য curl ডিফল্টভাবে application/x-www-form-urlencoded ব্যবহার করে; -F ফর্ম আপলোডের জন্য এটি multipart/form-data ব্যবহার করে। curl2code প্রতিটি রিকোয়েস্টকে সঠিক uri module API-তে ম্যাপ করে।