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に追加したい