商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > Ansible get_url 模块

Ansible get_url 模块

  发布于2026-08-13 阅读(0)

扫一扫,手机访问

{"position":0,"title":"介绍","layout":"doc-fullscreen","text":"## 介绍nn本实验将带你了解 Ansible 的 `get_url` 模块。这个模块的作用很直接:把互联网上的文件下载下来,并保存到远程主机上。当然,它不只是“能下文件”这么简单,还提供了不少可选项,用来灵活控制下载过程,比如身份验证、请求头设置以及校验和验证。n","need_verify":false,"has_solution":false},{"position":1,"title":"从 URL 下载文件","layout":"doc-workbench-split","text":"## 从 URL 下载文件nn这一步会实际使用 Ansible 的 `get_url` 模块,从指定的 URL 下载文件,并把它保存到远程主机上。nn先新建一个 Ansible playbook 文件,命名为 `/home/labex/project/get_url-module-playbook.yaml`,然后用文本编辑器打开。n接着,将下面的内容写入 playbook 文件:nn```yamln- hosts: localhostn tasks:n - name: Download a file from a URLn get_url:n url: \"https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz\"n dest: \"/tmp/ansible-2.9.25.tar.gz\"n```nn- `hosts`:用于指定 playbook 要运行到哪台目标主机上。这里设置为 `localhost`,也就是说,这个 playbook 会在本地主机上执行。n- `tasks`:表示需要执行的任务列表。n- `"}ame`:这是任务的描述性名称,用于标识任务的用途。n- `get_url`:这是 Ansible 中的一个模块,用于从互联网下载文件。n- `url`:此参数指定要下载文件的 URL。在本例中,它从官方 Ansible 发布页面下载 `Ansible` 2.9.25 版本。n- `dest`:此参数指定目标主机上保存下载文件的目标路径。在本例中,文件将保存到 `/tmp/ansible-2.9.25.tar.gz`。nn总结来说,这个 playbook 从指定的 URL 下载 Ansible 2.9.25 的压缩包,并将其保存到本地主机的 `/tmp/ansible-2.9.25.tar.gz`。nn然后,使用以下命令运行 playbook:nn```bashnansible-playbook get_url-module-playbook.yamln```nn观察输出,确认文件是否成功下载并保存到远程主机。 n示例输出:nn```bashn[WARNING]: No inventory was parsed, only implicit localhost is a vailablen[WARNING]: provided hosts list is empty, only localhost is a vailable. Note thatnthe implicit localhost does not match 'all'nnPLAY [localhost] ***************************************************************nnTASK [Gathering Facts] *********************************************************nok: [localhost]nnTASK [Download a file from a URL] **********************************************nchanged: [localhost]nnPLAY RECAP *********************************************************************nlocalhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0n```nn验证文件是否已成功下载并保存到远程主机。nn```bashnll /tmp/ansible-2.9.25.tar.gzn```nn示例输出:nn```bashn-rw-rw-r-- 1 labex labex 14M Mar 15 13:03 /tmp/ansible-2.9.25.tar.gzn```n","need_verify":true,"has_solution":false},{"position":2,"title":"自定义 HTTP 请求头","layout":"doc-workbench-split","text":"## 自定义 HTTP 请求头nn在这一步中,你将使用 Ansible 的 `get_url` 模块自定义文件下载过程中发送的 HTTP 请求头。nn首先,修改现有的 playbook 文件,删除所有内容并添加以下内容到 playbook 文件中:nn```yamln- hosts: localhostn tasks:n - name: Download a file from a URL with custom headersn get_url:n url: "https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz"n dest: "/tmp/ansible-2.9.25-1.tar.gz"n headers:n Custom-Header-1: Value1n Custom-Header-2: Value2n```nn- `get_url`:这是 Ansible 中的一个模块,用于从互联网下载文件。n- `url`:此参数指定要下载文件的 URL。在本例中,它从官方 Ansible 发布页面下载 `Ansible` 2.9.25 版本。n- `dest`:此参数指定目标主机上保存下载文件的目标路径。在本例中,文件将保存到 `/tmp/ansible-2.9.25-1.tar.gz`。n- `headers`:这是一个可选参数,允许你指定在下载文件时发送到服务器的 HTTP 请求中包含的自定义请求头。在本例中,它设置为包含两个自定义请求头:`Custom-Header-1` 的值为 `Value1`,`Custom-Header-2` 的值为 `Value2`。这些请求头可能用于身份验证、授权或文件托管服务器所需的其他用途。nn总结来说,这个 playbook 将从指定的 URL 下载 Ansible 2.9.25 的压缩包,并在 HTTP 请求中包含自定义请求头,然后将其保存到本地主机的 `/tmp` 目录下,文件名为 `ansible-2.9.25-1.tar.gz`。nn然后,使用以下命令运行 playbook:nn```bashnansible-playbook get_url-module-playbook.yamln```nn观察输出,确认文件是否成功下载并保存到远程主机,并检查自定义请求头是否包含在 HTTP 请求中。 n示例输出:nn```bashn[WARNING]: No inventory was parsed, only implicit localhost is a vailablen[WARNING]: provided hosts list is empty, only localhost is a vailable. Note thatnthe implicit localhost does not match 'all'nnPLAY [localhost] **************************************************************nnTASK [Gathering Facts] *********************************************************nok: [localhost]nnTASK [Download a file from a URL with custom headers] **************************nchanged: [localhost]nnPLAY RECAP *********************************************************************nlocalhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0n```nn验证文件是否已成功下载并保存到远程主机。nn```bashnll /tmp/ansible-2.9.25-1.tar.gzn```nn示例输出:nn```bashn-rw-rw-r-- 1 labex labex 14M Mar 15 13:17 /tmp/ansible-2.9.25-1.tar.gzn```n","need_verify":true,"has_solution":false},{"position":3,"title":"使用校验和验证文件完整性","layout":"doc-workbench-split","text":"## 使用校验和验证文件完整性nn在这一步中,你将使用 Ansible 的 `get_url` 模块通过校验和验证下载文件的完整性。nn首先,修改现有的 playbook 文件,删除所有内容并添加以下内容到 playbook 文件中:nn```yamln- hosts: localhostn tasks:n - name: Download a file and verify checksumn get_url:n url: "https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz"n dest: "/tmp/ansible-2.9.25-2.tar.gz"n checksum: "sha256:https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz.sha"n```nn- `get_url`:这是 Ansible 中的一个模块,用于从互联网下载文件。n- `url`:此参数指定要下载文件的 URL。在本例中,它从官方 Ansible 发布页面下载 `Ansible` 2.9.25 版本。n- `dest`:此参数指定目标主机上保存下载文件的目标路径。在本例中,文件将保存到 `/tmp/ansible-2.9.25-2.tar.gz`。n- `checksum`:此参数用于指定下载文件的校验和及其类型。在本例中,它设置为 `sha256:https://releases.ansible.com/ansible/ansible-2.9.25.tar.gz.sha`,表示 Ansible 应使用指定 URL 提供的校验和验证下载文件的 `SHA256` 校验和。这确保了下载文件的完整性。nn总结来说,这个 playbook 将从指定的 URL 下载 Ansible 2.9.25 的压缩包,将其保存到本地主机的 `/tmp` 目录下,文件名为 `ansible-2.9.25-2.tar.gz`,并通过与指定 URL 提供的校验和进行比较来验证其完整性。nn然后,使用以下命令运行 playbook:nn```bashnansible-playbook get_url-module-playbook.yamln```nn观察输出,确认文件是否成功下载并保存到远程主机,并检查校验和验证是否通过。 n示例输出:nn```bashn[WARNING]: No inventory was parsed, only implicit localhost is a vailablen[WARNING]: provided hosts list is empty, only localhost is a vailable. Note thatnthe implicit localhost does not match 'all'nnPLAY [localhost] ***************************************************************nnTASK [Gathering Facts] *********************************************************nok: [localhost]nnTASK [Download a file and verify checksum] *************************************nchanged: [localhost]nnPLAY RECAP *********************************************************************nlocalhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0n```nn确认文件是否已经成功下载,并且保存到了远程主机。nn```bashnll /tmp/ansible-2.9.25-2.tar.gzn```nn示例输出:nn```bashn-rw-rw-r-- 1 labex labex 14M Mar 15 13:31 /tmp/ansible-2.9.25-2.tar.gzn```n","need_verify":true,"has_solution":false},{"position":4,"title":"总结","layout":"doc-fullscreen","text":"## 总结nn恭喜!你已经顺利完成 Ansible `get_url` 模块的实验。现在,你不仅知道如何从 URL 下载文件、将其保存到远程主机,还掌握了自定义 HTTP 请求头以及使用校验和来验证文件完整性。nn`get_url` 模块用起来很灵活,既能帮你自动化文件下载,也能把下载过程里的细节处理得更稳妥。把这些方法掌握好,Ansible playbook 的文件分发能力就会更强,基础设施管理也会更高效。nn继续看看 Ansible 文档,多试试不同模块,自动化能力自然会越用越顺。祝你玩转 Ansible!n","need_verify":false,"has_solution":false}
本文转载于:https://labex.io/zh/tutorials/ansible-ansible-get-url-module-290188 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注