Chef infra &引用;资料来源;chef中包资源的属性

Chef infra &引用;资料来源;chef中包资源的属性,chef-infra,chef-recipe,Chef Infra,Chef Recipe,我是厨师的初学者,慢慢地深入其中。我对资源“包”的“源”属性有疑问。文档中说,“源”属性使用本地文件系统存储的文件,而不是HTTP或FTP。我有一个“TOMCAT tar”文件和“Java RPM”包要安装在节点上 就像资源“cookbook_file”如何将文件保存在cookbooks目录的“file”目录中一样: 资源“包”的“源”属性从哪个本地文件系统获取文件?它是否从相同的“文件”目录抓取文件?或者在其他文件夹中?我编写了一本简单的烹饪书,假设“source”属性默认从“file”目录

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

就像资源“cookbook_file”如何将文件保存在cookbooks目录的“file”目录中一样:

资源“包”的“源”属性从哪个本地文件系统获取文件?它是否从相同的“文件”目录抓取文件?或者在其他文件夹中?我编写了一本简单的烹饪书,假设“source”属性默认从“file”目录中获取文件。但这是行不通的:

包“安装JAVA”do 来源“jdk-8u131-linux-x64” 操作:安装 结束

“安装tomcat版本9”软件包 来源“apache-tomcat-9.0.0.M22.tar” 操作:安装 结束


请帮帮我

包上的
source
是一个普通的本地文件系统路径。如果您想使用某本食谱中的内容,您需要将其与
食谱\u文件
资源一起使用


然而,我们真的不建议这样做。Chef不是一个很好的文件分发系统。它会起作用,在小范围内也可以,但从长远来看,它确实不会令人愉快。对于包,您可以在网络上的某个位置托管一个内部的Yum存储库,并使用Chef通过
Yum存储库
资源对其进行配置。

包上的
是一个普通的本地文件系统路径。如果您想使用某本食谱中的内容,您需要将其与
食谱\u文件
资源一起使用


然而,我们真的不建议这样做。Chef不是一个很好的文件分发系统。它会起作用,在小范围内也可以,但从长远来看,它确实不会令人愉快。对于软件包,您可以在网络上的某个位置托管一个内部的Yum存储库,并使用Chef通过
Yum\u存储库
资源对其进行配置。

您在这里遗漏了很多内容。包资源用于声明要安装的包,您不必告诉chef如何或在何处获取声明要安装的包。Chef将使用您的发行版包管理器使用您的本地系统回购来完成此操作,但您不需要告诉Chef这一点。在这种情况下,您也不需要文件目录中的tomcat和java文件。它会自己解决的

如上所述,您希望安装
apache-tomcat-9.0.0.M22.tar.gz
jdk-8u131-linux-x64.rpm
。我看到文件在文件目录中,这是确定的。在这种情况下,您将需要另一名厨师再次进行调查。请参见下文,了解如何实现这一目标

1) 使用cookbook_文件资源将文件从
cookbook_NAME/files/
的子目录传输到运行chef客户端的远程主机上的指定路径

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) 现在使用execute资源解压tomcat文件

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

end
3) 现在安装JavaRPM包,如下所示

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


您在这里错过了很多。包资源用于声明要安装的包,您不必告诉chef如何或在何处获取声明要安装的包。Chef将使用您的发行版包管理器使用您的本地系统回购来完成此操作,但您不需要告诉Chef这一点。在这种情况下,您也不需要文件目录中的tomcat和java文件。它会自己解决的

如上所述,您希望安装
apache-tomcat-9.0.0.M22.tar.gz
jdk-8u131-linux-x64.rpm
。我看到文件在文件目录中,这是确定的。在这种情况下,您将需要另一名厨师再次进行调查。请参见下文,了解如何实现这一目标

1) 使用cookbook_文件资源将文件从
cookbook_NAME/files/
的子目录传输到运行chef客户端的远程主机上的指定路径

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) 现在使用execute资源解压tomcat文件

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

end
3) 现在安装JavaRPM包,如下所示

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