服务器文件完整性检查,是否有一种优雅的方法可以使用从服务器获取的md5文件在ansible中使用md5检查文件完整性?...

小智..

19

如果您希望使用在服务器上的文件中存储校验和的方法,您肯定可以使用get_url校验和arg来验证它.

下载.md5文件并将其读入var:

- set_fact:

md5_value: "{{ lookup('file', '/etc/myfile.md5') }}"

然后在下载文件时,将md5_value的内容传递给get_url:

- get_url:

url: http://example.com

dest: /my/dest/file

checksum: "md5:{{ md5_value }}"

force: true

请注意,指定文件的路径至关重要dest; 如果将其设置为目录(并且文件名为url),则行为会发生显着变化.

另请注意,您可能需要force:true.这将导致每次运行时都下载新文件.仅在下载文件时触发校验和.如果您的主机上已存在该文件,则无需验证现有文件的总和,这可能是不可取的.

为了避免每次你可以使用stat来查看文件是否已经存在,请查看其总和是什么,并有条件地设置force param.

- stat:

path: /my/dest/file

register: existing_file

- set_fact:

force_new_download: "{{ existing_file.stat.md5 != md5_value }}"

when: existing_file.stat.exists

- get_url:

url: http://example.com

dest: /my/dest/file

checksum: "md5:{{ md5_value }}"

force: "{{ force_new_download | default ('false') }}"

此外,如果您从某种Web服务器中提取总和/工件,您实际上可以从URL获得总和的值,而无需实际将文件下载到主机.以下是使用Nexus服务器的示例,该服务器将托管工件及其总和:

- set_fact:

md5_value: "{{ item }}"

with_url: http://my_nexus_server.com:8081/nexus/service/local/artifact/maven/content?g=log4j&a=log4j&v=1.2.9&r=central&e=jar.md5

这可以用来代替使用get_url下载md5文件,然后使用lookup来读取它.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值