Chuyển đổi curl sang Ansible

curl2code chuyển đổi các lệnh curl thành các tác vụ playbook Ansible bằng mô-đun uri. Quá trình chuyển đổi chạy trong trình duyệt của bạn thông qua WebAssembly để đảm bảo quyền riêng tư hoàn toàn. Đối với Python, hãy kiểm tra trình chuyển đổi curl sang Python của chúng tôi. Đối với PowerShell, hãy xem curl sang PowerShell. Dưới đây là các ví dụ Ansible thực tế.

Cách sao chép curl từ trình duyệt của bạn

  1. 1

    Mở DevTools

    Nhấn F12 hoặc Ctrl+Shift+I để mở công cụ dành cho nhà phát triển của trình duyệt.

  2. 2

    Đi tới tab Network

    Nhấp vào tab Network và thực hiện hành động kích hoạt yêu cầu HTTP.

  3. 3

    Sao chép dưới dạng cURL

    Nhấp chuột phải vào yêu cầu → Sao chépCopy as cURL. Sau đó dán nó vào bên trên.

Câu hỏi thường gặp

Module Ansible uri là gì?

Module uri là module tích hợp sẵn của Ansible để thực hiện các yêu cầu HTTP trong playbook. Nó xử lý GET, POST, PUT, DELETE với hỗ trợ body JSON, xác thực và xác thực mã trạng thái. Không cần bộ sưu tập bổ sung — nó là một phần của ansible.builtin. curl2code tạo các tác vụ Ansible YAML bằng module uri.

module uri vs get_url vs command với curl — nên sử dụng cái nào?

Module uri dành cho các lệnh gọi API — nó trả về JSON đã được phân tích và xác thực trạng thái. get_url dùng để tải tệp xuống đĩa. command: curl là một anti-pattern — làm mất tính lũy đẳng (idempotency) và khả năng xử lý lỗi. Luôn ưu tiên uri cho các tương tác HTTP API. Đối với tự động hóa Python, hãy xem curl sang Python.

Làm thế nào để xử lý xác thực trong Ansible?

Đối với Bearer: headers: { Authorization: "Bearer {{ token }}" }. Đối với Basic auth: sử dụng các tham số url_usernameurl_password. Lưu trữ các bí mật trong Ansible Vault: ansible-vault encrypt_string. Module uri cũng hỗ trợ force_basic_auth: yes để xác thực phủ đầu.

Làm thế nào để gửi dữ liệu form với Ansible?

Đối với body JSON: body: {{ data | to_json }} với body_format: json. Đối với form-urlencoded: body_format: form-urlencoded với body: key=value&key2=value2. Tải lên tệp multipart yêu cầu module community.general.uri hoặc một script tùy chỉnh. curl2code xử lý các chuyển đổi -F.

Làm thế nào để xử lý lỗi trong các tác vụ HTTP Ansible?

Sử dụng register: result với failed_when: result.status != 200 cho các điều kiện thất bại tùy chỉnh. Sử dụng ignore_errors: yes để tiếp tục khi thất bại. Module uri mặc định thất bại khi không phải 2xx — ghi đè bằng status_code: [200, 201, 404] để chấp nhận nhiều mã trạng thái.

Làm thế nào để phân tích phản hồi JSON trong Ansible?

Module uri tự động phân tích JSON khi return_content: yes được thiết lập — truy cập qua result.json. Sử dụng các bộ lọc Jinja2: result.json.users | selectattr('active') | list. Đối với các biến đổi phức tạp, sử dụng set_fact với các bộ lọc. Đăng ký kết quả để sử dụng trong các tác vụ tiếp theo.

Làm thế nào để thiết lập timeout và thử lại trong Ansible?

Thiết lập timeout: 30 trên tác vụ uri cho timeout yêu cầu tính bằng giây. Để thử lại: sử dụng retries: 3 với delay: 5until: result.status == 200. Đây là mô hình vòng lặp thử lại tích hợp sẵn của Ansible — không cần script tùy chỉnh. Hoạt động với bất kỳ module nào, không chỉ uri.

Làm thế nào để sử dụng proxy với Ansible uri?

Thiết lập môi trường trên tác vụ: environment: { http_proxy: "http://proxy:8080", https_proxy: "http://proxy:8080" }. Hoặc thiết lập toàn cục trong ansible.cfg hoặc group_vars. Module uri tuân thủ các biến môi trường proxy tiêu chuẩn. Đối với các ngoại lệ không dùng proxy: no_proxy: "localhost,.internal".

Làm thế nào để gửi một yêu cầu POST với thân JSON trong Ansible?

Chuyển đổi một lệnh curl POST như curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL sang Ansible bằng cách sử dụng curl2code. Mã được tạo sử dụng ansible.builtin.uri: url: '{'{ url }'}' method: POST body_format: json body: '{'{ data }'}'. curl2code tự động phát hiện các cờ -d/--data với nội dung JSON và thiết lập header Content-Type phù hợp trong mã module uri.

Làm thế nào để thêm xác thực Bearer token trong Ansible?

Cung cấp curl -H "Authorization: Bearer YOUR_TOKEN" URL cho curl2code và nó sẽ tạo mã module uri với header xác thực: headers: Authorization: 'Bearer YOUR_TOKEN'. curl2code phát hiện Bearer tokens từ cả hai cờ -H "Authorization: Bearer ..."--oauth2-bearer. Đối với Basic auth, hãy sử dụng -u user:pass.

Làm thế nào để thiết lập header Content-Type trong Ansible?

curl2code chuyển đổi curl -H "Content-Type: application/json" URL sang mã module uri với header chính xác: body_format: json. Đối với dữ liệu -d, curl mặc định là application/x-www-form-urlencoded; đối với tải lên biểu mẫu -F, nó sử dụng multipart/form-data. curl2code ánh xạ từng loại tới module uri API chính xác.

Liên kết hữu ích

Hướng dẫn curl

Chuyển đổi curl sang các ngôn ngữ khác