ansible – 如何在shell命令中更改文件?
发布时间:2020-12-15 21:23:02 所属栏目:安全 来源:网络整理
导读:我有 shell命令生成的文件 - stat: path=/etc/swift/account.ring.gz get_md5=yes register: account_builder_stat- name: write account.ring.gz file shell: swift-ring-builder account.builder write_ring --- rewrite account.ring.gz chdir=/etc/swift
我有
shell命令生成的文件
- stat: path=/etc/swift/account.ring.gz get_md5=yes register: account_builder_stat - name: write account.ring.gz file shell: swift-ring-builder account.builder write_ring <--- rewrite account.ring.gz chdir=/etc/swift changed_when: ??? account_builder_stat.changed ??? <-- no give desired effect 如何检查文件是否已更改? 解决方法- stat: path=/etc/swift/account.ring.gz get_md5=yes register: before - name: write account.ring.gz file shell: swift-ring-builder account.builder write_ring # update account.ring.gz chdir=/etc/swift changed_when: False # without this,as long as swift-ring-builder exits with # return code 0 this task would always be reported as changed - stat: path=/etc/swift/account.ring.gz get_md5=yes register: after - debug: msg='report this task as "changed" if file changed' changed_when: "'{{before.stat.md5}}' != '{{after.stat.md5}}'" - debug: msg='execute this task if file changed' when: "'{{before.stat.md5}}' != '{{after.stat.md5}}'" 如果您真正想要的是根据swift-ring-builder的结果报告任务’write account.ring.gz file’已更改或未更改,则必须运行mini shell脚本.像这样的东西(未经测试): - name: write account.ring.gz file shell: bfr=`md5sum account.ring.gz`; swift-ring-builder account.builder write_ring; aftr=`md5sum account.ring.gz`; test $bfr -eq $aftr chdir=/etc/swift 或者如果我正确记住了md5sum选项: - name: write account.ring.gz file shell: echo `md5sum account.ring.gz` account.ring.gz > /tmp/ff; swift-ring-builder account.builder write_ring; md5sum -c /tmp/ff chdir=/etc/swift (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |