ztbuz@dev

人生に絶望しているZが、それでも技術を身につけようと必死になるブログ

Chef SoloでyumのEPELリポジトリを有効化する方法

Chefでのサーバ構築時に、以下のようなエラーに出くわしました。 たとえばPackage Resourceでlibyamlをインストールしようとすると、

  * package[libyaml-devel] action install
    * No version specified, and no candidate version available for libyaml-devel
================================================================================
Error executing action `install` on resource 'package[libyaml-devel]'
================================================================================


Chef::Exceptions::Package
-------------------------
No version specified, and no candidate version available for libyaml-devel

という感じです。

解決策として、yumのEPELリポジトリを追加すればよいです。

解決策

Cookbookを取得する

yumのEPELリポジトリを追加する手っ取り早い方法として、Opscodeのコミュニティで配布されているクックブックを利用する方法があります。 以下のコマンドをターンッとたたくだけでよいです。

$ knife cookbook site vendor yum

実行の命令を書く

あとはnodes/下のJSONのrun_listyum::epelを追加するだけです。

{
  "run_list": [
    "yum::epel"
  ]
}

これで、問題なくインストールすることができました。 おしまい。

参考記事