MongoDBをChef Supermarketに公開されているCookbookを利用してKnife soloでインストールする手順のまとめです

公開されているCookbookは、mongodbとmongodb3などがり、2.x系はmongodb、3.x系はmongodb3でインストールできます

以下、手順
確認は、Ubuntu 14.04で行っています

対象サーバーへのアクセス設定

対象サーバーのホスト名を登録

54.33.11.22 mongodb

ssh ubuntu@mongodbでsshできるように、公開キーを対象サーバーに登録しておく

$ cat ~/.ssh/id_rsa.pub | ssh ubuntu@mongodb -i ~/.ssh/server.pem 'cat >> ~/.ssh/authorized_keys'

さらに、Chef実行時にユーザー名も省略できるように.ssh/configにUserを指定しておくと便利

Host mongoldb
   User ubuntu

Chefリポジトリの初期化

Chef リポジトリの作成

$ mkdir mongodb-chef
$ cd mongodb-chef
$ knife solo init .

Chef Clientを対象サーバーにインストールしておく

$ knife solo bootstrap mongodb

MongoDB 2.4.9のインストール

mongodbをBerksfileに追加

site :opscode

cookbook 'mongodb'

run_listにmongodbを追加

{
  "run_list":[
    "mongodb"
  ]
}

適用

$ knife solo cook mongodb

インストールされたMongoDBのバージョンを確認

$ mongo
MongoDB shell version: 2.4.9
connecting to: test
> db.version()
2.4.9

MongoDB 3.0.4のインストール

mongodb3をBerksfileに追加

site :opscode

cookbook 'mongodb3'

run_listにrecipe[mongodb3::default]を追加

{
  "run_list": [
    "recipe[mongodb3::default]"
  ]
}

適用

$ knife solo cook mongodb

インストールされたMongoDBのバージョンを確認

$ mongo
MongoDB shell version: 2.4.9
connecting to: test
> db.version()
3.0.4

実際には、Mongo Shellを開いた際に以下の警告が表示される

2015-07-11T10:35:43.416+0900 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2015-07-11T10:35:43.416+0900 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2015-07-11T10:35:43.416+0900 I CONTROL  [initandlisten] 
2015-07-11T10:35:43.416+0900 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-07-11T10:35:43.416+0900 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2015-07-11T10:35:43.416+0900 I CONTROL  [initandlisten] 

警告の解消方法は、以下のリンクを参考に設定
Disable Transparent Huge Pages (THP)
How do I modify “/sys/kernel/mm/transparent_hugepage/enabled”
MongoDB 3.0インストール後のワーニングの消し方
こちらの設定については、整理してCookbookに追加したい