首页 > 解决方案 > Ansible 检查 sha1sum

问题描述

已尝试检查 sha1sum,但认为这不是正确的方法。

- name: "Check Sha1sum"
  stat:
    path: "/path/to/my/package.tar.gz"
    checksum_algorithm: sha1
    get_checksum: yes

会检查文件 sha1sum 并将读取的 sha1sum 与变量进行比较,这可能吗?

标签: ansible

解决方案


问:检查文件 sha1sum 并将读取的 sha1sum 与变量进行比较。

A:例如,如果文件的校验和与变量test_sha1中存储的校验和不匹配,则下面的播放将失败

shell> sha1sum /etc/passwd
7c73e9f589ca1f0a1372aa4cd6944feec459c4a8  /etc/passwd
- hosts: localhost
  vars:
    test_sha1: 7c73e9f589ca1f0a1372aa4cd6944feec459c4a8
  tasks:
    - stat:
        path: /etc/passwd
      register: result
    - debug:
        var: result.stat.checksum
    - assert: 
        that: test_sha1 == result.stat.checksum
        fail_msg: '[ERR] Checkum failed.'

给出(删节)

TASK [stat] ****
ok: [localhost]

TASK [debug] ****
ok: [localhost] => 
  result.stat.checksum: 7c73e9f589ca1f0a1372aa4cd6944feec459c4a8

TASK [assert] ****
ok: [localhost] => changed=false 
  msg: All assertions passed

  • 统计 checksum_algorithm=sha1get_checksum=yes是默认值。

  • 文件的校验和将在属性stat.checksum中返回。

  • 请参阅断言


推荐阅读