如何通过CHEF cookbook解压缩tar.Z文件

时间:2015-02-10 21:15:46

标签: chef chef-recipe

我使用Chef托管服务器,工作站和节点,并在节点上运行cookbook来安装Java,更新hosts文件。我无法在网站中找到解压缩tar文件的引用。你能帮我在这里或直接到一些有信息的网站。

提前致谢。

3 个答案:

答案 0 :(得分:16)

实际上没有内置于Chef中来提取tar文件。您有两种选择,要么可以使用execute资源进行炮轰,要么使用某些社区食谱,例如tar cookbook custom resources defined for extracting tars

execute资源示例中,它可能类似于

execute 'extract_some_tar' do
  command 'tar xzvf somefile.tar.gz'
  cwd '/directory/of/tar/here'
  not_if { File.exists?("/file/contained/in/tar/here") }
end

而第三方tar​​菜谱肯定是reads nicer

tar_package 'http://pgfoundry.org/frs/download.php/1446/pgpool-3.4.1.tar.gz' do
  prefix '/usr/local'
  creates '/usr/local/bin/pgpool'
end

答案 1 :(得分:1)

从Chef Client 15.0开始,内置了archive_file资源。它支持tar,gzip,bzip和zip。

archive_file 'Precompiled.zip' do
  path '/tmp/Precompiled.zip'
  destination '/srv/files'
end

答案 2 :(得分:0)

首先需要安装tar包,然后我们可以使用chef的execute资源来运行tar命令。您可以使用以下代码段。

package 'tar'
execute "extract tar" do
 command 'tar -xf #{tarPath} -C #{installPath}'
end