CentOS6でgitのより新しいバージョンをchefでインストール


背景

chefのcookbookについての検証結果を紹介します。

問題

chefのcookbookでgitをインストールすると、CentOS6の標準パッケージの1.7.1がインストールされます。
このバージョンでは周知の事象ですが、httpアクセスのbasic認証に不具合があるので、新し目のパッケージをインストールしてみます。

解法

yumリポジトリにRPM Forgeを追加して、別バージョンのgitをインストールします。
Berksfileにcookbookを指定します。

Berksfile
cookbook "yum-repoforge"
cookbook "git"

nodeのjsonファイルにrun_listで指定します。

nodes/centos6.json
{
        "run_list":[
                "recipe[yum-repoforge]",
                "recipe[git]"
        ]
}

後はノードへ実行します。

$ knife solo cook centos6

ノードにログインしてバージョンを確認してみます。

$ vagrant ssh
[vagrant@centos6 ~]$ git --version
git version 1.7.12.4