Ansible模块——通过 URL 下载文件

通过 URL 下载文件

ansible.builtin.get_url 可以通过 URL 下载文件。

选项名 类型 默认值 描述
attributes str null 设置文件系统对象的属性,格式参考 lsattr;支持 +, -, = 操作符。别名:attr
backup bool false 创建目标文件的备份副本(带时间戳)。
checksum str '' 提供格式为 <算法>:<值> 的校验和,如 sha256:abcd1234...,用于校验完整性并决定是否跳过下载。
ciphers list null 指定 SSL/TLS 加密套件,多个套件以 : 连接。
client_cert path null PEM 格式的客户端证书,可包含私钥。
client_key path null 客户端私钥 PEM 文件;若 client_cert 已包含,则可省略。
decompress bool true 自动解压 gzip 编码响应内容。
dest path --- 下载文件保存的目标路径(必须)。若为目录,会使用服务器提供的文件名。
force bool false 是否强制下载(即使目标文件存在)。只在 dest 是文件时有效。
force_basic_auth bool false 是否强制初次请求就发送 Basic Auth 头信息(用于兼容不返回 401 的服务)。
group str null 目标文件所属的组名。默认继承当前用户组。
headers dict null 自定义 HTTP 请求头,格式为字典。
http_agent str ansible-httpget 请求时发送的 User-Agent 标识。
mode raw null 文件权限,如 0644u=rw,g=r,o=r。建议使用字符串格式以避免意外。
owner str null 目标文件所属用户名。默认为当前用户。
selevel str null SELinux 上下文的 level 部分。
serole str null SELinux 上下文的 role 部分。
setype str null SELinux 上下文的 type 部分。
seuser str null SELinux 上下文的 user 部分。
timeout int 10 URL 请求超时时间(秒)。
tmp_dest path null 下载临时文件的目录,默认 ~/.ansible/tmp/,可以通过 remote_tmp 在配置文件设置默认位置。
unredirected_headers list [] 不跟随重定向的 HTTP 头名称列表,适用于防止认证信息泄露。
unsafe_writes bool false 是否允许非原子写操作(如 Docker 下)。有数据一致性风险。
url str --- 下载的 URL,支持 httphttpsftp
url_password str null HTTP 基本认证密码。别名:password
url_username str null HTTP 基本认证用户名。别名:username
use_gssapi bool false 是否使用 GSSAPI(Kerberos)进行认证。需要安装 gssapi Python 库。
use_netrc bool true 是否使用 ~/.netrc 中的凭据。
use_proxy bool true 是否使用环境变量中的代理配置。
validate_certs bool true 是否校验 HTTPS 证书,设为 false 可跳过验证(如自签名证书)。

常用选项:

选项名 类型 默认值 描述
backup bool false 创建目标文件的备份副本(带时间戳)。
checksum str '' 提供格式为 <算法>:<值> 的校验和,如 sha256:abcd1234...,用于校验完整性并决定是否跳过下载。
dest path --- 下载文件保存的目标路径(必须)。若为目录,会使用服务器提供的文件名。
force bool false 是否强制下载(即使目标文件存在)。只在 dest 是文件时有效。
force_basic_auth bool false 是否强制初次请求就发送 Basic Auth 头信息(用于兼容不返回 401 的服务)。
group str null 目标文件所属的组名。默认继承当前用户组。
headers dict null 自定义 HTTP 请求头,格式为字典。
http_agent str ansible-httpget 请求时发送的 User-Agent 标识。
mode raw null 文件权限,如 0644u=rw,g=r,o=r。建议使用字符串格式以避免意外。
owner str null 目标文件所属用户名。默认为当前用户。
timeout int 10 URL 请求超时时间(秒)。
unredirected_headers list [] 不跟随重定向的 HTTP 头名称列表,适用于防止认证信息泄露。
url str --- 下载的 URL,支持 httphttpsftp
url_password str null HTTP 基本认证密码。别名:password
url_username str null HTTP 基本认证用户名。别名:username
use_proxy bool true 是否使用环境变量中的代理配置。
validate_certs bool true 是否校验 HTTPS 证书,设为 false 可跳过验证(如自签名证书)。
复制代码
- name: Download foo.conf
  ansible.builtin.get_url:
    url: http://example.com/path/file.conf
    dest: /etc/foo.conf
    mode: '0440'

- name: Download file and force basic auth
  ansible.builtin.get_url:
    url: http://example.com/path/file.conf
    dest: /etc/foo.conf
    force_basic_auth: yes

- name: Download file with custom HTTP headers
  ansible.builtin.get_url:
    url: http://example.com/path/file.conf
    dest: /etc/foo.conf
    headers:
      key1: one
      key2: two

- name: Download file with check (sha256)
  ansible.builtin.get_url:
    url: http://example.com/path/file.conf
    dest: /etc/foo.conf
    checksum: sha256:b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c

- name: Download file with check (md5)
  ansible.builtin.get_url:
    url: http://example.com/path/file.conf
    dest: /etc/foo.conf
    checksum: md5:66dffb5228a211e61d6d7ef4a86f5758

- name: Download file with checksum url (sha256)
  ansible.builtin.get_url:
    url: http://example.com/path/file.conf
    dest: /etc/foo.conf
    checksum: sha256:http://example.com/path/sha256sum.txt

- name: Download file from a file path
  ansible.builtin.get_url:
    url: file:///tmp/afile.txt
    dest: /tmp/afilecopy.txt

- name: < Fetch file that requires authentication.
        username/password only available since 2.8, in older versions you need to use url_username/url_password
  ansible.builtin.get_url:
    url: http://example.com/path/file.conf
    dest: /etc/foo.conf
    username: bar
    password: '{{ mysecret }}'
相关推荐
筑梦之路7 小时前
centos 9 Kickstart + Ansible自动化部署 —— 筑梦之路
centos·自动化·ansible
遇见火星7 小时前
Ansible模块——管理100台Linux的最佳实践
linux·运维·ansible
Ashmcracker7 小时前
在Ubuntu使用 Ansible 配置 Azure 资源的动态清单
ubuntu·microsoft·云计算·ansible·azure·devops
遇见火星1 天前
Ansible模块——文件内容修改
数据库·mysql·ansible
Johny_Zhao2 天前
AI+自动化测试系统方案:网络设备与网络应用智能测试
linux·网络·人工智能·python·网络安全·docker·ai·信息安全·云计算·ansible·shell·cisco·huawei·系统运维·itsm·华三·deepseek
IT成长日记2 天前
【Ansible基础】Ansible设计理念与无代理架构深度解析
架构·自动化·ansible·无代理
IT成长日记3 天前
【Ansible基础】Ansible执行流程详解:从Playbook到实际任务
ansible·playbook·执行流程
麦a~M了M4 天前
ansible
linux·运维·ansible
IT成长日记5 天前
【Ansible基础】Ansible 核心组件深度解析:控制节点、受管节点、Inventory与Playbook
ansible·playbook·控制节点·受管节点·inventory