厨师包资源的“源”属性

问题描述:

我是厨师的初学者,并且正在慢慢潜入。我对资源“包”的“源”属性有疑问。该文档说“源”属性使用本地文件系统存储的文件,而不是HTTP或FTP。我有一个'TOMCAT tar'文件和'Java RPM'软件包安装在节点上。厨师包资源的“源”属性

随便怎么样的资源“cookbook_file”已在菜谱目录保存在“文件”目录文件: tree structure of apache cookbook

上的本地文件系统,那么“源”的资源属性“包”拿文件从?它是否从同一个“文件”目录获取文件?或在任何其他文件夹?我已经写了一个简单的食谱,假定默认情况下“source”属性将从“文件”目录中获取文件。但就是不工作了:

包 '安装JAVA' 做 源 '的jdk-8u131 Linux的-64' 措施:安装 结束

包 '安装Tomcat的版本9' 做 源“阿帕奇-tomcat-9.0.0.M22.tar' action:安装 end

请帮助我!

这里你错过了很多。软件包资源用于声明您想要安装的软件包,并且您不必告诉主厨如何或在何处获取您声明要安装的软件包。厨师将使用您的本地系统回购使用您的发行包管理器来做到这一点,但您不需要告诉厨师这一点。在这种情况下,您也不需要文件目录中的tomcat和java文件。它会发现它自己。

正如我见上面要安装apache-tomcat-9.0.0.M22.tar.gzjdk-8u131-linux-x64.rpm。我看到这些文件在文件目录中,这是可以的。在这种情况下,你将需要另一名厨师复兴。见下面你如何能做到这一点

1)使用cookbook_file资源从COOKBOOK_NAME/files/一个子目录的文件传输到位于运行您的厨师客户端的远程主机上的指定路径。

cookbook_file '/opt/apache-tomcat-9.0.0.M22.tar.gz' do 
    source 'apache-tomcat-9.0.0.M22.tar.gz' 
    owner 'tomcat_user' 
    group 'tomcat_user' 
    mode '0755' 
    action :create 
end 



cookbook_file '/opt/jdk-8u131-linux-x64.rpm' do 
    source 'jdk-8u131-linux-x64.rpm' 
    owner 'root' 
    group 'root' 
    mode '0755' 
    action :create 
end 

2)现在解压使用执行资源

Tomcat的文件
execute 'extract tomcat' do 
    command "tar xf /opt/apache-tomcat-9.0.0.M22.tar.gz -C /opt --strip-components=1" 

end 

3)现在安装java rpm包作为遵循

rpm_package 'jdk-8u131-linux-x64.rpm' 

https://docs.chef.io/resource_file.html

https://docs.chef.io/resource_cookbook_file.html

https://docs.chef.io/resource_package.html

https://docs.chef.io/resource_rpm_package.html

https://docs.chef.io/resource_execute.html

+0

谢谢你的解决方案!有效。 –

包上的source是普通的ol本地文件系统路径。如果您想使用烹饪书中的内容,则需要将其与cookbook_file资源并用。

但是我们真的不推荐这样做。厨师不是一个很好的文件分发系统。它会起作用,在小规模上它可以,但是从长远来看它确实不会令人愉快。对于包,你可以在网络上的某个地方存放内部百胜存储库并使用厨师通过yum_repository资源进行配置。