2017-07-08 222 views
1

我是廚師的初學者,並且正在慢慢潛入。我對資源「包」的「源」屬性有疑問。該文檔說「源」屬性使用本地文件系統存儲的文件,而不是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

請幫助我!

回答

0

這裏你錯過了很多。軟件包資源用於聲明您想要安裝的軟件包,並且您不必告訴主廚如何或在何處獲取您聲明要安裝的軟件包。廚師將使用您的本地系統回購使用您的發行包管理器來做到這一點,但您不需要告訴廚師這一點。在這種情況下,您也不需要文件目錄中的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

謝謝你的解決方案!有效。 –

0

包上的source是普通的ol本地文件系統路徑。如果您想使用烹飪書中的內容,則需要將其與cookbook_file資源並用。

但是我們真的不推薦這樣做。廚師不是一個很好的文件分發系統。它會起作用,在小規模上它可以,但是從長遠來看它確實不會令人愉快。對於包,你可以在網絡上的某個地方存放內部百勝存儲庫並使用廚師通過yum_repository資源進行配置。