首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chef中的mktemp命令

Chef中的mktemp命令
EN

Stack Overflow用户
提问于 2015-03-21 02:04:52
回答 1查看 217关注 0票数 1

有没有人知道厨师是否有类似linux上的mktemp命令的资源?

基本上,我正在寻找一种远程下载文件并将其保存在/tmp下的方法,但我希望将其保存为uniq文件名

代码语言:javascript
复制
remote_file "/tmp/ec2-ami-tools.zip" do
  source "http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools-1.5.6.zip"
  action :create
end

我希望有一个安全的/tmp/ec2-ami-tools.zip文件名,而不是使用uniq作为目标文件名。除了使用datetime random之外,Chef中是否有官方资源可以做到这一点?我想知道厨师是否有资源可以生成UUID

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-03-24 16:54:37

要准确回答您的问题(创建临时文件):

代码语言:javascript
复制
require 'tempfile'

mydest = Tempfile.new('ec2-ami-tools.zip')

remote_file mydest do 
  source "http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools-1.5.6.zip"
  action :create
  notifies :run,"execute[unzip #{mydest}", :immediately
end
execute "unzip #{mydest}" do
  action :nothing
end

I highly不鼓励这样做,因为在每次运行时,文件都会被下载并解压缩(临时文件会发生变化),而没有任何配方的幂等性。

在这个案例中,ark cookbook可以帮助你。

它有一个专门针对这个目标的LighWeight资源提供程序,它下载一个tarball文件,将其解压缩,然后可选地在之后做一些事情。

方舟自述文件中的示例:

此示例将缓存复制到/var/ ivy.tar.gz /chef/ Ivy -2.2.0.tar.gz,将其内容解压缩到/usr/http://someurl.example.com/ivy.tar.gz/ivy-2.2.0/ --剥离引导目录,并将/usr/local/ivy符号链接到/usr/local/ivy-2.2.0安装Apache ivy依赖项解析工具ark "ivy“do url 'http://someurl.example.com/ivy.tar.gz‘version '2.2.0’checksum 操作:install end

为了适应你的例子,我会这样做:

代码语言:javascript
复制
ark 'ec2-ami-tools' do
  url 'http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools-1.5.6.zip'
  version '1.5.6'
  action :install
end

校验和将避免调用see服务器来查看文件是否已更改,因为磁盘上的zip校验和将与资源校验和进行比较,如果它们匹配,则将在此时停止。

校验和是文件的sha256sum

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

https://stackoverflow.com/questions/29173046

复制
相关文章

相似问题

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