curl を Ansible に変換

curl2code は、uri モジュールを使用して curl コマンドを Ansible プレイブックのタスクに変換します。変換は完全なプライバシー保護のため、WebAssembly を介してブラウザ内で実行されます。Python については、curl to Python 変換ツールをご確認ください。PowerShell については、curl to PowerShell をご覧ください。以下に、実用的な Ansible の例を示します。

ブラウザから curl をコピーする方法

  1. 1

    デベロッパーツールを開く

    F12 キーを押すか、Ctrl+Shift+Iを使用してブラウザのデベロッパーツールを開きます。

  2. 2

    ネットワークタブに移動

    ネットワークタブをクリックし、HTTP リクエストをトリガーするアクションを実行します。

  3. 3

    cURL としてコピー

    リクエストを右クリック → コピーcURL としてコピー を選択します。その後、上に貼り付けてください。

よくある質問

Ansible uri モジュールとは何ですか?

uri モジュールは、プレイブック内で HTTP リクエストを行うための Ansible 組み込みモジュールです。JSON ボディのサポート、認証、ステータスコードの検証を備えた GET、POST、PUT、DELETE を処理します。追加のコレクションは不要で、ansible.builtin の一部です。curl2code は、uri モジュールを使用した Ansible タスクの YAML を生成します。

uri モジュール、get_url、curl を使った command のどれを使うべきですか?

uri モジュールは API 呼び出し用です。解析された JSON を返し、ステータスを検証します。get_url はファイルをディスクにダウンロードするためのものです。command: curl はアンチパターンであり、べき等性とエラー処理が失われます。HTTP API とのやり取りには常に uri を優先してください。Python による自動化については、curl to 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。マルチパートのファイルアップロードには community.general.uri モジュールまたはカスタムスクリプトが必要です。curl2code は -F の変換を処理します。

Ansible の HTTP タスクでエラーを処理するにはどうすればよいですか?

カスタムの失敗条件には、register: resultfailed_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 を使用します。結果を登録して、後続のタスクで使用します。

Ansible でタイムアウトとリトライを設定するにはどうすればよいですか?

リクエストのタイムアウト(秒)には、uri タスクに timeout: 30 を設定します。リトライには、retries: 3delay: 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トークン認証を追加する方法は?

curl -H "Authorization: Bearer YOUR_TOKEN" URLをcurl2codeに渡すと、認証ヘッダーheaders: Authorization: 'Bearer YOUR_TOKEN'を含むuriモジュールのコードが生成されます。curl2codeは-H "Authorization: Bearer ..."--oauth2-bearerフラグの両方からBearerトークンを検出します。Basic authの場合は、-u user:passを使用してください。

AnsibleでContent-Typeヘッダーを設定する方法は?

curl2codeはcurl -H "Content-Type: application/json" URLを、適切なヘッダーbody_format: jsonを含むuriモジュールのコードに変換します。-dデータの場合、curlはデフォルトでapplication/x-www-form-urlencodedを使用し、-Fフォームアップロードの場合はmultipart/form-dataを使用します。curl2codeはそれぞれを正しいuriモジュール APIにマッピングします。

便利なリンク

curl ガイド

curl を他の言語に変換