Upload
virtualtech-japan-inc
View
866
Download
5
Embed Size (px)
Citation preview
これから始める人のための自動化入門~ 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
4
情報サイト:EnterpriseCloud.jp
• OpenStack で始めるエンタープライズクラウドの情報サイト
• OpenStack 導入手順書のダウンロード
• 各種プレゼン資料• その他ブログ記事
5
本日のアジェンダ自動化をやってみたい人に簡単に始められる自動化ツール「 Juju 」を紹介します• 自動化とは?• Juju を動かしてみよう• Juju 環境を構築しよう
– VirtualBox+Vagrant での導入– Ubuntu 環境に手動でインストール
• Juju 活用とトラブルシューティング• Ubuntu Juju を使った OpenStack 環境構築(田口)• スタッフ募集のお知らせ
6
自動化とは?
7
自動化のメリット
• 自動化とはシステム構築・管理において、従来の手動作業を自動化ツールなどを活用して自動的に行えるようにすること
• オペレーションミスを減らすことができる
• 行った作業を後から確認、修正できる• 繰り返し、大量の作業が行える
8
主な自動化ツール• シェルスクリプト
– 最も手軽で汎用性が高い• Puppet
– manifest に処理を記述• Chef ( Ruby )
– Recipe に処理を記述• Ansible ( Python )
– Play book に処理を記述• Vagrant
– VirtualBox などを使って仮想マシン構成を自動化
9
Ubuntu Juju とは?
• Canonical 社が開発している自動化ツール
• Charm に処理を記述できる– Web アプリケーションと DB の接続、 DB
のクラスタリングなどの処理も行える• 各種クラウド環境に対応
– AWS 、 Azure 、 OpenStack など• Web GUI が用意されており、簡単にア
プリケーションを配備できる
Juju を動かしてみよう
環境構築の話は後ほど
11
Juju の使い方( GUI 版)
1. Web GUI に admin でログイン2. インストールしたいアプリケーション用の
Charm を検索3. Charm をキャンバスに配置
– 自動的にユニットが 1つ追加される
4. Charm同士を接続( ex. バックエンド DB )5. Commit すると、 Charm がダウンロードされ、ユニットが配備される
6. 外部からの接続を可能にする( Expose )
12
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 になるまでしばらく待つ
13
GUI デモ手順( 2 )
6. MediaWiki を Expose する1. 「 Expose this service? 」をチェックして
Commit
7. MediaWiki にアクセスする1. MediaWiki のユニット( mediawiki/0 )を
確認する2. Public Address の IP アドレスをクリック
する
14
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 作業は不要
15
Juju 環境を構築しよう
Jujuつ師になるための第一歩
16
Juju 環境を作るには
A. VirtualBox+ Vagrant で自動的に作る–必要なソフトウェアのインストールとコマン
ドをいくつか入れるだけで超簡単に作れる–毎回、初期化が必要なのでお試し用
B. Ubuntu に手動でインストールしていく– Ubuntu 14.04 LTS にパッケージをインストール–意外と簡単なので練習用
C. クラウド上にインストール– AWS とか Azure とか、 OpenStack とか
17
A. VirtualBox+Vagrant での導入
• 「 Juju Vagrant 」でググれば OK– https://jujucharms.com/docs/devel/config-
vagrant
• Ubuntu 、 Mac OS X 、 Windows をサポート– 仮想マシンの中で Ubuntu が動けばいいの
で、多分 CentOS などでも OK
18
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– 必要なものをダウンロードしてくるので時間がかかる
19
Vagrantfile の編集• Juju が動作する仮想マシンのメモリ割り当て量を
4GB以上にする– いくつかのアプリはデフォルトでメモリを沢山要求するた
め• ~/vagrant/Vagrantfile を編集
– 行頭の # を外してコメントアウトされていた設定を有効化&メモリ容量を変更
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
20
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つ師!
21
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 を動かしてコンテナで色々なアプリを動かします– インストール時に特別何も追加しないでも大丈夫
22
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
23
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 で確認
local: type: local admin-secret: password
24
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 のターミナルで実行ホストマシン
仮想マシン
eth1 eth0192.168.56.101
en0ブラウ
ザ (Mac)
コンテナ
10.0.3.0/24
ホストオンリー NAT
lxcbr010.0.3.1 10.0.2.15
IP マスカレードインターネット
25
Juju 活用テクニック• GUI の操作はゆっくり
–操作は一発だが、実際のデプロイはパッケージのダウンロードやインストール速度に依存
• デプロイしたマシン(コンテナ)への接続– $ juju ssh ユニット名–ユニット名は「 mysql/0 」など
• 複数の Charm をとりまとめた Bandleも活用– OpenStack のような複数 Charm が必要なシステムも一括でデプロイ可能
26
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:セクションに追加
2. juju destroy-environment local を実行3. juju bootstrap を実行
Acquire::http::Proxy "http://127.0.0.1:3142/";
atp-http-proxy: http://10.0.3.1:3142/
※IP アドレスは環境によって変わる場合があります
27
Juju トラブルシューティング• juju ssh コマンドでトラブル原因を確認• デプロイに失敗したユニットを消すにはエ
ラーを先に取り除く必要がある– $ juju resolved ユニット名– resolved コマンドを連発して、とりあえず起動処理
を終わらせる• 最初からやり直したい
1. juju destroy-environment local• juju switch local を実行している場合• ~/.juju/environments.yaml は消えません
2. juju bootstrap をやり直す
28
まとめ:ここからの課題• 実際のクラウド環境への適用
– AWS 、 Azure 、 OpenStack など– Juju の操作感は基本的に変わりません
• マシン配備の MAAS と組み合わせて– MAAS:Metal as a Service
• Charm を書いてみる– GUI でパラメータ調整可能– 自分でスクリプトを書ける(言語は何でもOK )
• 外部サービス連携– 詳細設定やコンテンツを Git などから適用
29
Ubuntu Juju を使ったOpenStack 環境構築
スタッフ募集のお知らせ
日本仮想化技術株式会社は
• 仮想化技術のエキスパート集団• 進取の精神• 豊富な検証機材で新技術を追求• 自由な雰囲気の職場
募集している職種は
• サーバー・ネットワークエンジニア– LPIC 、 CCNA などの保有者歓迎
• プログラマー– オブジェクト指向言語が理解できている事– OpenStack のコードを読んだり、書いたり
• 営業・企画・マーケティング– SE 、 PL 、 PM経験者大歓迎
勤務先は?
•渋谷駅より徒歩 5分•全員がゆったりデスクとアーロンチェア
34
オフィスは渋谷駅至近日本仮想化技術
オフィス
ハチ公
渋谷駅東口
交差点信号
渋谷駅
ヒカリエの中を通ると雨の日にあまり濡れません
渋谷郵便局
優れた環境が優れた成果を生む
渋谷駅徒歩 5分の新オフィス
幅 140cm のゆったりデスクとアーロンチェアMacBook Pro/Air と大型液晶モニタが標準キーボード・マウスも自由
充実の検証環境最新機材で作業
36
充実の福利厚生
• マッサージチェア• 充実のフリードリンクコーナー
– 各種お茶類、ネスプレッソなど各種取り揃え
• 誕生日はケーキでお祝い• 雑誌年間購読制度
–何でも好きな雑誌を年間購読• 書籍購入支援制度
–好きな書籍(漫画も可)を 1 万円/年購入
38
お待ちしております