これから始める人のための自動化入門
~Ubuntu Jujuを使って~
日本仮想化技術株式会社
代表取締役社長兼CEO
宮原 徹(@tmiyahar)
http://VirtualTech.jp
自己紹介
• 本名:宮原 徹
• 1972年1月 神奈川県生まれ
• 1994年3月 中央大学法学部法律学科卒業
• 1994年4月 日本オラクル株式会社入社
– PCサーバ向けRDBMS製品マーケティングに従事
– Linux版Oracle8の日本市場向け出荷に貢献
• 2000年3月 株式会社デジタルデザイン 東京支社長および株
式会社アクアリウムコンピューター 代表取締役社長に就任
– 2000年6月 (株)デジタルデザイン、ナスダック・ジャパン上場(4764)
• 2001年1月 株式会社びぎねっと 設立
• 2006年12月 日本仮想化技術株式会社 設立
• 2008年10月 IPA「日本OSS貢献者賞」受賞
• 2009年10月 日中韓OSSアワード 「特別貢献賞」受賞
2
日本仮想化技術株式会社 概要
• 社名:日本仮想化技術株式会社
– 英語名:VirtualTech Japan Inc.
– 略称:日本仮想化技術/VTJ
• 設立:2006年12月
• 資本金:2,000万円
• 売上高:1億3,573万円(2013年7月期)
• 本社:東京都渋谷区渋谷1-8-1
• 取締役:宮原 徹(代表取締役社長兼CEO)
• 伊藤 宏通(取締役CTO)
• スタッフ:8名(うち、6名が仮想化技術専門エンジニアです)
• URL:http://VirtualTech.jp/
• 仮想化技術に関する研究および開発
– 仮想化技術に関する各種調査
– 仮想化技術に関連したソフトウェアの開発
– 仮想化技術を導入したシステムの構築
– OpenStackの導入支援・新規機能開発
ベンダーニュートラルな
独立系仮想化技術の
エキスパート集団
3
情報サイト:EnterpriseCloud.jp
• OpenStackで始めるエ
ンタープライズクラウ
ドの情報サイト
• OpenStack導入手順
書のダウンロード
• 各種プレゼン資料
• その他ブログ記事
4
本日のアジェンダ
自動化をやってみたい人に簡単に始められる自動化
ツール「Juju」を紹介します
• 自動化とは?
• Jujuを動かしてみよう
• Juju環境を構築しよう
– VirtualBox+Vagrantでの導入
– Ubuntu環境に手動でインストール
• Juju活用とトラブルシューティング
• Ubuntu Jujuを使ったOpenStack環境構築(田口)
• スタッフ募集のお知らせ
5
自動化とは?
6
自動化のメリット
• 自動化とはシステム構築・管理において、
従来の手動作業を自動化ツールなどを活
用して自動的に行えるようにすること
• オペレーションミスを減らすことができる
• 行った作業を後から確認、修正できる
• 繰り返し、大量の作業が行える
7
主な自動化ツール
• シェルスクリプト
– 最も手軽で汎用性が高い
• Puppet
– manifestに処理を記述
• Chef(Ruby)
– Recipeに処理を記述
• Ansible(Python)
– Play bookに処理を記述
• Vagrant
– VirtualBoxなどを使って仮想マシン構成を自動化
8
Ubuntu Jujuとは?
• Canonical社が開発している自動化ツール
• Charmに処理を記述できる
– WebアプリケーションとDBの接続、DBのクラ
スタリングなどの処理も行える
• 各種クラウド環境に対応
– AWS、Azure、OpenStackなど
• Web GUIが用意されており、簡単にアプリ
ケーションを配備できる
9
Jujuを動かしてみよう
環境構築の話は後ほど
Jujuの使い方(GUI版)
1. Web GUIにadminでログイン
2. インストールしたいアプリケーション用の
Charmを検索
3. Charmをキャンバスに配置
– 自動的にユニットが1つ追加される
4. Charm同士を接続(ex. バックエンドDB)
5. Commitすると、Charmがダウンロードされ、
ユニットが配備される
6. 外部からの接続を可能にする(Expose)
11
GUI デモ手順(1)
1. 「MySQL」のCharmをキャンバスに配置
2. 「MediaWiki」のCharmをキャンバスに配置
3. Charm同士を接続
1. 「Build Relation」をクリック
2. Charm同士を線で繋ぐ
3. 「mediawiki:db → mysql:db」を選択
4. Commitボタンを押す
1. 「Automatically place」 を選択し、Confirm
5. ユニットがrunningになるまでしばらく待つ
12
GUI デモ手順(2)
6. MediaWikiをExposeする
1. 「Expose this service?」をチェックしてCommit
7. MediaWikiにアクセスする
1. MediaWikiのユニット(mediawiki/0)を確認す
る
2. Public AddressのIPアドレスをクリックする
13
CUI デモ手順
1. juju deploy mysql
2. juju deply mediawiki
3. juju add-relation mediawiki:db mysql:db
4. juju expose mediawiki
5. juju status
6. MediaWikiのPublic Addressにアクセス
GUIと異なり、Commit作業は不要
14
Juju環境を構築しよう
Jujuつ師になるための第一歩
15
Juju環境を作るには
A. VirtualBox+Vagrantで自動的に作る
– 必要なソフトウェアのインストールとコマンドを
いくつか入れるだけで超簡単に作れる
– 毎回、初期化が必要なのでお試し用
B. Ubuntuに手動でインストールしていく
– Ubuntu 14.04 LTSにパッケージをインストール
– 意外と簡単なので練習用
C. クラウド上にインストール
– AWSとかAzureとか、OpenStackとか
16
A. VirtualBox+Vagrantでの導入
• 「Juju Vagrant」でググればOK
– https://jujucharms.com/docs/devel/config-
vagrant
• Ubuntu、Mac OS X、Windowsをサポート
– 仮想マシンの中でUbuntuが動けばいいので、
多分CentOSなどでもOK
17
VirtualBox+Vagrantでの導入手順
1. Vagrantの作業用ディレクトリを作成
– $ mkdir ~/vagrant
– $ cd ~/vagrant
2. Vagrant用のBox(Juju導入済み)をダウンロード
– $ vagrant box add JujuBox https://cloud-
images.ubuntu.com/vagrant/trusty/trusty-server-cloudimg-
amd64-juju-vagrant-disk1.box
3. Vagrantを初期化
– $ vagrant init JujuBox
4. メモリ割り当て量を増やす
5. Juju環境を起動
– $ vagrant up
– 必要なものをダウンロードしてくるので時間がかかる
18
Vagrantfileの編集
• Jujuが動作する仮想マシンのメモリ割り当て量を4GB以
上にする
– いくつかのアプリはデフォルトでメモリを沢山要求するため
• ~/vagrant/Vagrantfileを編集
– 行頭の#を外してコメントアウトされていた設定を有効化&メモリ
容量を変更
19
config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
vb.memory = "4096"
end
Juju on VirtualBox+Vagrantの利用
1. ホスト側のブラウザでJuju GUIにアクセス
– http://127.0.0.1:6080/
– ドキュメントにはMac OS X 10.10以降は静的ルー
ティングを設定しろ、とあるがv10.10.3は無くても
大丈夫そう
2. adminでログイン
– パスワードはログイン画面に書いてあります
3. 初回はチュートリアルツアーが受けられます
4. Let's Jujuつ師!
20
B. Ubuntuに手動でインストール
• Ubuntu 14.04 LTSの稼働環境を準備
– とりあえず仮想マシンでOK
– VitrualBoxの場合、NICを2つ
• NAT(アダプター1・eth0)+ホストオンリーネットワーク(アダ
プター2・eth1)
• インストール時はeth0を使用
• インストール後にeth1も/etc/network/interfacesを設定して
DHCPオンにしておくこと
– メモリは4GB以上(できれば8GB)割り当てないと色々
不具合が起きる
• とりあえず1台だけで動かします
– LXCを動かしてコンテナで色々なアプリを動かします
– インストール時に特別何も追加しないでも大丈夫
21
Ubuntuに手動でインストール手順
1. リポジトリを登録
– $ sudo apt-add-repository ppa:juju/stable
– $ sudo apt-get update
2. Jujuをインストール
– $ sudo apt-get install juju-local
3. Jujuを初期化
– $ juju generate-config
4. ローカルでLXCを使う設定に変更
– $ juju switch local
22
Ubuntuに手動でインストール手順
5. 管理者用パスワードを設定ファイルに設定
– ~/.juju/environments.yamlを修正
– 使用するセクションは「local:」で検索する
– admin-secret: password を追加
6. Jujuを起動
– $ juju bootstrap
7. Juju GUIを導入
– $ juju deploy juju-gui
– $ juju expose juju-gui
– IPアドレスはjuju statで確認
23
local:
type: local
admin-secret: password
Mac側に静的ルーティングを設定
• 仮想マシンのeth1(192.168.56.101)を経由コンテ
ナのネットワーク(10.0.3.0/24)に繋ぎます
– $ sudo route add -net 10.0.3.0/24 192.168.56.101
• Mac OS Xのターミナルで実行
24
ホストマシン
仮想マシン
eth1 eth0
192.168.56.101
en0
ブラウザ
(Mac)
コンテナ
10.0.3.0/24
ホスト
オンリー NAT
lxcbr
0
10.0.3.1 10.0.2.15
IPマスカレード
インター
ネット
Juju 活用テクニック
• GUIの操作はゆっくり
– 操作は一発だが、実際のデプロイはパッケー
ジのダウンロードやインストール速度に依存
• デプロイしたマシン(コンテナ)への接続
– $ juju ssh ユニット名
– ユニット名は「mysql/0」など
• 複数のCharmをとりまとめたBandleも活用
– OpenStackのような複数Charmが必要なシステ
ムも一括でデプロイ可能
25
apt-cacher-ngを導入
• apt-cacher-ngを導入してパッケージをキャッシュしておけばデ
プロイ時のapt-getが速くなる
– $ sudo apt-get install apt-cacher-ng
• ローカルで使いたい
– /etc/apt/apt.conf.d/02proxyを作成
• Jujuでデプロイしたコンテナから使いたい
– LXCコンテナのネットワークからのゲートウェイアドレス(lxcbr0のIP
アドレス)を指定
1. ~/.juju/environments.yamlのlocal:セクションに追加
1. juju destroy-environment localを実行
2. juju bootstrapを実行
26
Acquire::http::Proxy "http://127.0.0.1:3142/";
atp-http-proxy: http://10.0.3.1:3142/
※IPアドレスは環境によって変わる場合があります
Juju トラブルシューティング
• juju sshコマンドでトラブル原因を確認
• デプロイに失敗したユニットを消すにはエラー
を先に取り除く必要がある
– $ juju resolved ユニット名
– resolvedコマンドを連発して、とりあえず起動処理
を終わらせる
• 最初からやり直したい
1. juju destroy-environment local
• juju switch localを実行している場合
• ~/.juju/environments.yamlは消えません
2. juju bootstrapをやり直す
27
まとめ:ここからの課題
• 実際のクラウド環境への適用
– AWS、Azure、OpenStackなど
– Jujuの操作感は基本的に変わりません
• マシン配備のMAASと組み合わせて
– MAAS:Metal as a Service
• Charmを書いてみる
– GUIでパラメータ調整可能
– 自分でスクリプトを書ける(言語は何でもOK)
• 外部サービス連携
– 詳細設定やコンテンツをGitなどから適用
28
Ubuntu Jujuを使った
OpenStack環境構築
29
スタッフ募集のお知らせ
日本仮想化技術株式会社は
• 仮想化技術のエキスパート集団
• 進取の精神
• 豊富な検証機材で新技術を追求
• 自由な雰囲気の職場
募集している職種は
• サーバー・ネットワークエンジニア
– LPIC、CCNAなどの保有者歓迎
• プログラマー
– オブジェクト指向言語が理解できている事
– OpenStackのコードを読んだり、書いたり
• 営業・企画・マーケティング
– SE、PL、PM経験者大歓迎
勤務先は?
•渋谷駅より徒歩5分
•全員がゆったりデスク
とアーロンチェア
オフィスは渋谷駅至近
34
日本仮想化技術
オフィス
ハ
チ
公
渋谷駅東
口
交差点信
号
渋
谷
駅
ヒカリエの中を通ると
雨の日にあまり濡れません
渋
谷
郵
便
局
優れた環境が優れた成果を生む
渋谷駅徒歩5分の新オフィス
幅140cmのゆったりデスクとアーロンチェア
MacBook Pro/Airと大型液晶モニタが標準
キーボード・マウスも自由
充実の検証環境
最新機材で作業
充実の福利厚生
• マッサージチェア
• 充実のフリードリンクコーナー
– 各種お茶類、ネスプレッソなど各種取り揃え
• 誕生日はケーキでお祝い
• 雑誌年間購読制度
– 何でも好きな雑誌を年間購読
• 書籍購入支援制度
– 好きな書籍(漫画も可)を1万円/年購入
36
お問い合わせ先
メールにて
recruit@VirtualTech.jp
履歴書、職務経歴書をご用意ください
ご紹介も是非。きっと何かいいことあります。
37
お待ちしております
38

これから始める人のための自動化入門~Ubuntu Jujuを使って〜– OpenStack最新情報セミナー 2015年7月