首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用chef计算sha-256

使用chef计算sha-256
EN

Stack Overflow用户
提问于 2019-08-24 03:40:35
回答 1查看 437关注 0票数 0

我有一个代码来比较来自文件和artifactory的sha-256值,如果校验和不匹配,它会抛出错误。但我想在自己的配方中计算校验和,而不是从artifactory中读取它。下面是我到目前为止拥有的代码,试图找出在我的配方中是否有任何函数或方法可以用来计算文件的sha-256。提前感谢

代码语言:javascript
复制
  only_if { node['abc'] }
  not_if { ::File.exist?(checksum_file) and ::File.read(checksum_file).strip==coordinates['checksum'].strip }
  message 'The previously deployed checksum is not aligned with the actual value'
  level :debug
  notifies :create, 'remote_file[download file]', :immediately
end```
EN

回答 1

Stack Overflow用户

发布于 2019-08-25 13:24:42

chef是建立在ruby之上的,所以我们可以在菜谱中释放ruby的力量。

如果你想计算一个文件的sha 256校验码,下面的ruby代码可能会很方便。

代码语言:javascript
复制
require 'digest'
Digest::SHA256.file('/path/to/file').hexdigest

您帖子中的代码片段没有指定您使用的是哪个厨师资源,尽管感觉您使用的是log资源。

由于您提到您有兴趣从artifactory下载该文件,remote_file资源可以做到这一点,并且它有一个checksum属性:

checksum:可选,参见use_conditional_get。文件的SHA-256校验和。用于防止文件被重新下载。当本地文件与校验和匹配时,Chef Infra客户端不会下载该文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57632146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档