2017-07-08 11 views
1

私はシェフと初心者であり、ゆっくりと深く入り込んでいます。私はリソース "パッケージ"の "ソース"属性に関する疑いがあります。ドキュメンテーションによると、 "source"属性は、HTTPまたはFTPではなく、ローカルファイルシステムに保存されたファイルを使用します。私はノードにインストールされる 'TOMCAT tar'ファイルと 'Java RPM'パッケージを持っています。ローカルファイルシステムは、リソース「パッケージ」の「ソース」属性のファイルを取るん tree structure of apache cookbookシェフのパッケージリソースの "source"属性

れている:ちょうど資源「cookbook_fileは」料理ディレクトリにディレクトリを「ファイル」に保存されたファイルを持っているかのような

から?それは同じ 'ファイル'ディレクトリからファイルを取得しますか?または他のフォルダにありますか?私は、 "source"属性がデフォルトで "file"ディレクトリからファイルを取得すると仮定して、簡単な料理本を書いています。それはワークアウトされていません。

パッケージ 'インストールJAVA' 'JDK-8u131-のlinux-x64の' アクション ソースの操作を行います。

パッケージ ソースを行う 'Tomcatのバージョン9をインストールする'「apacheの エンドのインストールを-tomcat-9.0.0.M22.tar ' アクション:インストール 終了

親切に私を助けてください!

答えて

0

あなたはここでたくさん不足しています。パッケージリソースは、インストールするパッケージを宣言するために使用され、シェフにインストールするように宣言したパッケージを取得する方法や場所を伝える必要はありません。シェフはあなたのディストリビューションパッケージマネージャを使ってあなたのローカルシステムレポを使用しますが、シェフにこれを伝える必要はありません。また、その場合は、ファイルディレクトリにtomcatとjavaファイルは必要ありません。それはそれ自身のそれを把握するでしょう。

私はapache-tomcat-9.0.0.M22.tar.gzjdk-8u131-linux-x64.rpmをインストールします。ファイルがDIRにあることがわかりました.DIRはOKです。この場合、別のシェフの再蘇生が必要になります。

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 

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

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

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

に従うと3)今、Javaのrpmパッケージをインストールします

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はプレーンオールのローカルファイルシステムのパスです。あなたが料理本の中から何かを使用したい場合は、cookbook_fileリソースと一緒にそれを使用する必要があります。

しかし、私たちは本当にこれをお勧めしません。シェフは非常に良いファイル配布システムではありません。それはうまくいくでしょうし、小さなスケールではそれは大丈夫ですが、それは本当に長期的には楽しいものにならないでしょう。パッケージの場合は、ネットワーク上のどこかにYumリポジトリをホストし、シェフを使用してyum_repositoryリソース経由で構成することができます。

関連する問題