【モジュールの使い方】get_url
機能
補足説明
- デフォルトで`
_proxy~は、ターゲットホストに環境変数が設定されている場合、リクエストはそのプロキシを介して送信されます。 - この動作は、このタスクの変数を設定するか(環境の設定を参照)またはuse_proxyオプションを使用することでオーバーライドできます。
- HTTPリダイレクトはHTTPからHTTPSにリダイレクトできるため、両方のプロトコルのプロキシ環境が正しいことを確認する必要があります。
- Ansible 2.4から、を使用--checkして実行すると、URLを検証するためにHEADリクエストを実行しますが、ファイル全体をダウンロードしたり、ハッシュに対して検証したりすることはありません。
- Windowsターゲットの場合は
代わりにansible.windows.win_get_urlモジュールを使用してください。
注意
使用例
- nginxのサイトからパッケージを/usr/localにダウンロード
- hosts: all become: yes tasks: - name: download bind get_url: url: http://nginx.org/download/nginx-1.20.2.tar.gz dest: /usr/local
- proxy経由のnginxのサイトからパッケージを/usr/localにダウンロード
- hosts: all become: yes tasks: - name: get_url under proxy enviroment hosts: $inventoryファイルに定義しているparam enviroment: http_proxy: <proxy_server_url>:<proxy_server_port> https_proxy: <proxy_server_url>:<proxy_server_port> tasks: - name: Download the specified file under proxy environment get_url: url: http://nginx.org/download/nginx-1.20.2.tar.gz dest: /usr/local mode: '0755' use_proxy: yes validate_certs: no register: download_result until: download_result | succeeded retries: 3
主なパラメータ
パラメータ | 必須 | デフォルト値 | 説明 |
---|---|---|---|
url | ● | ダウンロード元のHTTP,HTTPS,またはFTPのURL | |
dest | ● | ダウンロード先ディレクトリの絶対パス | |
owner | ダウンロードしたファイルの所有者 | ||
group | ダウンロードしたファイルの所有グループ | ||
mode | ダウンロードしたファイルの権限 例:"0664"、"u=rw,g=r,o=r" |
全パラメータ
パラメータ | 必須 | デフォルト値 | 説明 |
---|---|---|---|
attributes | ファイルの属性を指定 | ||
backup | no | タイムスタンプを含むバックアップファイルを作成 何らかの理由で誤って元ファイルを壊した場合に元のファイルを復元できる。 |
|
checksum | "" | checksumがこのパラメータに渡されると、ダウンロード後に宛先ファイルのダイジェストが計算され、その整合性が保証され、転送が正常に完了したことが確認されます。 形式: 例: checksum=”sha256:D98291AC[…]B6DC7B97” checksum=”sha256:http://example.com/path/sha256sum.txt” 移植が必要な場合は、sha1アルゴリズムのみが、すべてのプラットフォームとPythonバージョンで使用可能 追加のアルゴリズムにアクセスするために、サードパーティのhashlibライブラリをインストール出来ます。 さらに、チェックサムがこのパラメータに渡され、ファイルがその dest 場所の下に存在する場合destination_checksumが計算され、checksumがdestination_checksumと等しい場合、ファイルのダウンロードはスキップされます(forcetrueでない場合) チェックサムがdestination_checksumと等しくない場合、宛先ファイルは削除されます。 |
|
client_cert | SSLクライアント認証に使用されるPEM形式の証明書チェーンファイル このファイルにはキーも含めることが出来、キーが含まれている場合 client_key は必要ありません。 |
||
client_key | SSLクライアント認証に使用される秘密鍵を含むPEM形式のファイルclient_cert 証明書とキーの両方が含まれている場合、このオプションは必須ではありません。 |
||
dest | ● | ダウンロード先ディレクトリの絶対パス | |
force | no | forceをyes にした場合dest で指定したファイルは、毎回ダウンロードし、内容の変更された場合はファイルを置き換えます。その際は、容量の少ないローカルファイル専用にする必要がある。forceを no にした場合、dest で指定したファイルが存在しない場合のみダウンロードされます。 0.6より前では、このモジュールはデフォルトは yes を設定していた場合と同じ動作をしていました。エイリアス thirsty は非推奨になり、ver2.13で削除される予定です。 |
|
force_basic_auth | no | 最初の要求時に基本認証ヘッダーの送信を強制します。 httplib2,urlモジュールによって使用されるライブラリーは、Webサービスが401スタータスの初期要求に応答した場合のみ認証情報を送信 一部の基本認証サービスは401を適切に送信してないため、ログインは失敗します。 |
|
group | ダウンロードしたファイルの所有グループ | ||
headers | カスタムHTTPヘッダーをhash/dict形式でリクエストに追加します hash/dict形式はAnsible2.6で追加されました。 以前のバージョンは key:value,key:value 文字形式を使用していました。key:value,key:value 文字列形式は非推奨になり、バージョン2.10で削除されました。 |
||
http_agent | ansible-httpget | ヘッダーとして認識される項目 ファイルシステムオブジェクトを所有する必要があるグループ名 |
|
mode | ダウンロードしたファイルの権限 例:"0664"、"u=rw,g=r,o=r" |
||
owner | ダウンロードしたファイルの所有者 | ||
selevel | SELinuxファイルシステムオブジェクトコンテキストのlevel 部分これはMLS/MCS属性であり、 range としても扱われる_default に設定すると、使用可能な場合はポリシーのlevel 部分が使用されます。 |
||
serole | SELinuxファイルシステムオブジェクトコンテキストのrole 部分_default に設定すると、使用可能な場合はポリシーのrole 部分が使用されます。 |
||
setype | SELinuxファイルシステムオブジェクトコンテキストのtype 部分_default に設定すると、使用可能な場合はポリシーのtype 部分が使用されます。 | |
||
seuser | SELinuxファイルシステムオブジェクトコンテキストのuser 部分これはMLS/MCS属性であり、 system としても扱われる_default に設定すると、使用可能な場合はポリシーのuser 部分が使用されます。 |
||
sha256sum | "" | SHA-265チェックサムがこのパラメータに渡されると、ダウンロード後に指定先のファイルを圧縮して、計算されその整合性を保証後、転送後に正常に完了したことを確認します このオプションは非推奨であり、バージョン2.14で削除される予定です checksum を代わりにオプションとして使用してください。 |
|
timeout | 10 | 指定したURLへのリクエストタイムアウト時間(秒単位) | |
tmp_dest | 一時ファイルがダウンロードされる場所の絶対パス Ansible2.5以降で実行すると、パスはデフォルトでansibleの rmote_tmp 設定になります2.5より前のAnsibleを実行すると、デフォルトで TMPDIR ,TEMP ,TMP ,env変数 、またはプラットフォーム固有の値になります。tempfile — Generate temporary files and directories — Python 3.10.5 documentation |
||
unredirected_headers | [] | 後続のリダイレクトされたリクエストで送信されないヘッダー名のリスト このリストでは大文字と小文字は区別されません デフォルトでは、すべてのヘッダーがリダイレクトされます 場合によっては、 Authorization の公開を回避するために、ここに承認などのヘッダーをリストアップすると良いです。 |
|
unsafe_writes | no | ターゲットファイルシステムオブジェクトからのデータ破損や一貫性のない読み取りを防ぐために、アトミック操作をいつ使用するかに影響を与えます デフォルトでは、このモジュールはアトミック操作を使用して、ターゲットファイルシステムオブジェクトからデータの破損や一貫性のない取り込みを防ぎますが、システムがこれを防ぐ方法で構成されているのか、単に壊れている場合もあります。 1つの例は、Dockerにマウントされたファイルシステムオブジェクトです これは、コンテナ内からアトミックに更新することは出来ず、安全でない方法でのみ書き込むことが出来ます。 このオプションを使用すると、アトミック操作が失敗したときにAnsibleがファイルシステムオブジェクトを更新する安全でないメソッドにフォールバックできます(ただし、Ansibleに安全でない書き込みの実行を強制することはありません) 重要!安全でない書き込みは競合状態の影響を受け、データの破損につながる可能性があります。 |
|
url | ● | ダウンロード元のHTTP,HTTPS,またはFTPのURL | |
url_passeord | HTTP基本認証で使用するためのパスワードurl_username パラメータが指定されてない場合、url_password パラメータは使用されません。version2.8以降、このオプションに password のaliasも使用できます。 |
||
url_username | HTTP基本認証で使用するためのユーザー名 このパラメーターは url_password は空のパスワードを許可するサイトでは利用できないversion2.8以降、このオプションに username のaliasも使用できます。 |
||
use_gssapi | no | GSSAPIを使用して認証を実行します 通常、これはkerberosまたはNegotiate認証を介したKerberos用です。 Pythonライブラリー gssapi がインストールされている必要があります。GSSAPIのクレデンシャルは、 url_username/url_password を使用するか、カスタムKerberosクレデンシャルキャッシュを指定したGSSAPI env ver KRB5CONAME を使用して指定できます。NTLM用の GSSAPI mech がインストールされている場合でも、NTLM認証はさぽーとされていません。 |
|
use_proxy | yes | no場合、ターゲットホストの環境変数でProxyが定義されている場合でも、proxyは使用されません。 | |
validate_certs | yes | noの場合、SSL証明書は検証されません。 これは、自己証明書を使用する個人的に管理されているサイトでのみ使用する必要があります。 |
アトミック操作 他からの割り込みがない状態にすること
戻り値
Key | Type | Returned | 説明 | 例 |
---|---|---|---|---|
backup_file | String | 引数のbackupがyesで変更された場合 | ダウンロード後に作成されたバックアップファイルの名前 | /path/to/file.txt.2015-02-12@22:09~ |
checksum_dest | String | 成功した場合 | コピー後のファイルのsha1チェックサム | 6e642bb8dd5c2e027bf21dd923337cbb4214f827 |
checksum_src | String | 成功した場合 | ファイルのsha1チェックサム | 6e642bb8dd5c2e027bf21dd923337cbb4214f827 |
dest | String | 成功した場合 | ファイル/パス | /path/to/file.txt |
elapsed | Unteger | 常時 | ダウンロードの実行中に経過した秒数 | 23 |
gid | Integer | 成功した場合 | ファイルのグループID | 100 |
group | String | 成功した場合 | ファイルのグループ | httpd |
md5sum | String | サポートされている場合 | ダウンロード後のファイルのmd5チェックサム | 2a5aeecc61dc98c4d780b14b330e3282 |
mode | String | 成功した場合 | ターゲットの権限 | 0644 |
msg | String | 常時 | リクエストからのHTTPメッセージ | OK (unknown bytes) |
owner | String | 成功した場合 | ファイルの所有者 | httpd |
secontext | String | 成功した場合 | ファイルのSELinuxセキュリティコンテキスト | unconfined_u:object_r:user_tmp_t:s0 |
size | Integer | 成功した場合 | ターゲットのサイズ | 1220 |
src | String | 常時 | ダウンロード後に使用されるソースファイル | /tmp/tmpAdFLdV |
state | String | 常時 | ターゲットの状態 | file |
status_mode | Integer | 常時 | リクエストからのHTTPステータスコード | 200 |
uid | Integer | 成功した場合 | 実行後のファイルの所有者ID | 100 |
url | String | 常時 | リクエストに使用された実際のURL | https://www.ansible.com |
ドキュメント
【Ansible Documentation】Module get_url