当前位置: 首页 > news >正文

Ansible——get_url模块

 目录

主要用途

参数总结

基本语法示例

使用示例

示例1:下载文件

示例2:使用校验和验证文件

示例3:使用 HTTP 基本认证

示例4:通过代理服务器下载文件

示例5:设置文件权限、所有者和组

示例6:强制重新下载文件

示例7:设置下载超时时间

综合示例

示例8:下载文件并设置各种参数

Playbook示例

基础用法

示例1:下载文件

高级用法

示例2:使用校验和验证文件

示例3:使用 HTTP 基本认证

示例4:通过代理服务器下载文件

示例5:设置文件权限、所有者和组

特殊用法

示例6:强制重新下载文件

示例7:设置下载超时时间

集合示例


get_url 模块是 Ansible 中的一个内置模块,用于从指定的 URL 下载文件到目标主机。它可以处理通过 HTTP、HTTPS、FTP 等协议下载文件,并支持多种功能如基本的身份认证、代理设置、校验和验证等。Ansible 的 get_url 模块本身并不直接支持断点续传功能,但是可使用shellcommand模块结合 wget 或 curl。以下是关于 get_url 模块的详细介绍和使用示例。

 

主要用途

  1. 下载文件:从指定的 URL 下载文件到目标主机。
  2. 支持身份验证:可以处理需要基本 HTTP 认证的网站。
  3. 校验和验证:下载后可以对文件进行校验和验证,以确保文件的完整性。
  4. 使用代理:支持通过代理服务器下载文件。

 

参数总结

  1. url:

    • 描述:要下载文件的 URL。
    • 类型:字符串
    • 必需:是
  2. dest:

    • 描述:下载文件的目标路径(必须为绝对路径)。
    • 类型:字符串
    • 必需:是
  3. backup:

    • 描述:如果为 yes,在目标文件存在且内容发生更改时,将创建备份。
    • 类型:布尔值
    • 默认值:no
  4. checksum:

    • 描述:指定下载文件的 SHA256 校验和,以确保文件的完整性。如果校验和不匹配,将发生错误。
    • 类型:字符串
  5. force:

    • 描述:如果为 yes,则总是下载文件,即使文件已存在。
    • 类型:布尔值
    • 默认值:no
  6. timeout:

    • 描述:设置下载的超时时间(秒)。
    • 类型:整数
    • 默认值:10
  7. headers:

    • 描述:传递给 HTTP 服务器的自定义头信息。
    • 类型:字典
  8. http_agent:

    • 描述:用于 HTTP 请求的用户代理字符串。
    • 类型:字符串
  9. username:

    • 描述:用于基本身份验证的用户名。
    • 类型:字符串
  10. password:

    • 描述:用于基本身份验证的密码。
    • 类型:字符串
  11. url_password:

    • 描述:用于 URL 访问的密码(用于处理 URL 中包含的密码)。
    • 类型:字符串
  12. url_username:

    • 描述:用于 URL 访问的用户名(用于处理 URL 中包含的用户名)。
    • 类型:字符串
  13. use_proxy:

    • 描述:是否使用代理。
    • 类型:布尔值
    • 默认值:yes
  14. validate_certs:

    • 描述:使用 HTTPS 时是否验证 SSL 证书。
    • 类型:布尔值
    • 默认值:yes
  15. client_cert:

    • 描述:用于身份验证的客户端证书文件路径。
    • 类型:字符串
  16. client_key:

    • 描述:用于身份验证的客户端密钥文件路径。
    • 类型:字符串
  17. sha256sum:

    • 描述:下载文件的 SHA256 校验和,以确保文件的完整性(checksum 参数的别名)。
    • 类型:字符串

 

 

基本语法示例

Ansible 命令行直接使用 get_url 模块的基本语法如下:

ansible <host-pattern> -m get_url -a "url=<URL> dest=<目的路径> [其他参数]"

使用示例

示例1:下载文件

从指定 URL 下载文件到远程主机的指定路径:

ansible all -m get_url -a "url=http://example.com/sample.txt dest=/tmp/sample.txt"

示例2:使用校验和验证文件

通过校验和验证下载后的文件:

ansible all -m get_url -a "url=http://example.com/sample.txt dest=/tmp/sample.txt checksum=md5:5d41402abc4b2a76b9719d911017c592"

示例3:使用 HTTP 基本认证

下载一个需要认证的文件:

ansible all -m get_url -a "url=http://example.com/private.txt dest=/tmp/private.txt url_username=myuser url_password=mypassword"

示例4:通过代理服务器下载文件

通过代理服务器下载文件:

ansible all -m get_url -a "url=http://example.com/sample.txt dest=/tmp/sample.txt use_proxy=yes http_proxy=http://proxy.example.com:8080"

示例5:设置文件权限、所有者和组

下载文件并设置权限、所有者和组:

ansible all -m get_url -a "url=http://example.com/sample.txt dest=/tmp/sample.txt mode=0644 owner=myuser group=mygroup"

示例6:强制重新下载文件

即使文件已经存在,也强制重新下载:

ansible all -m get_url -a "url=http://example.com/sample.txt dest=/tmp/sample.txt force=yes"

示例7:设置下载超时时间

设置下载操作的超时时间为 30 秒:

ansible all -m get_url -a "url=http://example.com/sample.txt dest=/tmp/sample.txt timeout=30"

综合示例

示例8:下载文件并设置各种参数
ansible all -m get_url -a "url=http://example.com/sample.txt dest=/tmp/sample.txt mode=0644 owner=myuser group=mygroup force=yes timeout=30 checksum=md5:5d41402abc4b2a76b9719d911017c592"

 

 

Playbook示例

基础用法

示例1:下载文件

从指定 URL 下载文件到远程主机的指定路径:

---
- name: Download a file from URLhosts: alltasks:- name: Download a fileget_url:url: http://example.com/sample.txtdest: /tmp/sample.txt

高级用法

示例2:使用校验和验证文件

通过校验和验证下载后的文件,以确保其完整性:

---
- name: Download a file with checksum verificationhosts: alltasks:- name: Download with checksumget_url:url: http://example.com/sample.txtdest: /tmp/sample.txtchecksum: "md5:5d41402abc4b2a76b9719d911017c592"

示例3:使用 HTTP 基本认证

下载需要认证的文件,可以提供用户名和密码:

---
- name: Download a file with HTTP authenticationhosts: alltasks:- name: Download with basic authget_url:url: http://example.com/private.txtdest: /tmp/private.txturl_username: myuserurl_password: mypassword

示例4:通过代理服务器下载文件

通过代理服务器下载文件:

---
- name: Download a file using a proxyhosts: alltasks:- name: Download with proxyget_url:url: http://example.com/sample.txtdest: /tmp/sample.txtuse_proxy: yeshttp_proxy: http://proxy.example.com:8080

示例5:设置文件权限、所有者和组

下载文件并设置权限、所有者和组:

---
- name: Download a file and set permissionshosts: alltasks:- name: Download and set file attributesget_url:url: http://example.com/sample.txtdest: /tmp/sample.txtmode: '0644'owner: myusergroup: mygroup

特殊用法

示例6:强制重新下载文件

即使文件已经存在,强制重新下载:

---
- name: Force re-download a filehosts: alltasks:- name: Force downloadget_url:url: http://example.com/sample.txtdest: /tmp/sample.txtforce: yes

示例7:设置下载超时时间

设置下载操作的超时时间,以避免长时间挂起:

---
- name: Download a file with a timeouthosts: alltasks:- name: Download with timeoutget_url:url: http://example.com/sample.txtdest: /tmp/sample.txttimeout: 30

集合示例

结合多个参数达到复杂需求:

---
- name: Comprehensive example of get_url usagehosts: alltasks:- name: Download a public fileget_url:url: http://example.com/public.txtdest: /tmp/public.txt- name: Download a file with checksum verificationget_url:url: http://example.com/sample.txtdest: /tmp/sample.txtchecksum: "md5:5d41402abc4b2a76b9719d911017c592"- name: Download a file with HTTP authenticationget_url:url: http://example.com/private.txtdest: /tmp/private.txturl_username: myuserurl_password: mypassword- name: Download a file using a proxyget_url:url: http://example.com/sample-proxy.txtdest: /tmp/sample-proxy.txtuse_proxy: yeshttp_proxy: http://proxy.example.com:8080- name: Download a file and set permissionsget_url:url: http://example.com/sample-permissions.txtdest: /tmp/sample-permissions.txtmode: '0644'owner: myusergroup: mygroup- name: Force re-download a fileget_url:url: http://example.com/sample-force.txtdest: /tmp/sample-force.txtforce: yes- name: Download a file with a timeoutget_url:url: http://example.com/sample-timeout.txtdest: /tmp/sample-timeout.txttimeout: 30

相关文章:

Ansible——get_url模块

目录 主要用途 参数总结 基本语法示例 使用示例 示例1&#xff1a;下载文件 示例2&#xff1a;使用校验和验证文件 示例3&#xff1a;使用 HTTP 基本认证 示例4&#xff1a;通过代理服务器下载文件 示例5&#xff1a;设置文件权限、所有者和组 示例6&#xff1a;强制…...

macbook本地部署 pyhive环境连接 hive用例

前言 公司的测试和生产环境中尚未提供基于Hive的客户端。若希望尝试操作Hive表&#xff0c;目前一个可行的方案是使用Python语言&#xff0c;通过借助pyhive库&#xff0c;您可以对Hive表进行各种操作。以下是一些示例记录供您参考。 一、pyhive是什么&#xff1f; PyHive是一…...

物理安全防护如何创新强化信息安全体系?

物理安全防护是信息安全体系的重要组成部分&#xff0c;它通过保护实体设施、设备和介质等&#xff0c;防止未授权访问、破坏、盗窃等行为&#xff0c;从而为信息系统提供基础的安全保障。要创新强化信息安全体系中的物理安全防护&#xff0c;可以从以下几个方面着手&#xff1…...

【JAVASE】日期与时间类(上)

一&#xff1a;概述 从JAVA SE 8开始提供了java.time包&#xff0c;该包中有专门处理日期和时间的类。 LocalDate LocalDateTime 和LocalTime 类的对象封装和日期、时间有关的数据&#xff0c;这三个类都是final类&#xff0c;而且不提供修改数据的方法&#xff0c;即这…...

如果需要精确的答案,请避免使用float和double

float和double主要为了科学计算和工程计算而设计&#xff0c;执行二进制浮点运算&#xff0c;这是为了在广泛的数值范围上提供较为精确的快速近似计算而精心设计的。然而&#xff0c;它们没有提供完全精确的结果&#xff0c;所以不适合用于需要精确结果的场合&#xff0c;尤其是…...

大模型,也在卷价格

“百模大战”已从算力战、规模战蔓延到了价格战。 5月15日&#xff0c;字节跳动宣布豆包主力模型&#xff08;小于等于32K&#xff09;在企业市场的定价只有0.0008元/千Tokens&#xff0c;0.8厘就能处理1500多个汉字&#xff0c;比行业便宜99.3%&#xff1b;5月21日&#xff0…...

开关电源中电感设计

开关电源设计中电感 只有充分理解电感在DC/DC电路中发挥的作用,才能更优的设计DC/DC电路。本文还包括对同步DC/DC及异步DC/DC概念的解释。 在开关电源的设计中电感的设计为工程师带来的许多的挑战。工程师不仅要选择电感值,还要考虑电感可承受的电流,绕线电阻,机械尺寸等…...

机器视觉——硬件常用基础知识

光源 机器视觉中光源的作用 1&#xff09;强化特征&#xff0c;弱化背景 2&#xff09;光源打得好&#xff0c;图好了&#xff0c;后期算法更简化 3&#xff09;图好了&#xff0c;测试速度更高 各种光源的综合性能对比及为啥使用LED灯 光的颜色的选择 白色光&#xff1a;通常用…...

宝塔 php7.4 安装SQLserver扩展

一、加入微软源 curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssqlrelease.repo二、安装odbc驱动程序 yum install msodbcsql mssql-tools unixODBC-devel 三、安装php7.4对应的pdo_sqlsrv扩展包 # 下载 wget http://pecl.php.net/…...

C++中的常见I/O方式

目录 摘要 1. 标准输入输出(Standard I/O) 2. 文件输入输出(File I/O) 3. 字符串流(String Stream) 4. 低级文件I/O(Low-level File I/O) 5. 内存映射文件(Memory-Mapped File I/O) 6. 网络I/O(Network I/O) 服务器端 客户端 摘要 C++中的输入输出操作(…...

Java Web学习笔记23——Vue项目简介

Vue项目简介&#xff1a; Vue项目-创建&#xff1a; 命令行&#xff1a;vue create vue-project01 图形化界面&#xff1a;vue ui 在命令行中切换到项目文件夹中&#xff0c;然后执行vue ui命令。 只需要路由功能。这个路由功能&#xff0c;开始不是很理解。 创建项目部保存…...

[UE 虚幻引擎] DTLoadFbx 运行时加载FBX本地模型插件说明

本插件可以在打包后运行时动态加载FBX模型。 新建一个Actor 并添加一个 DT Runtime Fbx Component。 然后直接调用组件的函数 LoadFile 加载显示模型&#xff08;注&#xff1a;不支持模型动画&#xff09; FilePath : 加载模型的绝对路径。 Create Collision : 是否创建碰撞…...

mysql log_bin

MySQL 开启配置binlog以及通过binlog恢复数据 https://blog.csdn.net/weixin_44606481/article/details/133344235 CentoS7 安装篇十二&#xff1a;mysql主从搭建&#xff08;xtrackbackup不停机搭建&#xff09; https://blog.csdn.net/chengxuyuanjava123/article/details/1…...

数据整理操作及众所周知【数据分析】

各位大佬好 &#xff0c;这里是阿川的博客&#xff0c;祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 Python 初阶 Python–语言基础与由来介绍 Python–…...

maven的install不报错但deploy到nexus报400错误

一.情况描述 mvn install工程正常构建完成&#xff0c;但我mvn deploy报400错误&#xff0c;局域网maven组件仓库nexus也是正常的&#xff0c;deploy的帐号密码都是对的。报错信息如下&#xff1a; [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plu…...

WebSocket前端分页:技术深度、实践困境与未来展望

WebSocket前端分页&#xff1a;技术深度、实践困境与未来展望 在前端开发的广阔领域中&#xff0c;WebSocket前端分页技术以其独特的优势逐渐崭露头角。它不仅为开发者带来了全新的交互体验&#xff0c;也为用户带来了更加流畅和高效的信息获取方式。然而&#xff0c;这一技术…...

基于jeecgboot-vue3的Flowable流程-待办任务(一)

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、ToDo.data.ts的数据信息如下 import {BasicColumn} from //components/Table; import {FormSchema} from //components/Table; import { rules} from //utils/helper/validator; impor…...

计算机网络--传输层

计算机网络--计算机网络概念 计算机网络--物理层 计算机网络--数据链路层 计算机网络--网络层 计算机网络--传输层 计算机网络--应用层 1. 概述 1.1 传输层的意义 网络层可以把数据从一个主机传送到另一个主机&#xff0c;但是没有和进程建立联系。 传输层就是讲进程和…...

【Vue】普通组件的注册使用-局部注册

文章目录 一、组件注册的两种方式二、使用步骤三、练习 一、组件注册的两种方式 局部注册&#xff1a;只能在注册的组件内使用 ① 创建 .vue 文件 (三个组成部分) 以.vue结尾的组件&#xff0c;一般也叫做 单文件组件&#xff0c;即一个组件就是组件里的全部内容 ② 在使用的组…...

搞编程学习时是如何查找资料的?

刚开始学编程时&#xff0c;我通常用百度、360这样的搜索引擎去找资料。但后来我发现&#xff0c;根据想找的东西不同&#xff0c;用的搜索地方也得变。比如说&#xff0c;找编程学习的东西&#xff0c;我就不太用浏览器了&#xff0c;因为那儿广告太多&#xff0c;信息乱七八糟…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...