Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
HACK! THE &
ビットアイル・エクイニクス株式会社 熊谷育朗
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
Juju/MAASとは何か。
Juju – deployment tool
‣ Machine/Service/Unitの概念を持ち、 Serviceの関係性を定義してサービスを デプロイすることのできるツール
‣ サービスデプロイの記載はCharmと 呼ばれる単位で記述、Charm Storeの ラインナップが豊富
MAAS(Metal as a Service)
‣ 物理サーバーの管理を行うツール 電源管理、物理デバイスの管理、 IPアドレス管理、OSインストール等が可能
‣ Jujuとの連携が可能
https://jujucharms.com/
http://maas.io/
http://www.ubuntu.com/cloud/juju
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
Juju/MAASはHACKして使え。なぜなら
それぞれのコンポーネントの関係が(慣れてないと)複雑
ドキュメントでは表現しきれていない仕様もある
更新が早い
ちょいちょいハマる
→要するにOpen Source
中身を知って手を入れて使う。これ当たり前。
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
MAAS によるサーバーの管理
New
管理リストに登録
Ready
Deployed
OSインストール
HW情報を取得
Enlist
Commissionig
Deploy
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
MAAS Server
MAAS の基本的な動作(簡易概念図)
上記のタイミングでサーバを起動/初期処理を行う仕組み
Tftpd(PXE boot)
Squid(Proxy)
Dhcpd(DHCP)
Bind(DNS)
Apache2(Httpd)
root-image
root-tgz
Client
Cloud-init
MAAS-web/API
Metadata-server rootfs
userdata
Enlist Commissionig Deploy
Pxe Boot
Iscsi マウント
root fs への
書き込み
Cloud-initによる
初期設定
iscsi(readonly)
dd
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
MAAS HACK! Tips boot-resource の操作
iscsi マウントされるブートイメージはマウントして改変できる
改変したイメージをtar gzで圧縮すれば、ddで書き込まれるイメージとなる
# sudo mount -o loop -t ext4 ¥ /var/lib/maas/boot-resources/current/ubuntu/amd64/generic/trusty/release/root-image ¥ /mnt/ # sudo chroot /mnt/
# cd /mnt/ # sudo tar zcvf /home/ubuntu/work/root-tgz ./* # sudo cp /home/ubuntu/work/root-tgz ¥ /var/lib/maas/boot-resources/current/ubuntu/amd64/generic/trusty/release/root-tgz
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
Juju の管理する概念(Machine/Service/Unit)
Machine
‣ Jujuによるコントロールの反映の対象。
‣ 連携しているツールの管理するサーバとlxcコンテナを対象にできる
Service
‣ Charm(サービス定義)の管理単位
‣ CharmをJujuに反映するとServiceとして管理される
‣ ServiceとServiceの関係を定義することができる
Unit
‣ CharmをMachineに反映したインスタンスの管理単位
‣ Shellまたはpythonで記述されたプログラム
‣ Hooksと呼ばれるイベントから実行される
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
Juju 動作概要(簡略図)
Juju bootstrap Unit
jujud
Juju Core
Hooks(イベント)
Charm
install
config-changed
start
upgrade-charm
stop
… Charm parameter
①deploy
②Machine起動
Service
③Jujud配置
④イベント起動
⑤イベント実行
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
Juju Charm Hack
Charmの主要な構成要素
‣ Metadata
▪ Serviceに設定するパラメータを定義する
‣ Hooks
▪ イベント毎に実行する処理をプログラムで記載
- install
- config-changed
- start
- upgrade-charm
- stop
‣ Template
▪ デプロイ時に配置するconfig ファイルなどのテンプレート
- [name]-relation-joined
- [name]-relation-changed
- [name]-relation-departed
- [name]-relation-broken
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
Jujuの魅力は Charm store
Charm Storeに行くと主要なOSSのCharm がほとんどある。OpenStack系は特に豊富
https://jujucharms.com/
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
デモ
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
知っていますか?
ドキュメントはあります。ちゃんと読みましょう(自戒)
‣ 今日の内容くらいはちゃんと読めば書いてあります。
バージョンを合せて読むのがポイント
Copyright © 2016 Bit-isle Equinix Inc. All Rights Reserved
ユーザーグループ立ち上げ中
“If you want to go fast, go alone. If you want to go far, go together.” 「速く行きたければ一人で行きなさい。 遠くまで行きたければ一緒に行きなさい。」
Facebook グループへ
参加してください https://www.facebook.com/groups/maajug/