はじめに
DC/OS使ってますか?
最近ではTechNet:マイクロソフトが新規 DC/OS オープン ソース プロジェクトに参加や
先日のde:code2016でのセッションなど何かと話題ですね!
このビックウェーブに乗っかろうと思い、インストールを試みたのですが、、ちょっと大変でした。
ローカルならvagrant、クラウド上でならAWSやAzure、DigitalOceanなどですぐに動かせる環境があるのですが、
- vagrantだと重すぎ
- クラウドだと、どれくらいのお値段かかるのかよくわからない
- 将来的に自分で細やかに物理ノードを制御したい
という思いがあったため、さくらのクラウドに環境作りました。
インストールにはTerraform for さくらのクラウドを使うことで、10分ほどで環境構築ができてしまいます。
さくらのクラウドならクーポンお持ちの方も多いかと思いますし、
日本語使える、料金アラートも設定できるので安心ですよね!
なお、 タイトルはちょっと釣り気味です。
前提条件を満たすことを考えるともうちょっとかかるかもしれません。
そこはまあご容赦ください。
DC/OSの詳細なインストール手順はこちらです。合わせて一読ください。
サーバー環境:料金(198円/時間)
- Bootstrapノード(2コア4GBメモリ) : 41円/時間
- Masterノード(4コア8GBメモリ) : 65円/時間
- Agentノード(2コア4GBメモリ) * 2台 : 41円/時間 * 2
- スイッチ : 10円/時間
- SSHキー : 0円
合計で 198円/時間ですね。
2万円クーポン使えば余裕ですね
2016/6/1追記:スイッチ分を入れ忘れていたため修正
前提条件
- Terraform for さくらのクラウドが使えること
- Gitが使えること
Terraform for さくらのクラウド
については以下の記事を参考に使えるようにしておいてください。
Terraform for さくらのクラウド スタートガイド
さくらのクラウドのAPIキーは以下のように環境変数に設定しておいてください。
export SAKURACLOUD_ACCESS_TOKEN="取得したAPIトークン"
export SAKURACLOUD_ACCESS_TOKEN_SECRET="取得したAPIシークレット"
gitは参考サイトなど多数あると思いますので、適宜インストールしておいてください。
なお、以下ではMac(OSX)で作業しています。
Linux/Windowsで作業する場合は適宜読み替えてください。
手順
以下順次実施すればOKです
-
- Terraform用に定義ファイル類をGithubから取得
-
- SSHキーペア生成
-
-
terraform
実施
-
1) Terraform用に定義ファイル類をGithubから取得
$ git clone https://github.com/yamamoto-febc/dcos-on-sakuracloud.git
$ cd dcos-on-sakuracloud
上記リポジトリは以下リンクからも参照できます。
GitHub:dcos-on-sakuracloud
2) SSHキーペア生成
$ ssh-keygen -C "" -f keys/id_rsa
3) terraform apply
実施
$ terraform get # tfファイル内で使っているモジュールの取得
$ terraform plan # 実行内容の確認
$ terraform apply # 実行
DC/OSダッシュボードを開く!
インストールできましたか?
terraform apply
の最後にダッシュボードのURLが表示されていますのでブラウザで開いてみましょう。
もしウィンドウを閉じてしまったなどの場合は以下のコマンドで再表示できます。
$ terraform output
ログイン画面
ブラウザで開くと以下のような画面になると思います。
Google/GitHub/MicrosoftいずれかのアカウントでOAuthログインします。
なお、初回は OAuthできれば誰でもログイン出来ちゃいます。
(初回ログイン時に管理者として登録され、他のユーザーがログイン出来なくなるみたいです)
なるべく早くログインしましょう。
ダッシュボード画面
ログイン出来ましたか?
以下のような画面が表示されるはずです。
後はどんどん動かしてみるだけです。
画面サンプル
かっこいいUIですよね!私もこれからガンガン使い倒す予定です!
なお、この構成はスペックが若干低めです。
tfファイルの編集で調整できますので以下のスペックの調整
を参考にしてください。
おまけ
スペックの調整
variables.tf
を編集してください。
variable "private_ip" {
default = {
"bootstrap" = "192.168.2.11"
"master01" = "192.168.2.101"
"agent01" = "192.168.2.201"
"agent02" = "192.168.2.202"
}
}
variable "spec" {
default = {
# Bootstrapノード
bootstrap_core = 2
bootstrap_memory = 4
# Masterノード
master_core = 4
master_memory = 8
# Agentノード
agent_core = 2
agent_memory = 4
}
}
作ったサーバーへのSSH接続
Terraformのoutput
を利用してSSH接続情報を表示できます。
以下のコマンドで表示されるコマンドをコピペで実行できます。
$()やバッククォートで直接実行してもOKです。
$ terraform output
直接実行する場合は以下のような感じですね。
$ $(terraform output ssh_bootstrap) # Bootstrapノード
$ $(terraform output ssh_master01) # Masterノード
$ $(terraform output ssh_agent01) # Agentノード(01)
$ $(terraform output ssh_agent02) # Agentノード(02)
後片付け
使い終わったらterraform destroy
しておきましょう。
どうせ環境構築は10分もかからないのですから、
お試し/調査の場合は使う度に作ったほうが料金的に安心ですよね!
本日は以上です。Enjoy