MongoDBをChefでインストール


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

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

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

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

対象サーバーのホスト名を登録
[text title=”/etc/hosts”]
54.33.11.22 mongodb
[/text]
ssh ubuntu@mongodbでsshできるように、公開キーを対象サーバーに登録しておく
[bash gutter=”false”]
$ cat ~/.ssh/id_rsa.pub | ssh ubuntu@mongodb -i ~/.ssh/server.pem ‘cat >> ~/.ssh/authorized_keys’
[/bash]
さらに、Chef実行時にユーザー名も省略できるように.ssh/configにUserを指定しておくと便利
[text title=”.ssh/config”]
Host mongoldb
User ubuntu
[/text]

Chefリポジトリの初期化

Chef リポジトリの作成
[bash gutter=”false”]
$ mkdir mongodb-chef
$ cd mongodb-chef
$ knife solo init .
[/bash]
Chef Clientを対象サーバーにインストールしておく
[bash gutter=”false”]
$ knife solo bootstrap mongodb
[/bash]

MongoDB 2.4.9のインストール

mongodbをBerksfileに追加
[ruby title=”Berksfile”]
site :opscode

cookbook ‘mongodb’
[/ruby]
run_listにmongodbを追加
[ruby title=”nodes/mongodb.json”]
{
"run_list":[
"mongodb"
]
}
[/ruby]
適用
[bash gutter=”false”]
$ knife solo cook mongodb
[/bash]
インストールされたMongoDBのバージョンを確認
[bash gutter=”false”]
$ mongo
MongoDB shell version: 2.4.9
connecting to: test
> db.version()
2.4.9
[/bash]

MongoDB 3.0.4のインストール

mongodb3をBerksfileに追加
[ruby title=”Berksfile”]
site :opscode

cookbook ‘mongodb3’
[/ruby]

run_listにrecipe[mongodb3::default]を追加
[ruby title=”nodes/mongodb.json”]
{
"run_list": [
"recipe[mongodb3::default]"
]
}
[/ruby]
適用
[bash gutter=”false”]
$ knife solo cook mongodb
[/bash]
インストールされたMongoDBのバージョンを確認
[bash gutter=”false”]
$ mongo
MongoDB shell version: 2.4.9
connecting to: test
> db.version()
3.0.4
[/bash]

実際には、Mongo Shellを開いた際に以下の警告が表示される
[bash gutter=”false”]
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]
[/bash]
警告の解消方法は、以下のリンクを参考に設定
Disable Transparent Huge Pages (THP)
How do I modify “/sys/kernel/mm/transparent_hugepage/enabled”
MongoDB 3.0インストール後のワーニングの消し方
こちらの設定については、整理してCookbookに追加したい

,