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