annotate paper/ievirsh.tex @ 31:e3fea1bef943

add s6 and slide file
author taiki <taiki@cr.ie.u-ryukyu.ac.jp>
date Sun, 04 May 2014 16:42:01 +0900
parents 81cd898c04d4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 \section{ie-virsh}\label{section:ievirsh}
10
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
2 ie-virsh は、virsh をラップして作られた VM 管理用のツールである。学生は ssh で学科アカウントを使用してブレードサーバに接続し、ie-virsh を使用して VM を操作することができる。
0
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 表\ref{table:ievirshfunc}が ie-virsh の機能である。
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 \begin{tiny}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 \begin{table}[ht]
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 \begin{center}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 \caption{ie-virsh のコマンド}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 \label{table:ievirshfunc}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 \small
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 \begin{tabular}[t]{c|l}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 \hline
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 define & XML の template を元に domain を作成 \\
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 \hline
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 undefine & define で作成した domain を削除 \\
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 \hline
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 list & define で作成した domain を一覧表示 \\
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 \hline
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 start & 指定した domain 名の VM を起動 \\
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 \hline
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 destroy & 指定した domain 名の VM を停止 \\
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 \hline
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 dumpxml & domain の XML を参照 \\
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 \hline
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 \end{tabular}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 \end{center}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 \end{table}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 \end{tiny}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
10
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
30 ie-virsh には virsh にあるような、ネットワークの構成などの管理者側がするべき操作はなく、管理者でない学生は操作できないようになっている。また学生は、他の学生の VM を操作することもできない。
0
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
14
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
32 学生が ie-virsh を使用して VM を起動する手順はこうである。まず学生のノートPCで、VMWare や VirtualBox を使って Linux をインストールし、イメージを作成する。作成したイメージをブレードサーバにアップロードする。イメージを VirtualBox の OVF 形式から qcow2 形式に変換して指定のディレクトリに配置し、以下のコマンドを実行する。
0
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 \begin{verbatim}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 % ie-virsh define [domain name]
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 \end{verbatim}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 そうすると、template XML を元に domain が生成される。
14
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
39 ie-virsh は XML の template を持ち、その template は学生が VM のイメージをブレードサーバにアップロードして define した際に使用される。template には virsh 上で VM を使用するために必要な設定が記述されている。
18
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
40 生成された 設定 XML は KVM の所定の位置に格納される。
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
41 設定XMLには、OSFS2上の学生の固有の場所の仮想マシンイメージへのpathが記述されている。学生は、指定の位置にイメージを指定することにより任意のVMを実行することができる。
0
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 生成された domain は以下のように起動することができる。
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 \begin{verbatim}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 % ie-virsh start [domain name]
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 \end{verbatim}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47
10
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
48 自身が持っている VM の状態を、下記のコマンドで見ることができる。
0
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 \begin{verbatim}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 % ie-virsh list
14
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
52 uid 45273 gid 45273 name taiki
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
53 - test/taiki/01 shut off
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
54
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
55 - test/taiki/02 shut off
0
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 \end{verbatim}
b3fac6da3f37 add tex files
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57
10
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
58 \subsection{ie-virsh の動作環境}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
59
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
60 ホストサーバの環境は以下である。
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
61
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
62 \begin{itemize}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
63 \item OS:debian
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
64 \item CPU: Intel(R) Xeon(R) CPU X5650 @ 2.67GHz
14
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
65 \item CPU 数: 2
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
66 \item Core 数: 6 core (論理 core 24)
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
67 \item メモリ: 128GB
10
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
68 \end{itemize}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
69
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
70 SAN は Oracle Cluster Filesystem(OCFS2) でのフォーマットを行った。OCFS2 は汎用の、共有ディスククラスタファイルシステムである。一つのブロックデバイスを複数の PC から同時に読み書きすることができる。
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
71
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
72 各計算ノードがそれぞれファイルシステムへの処理を行い、ストレージに対して個別に読み書きをする。一貫性を持った読み書きを実現する機構として Distributed Lock Manager (DLM) が使われる。DLM で他の計算ノードと矛盾しないように調整しながらそれぞれの計算ノードが並行してストレージへの読み書きを行うことで、全体として一貫性のあるファイルシステムを実現している。
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
73
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
74 標準のファイルシステムインターフェイスを通じてすべてのノードが並行してストレージに読み書きできるため、クラスタにまたがって動作するアプリケーションの管理が容易になる。
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
75
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
76 OCFS2 との接続は、図\ref{fig:sanstructure}となっている。複数台のブレードサーバから OCFS2 でフォーマットされたファイルシステムへ接続し、書き込みを行う。ブレードに内蔵されている SSD では大量の VM イメージを保存するには足りないため、外部の記憶装置を利用する必要があるためである。
14
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
77 また別のブレードサーバ上に KVM をたてた場合に移行が容易になる。
10
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
78
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
79 \begin{figure}[htb]
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
80 \begin{center}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
81 \includegraphics[scale=0.6]{./images/sanstructure.pdf}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
82 \end{center}
13
0335e71f5bc8 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
83 \caption{San structure}
10
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
84 \label{fig:sanstructure}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
85 \end{figure}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
86
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
87 情報工学科では、グローバルIPアドレスを取得することができる。学生は取得したIPアドレスを使用して VM へ ssh アクセスする。そのため、virsh が作る仮想ネットワークではなく、情報工学科の DHCP サーバによって学生のIPアドレスが受け取られるように設定する必要がある。それには仮想ブリッジを配置してその問題に対処した。
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
88
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
89 図\ref{fig:serverstructure}は ie-virsh を使用して学生が VM を配置するホストの構成である。
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
90
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
91 \begin{figure}[htb]
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
92 \begin{center}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
93 \includegraphics[scale=0.6]{./images/serverstructure.pdf}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
94 \end{center}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
95 \caption{Server structure}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
96 \label{fig:serverstructure}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
97 \end{figure}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
98
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
99
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
100 \subsection{資源の制限}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
101 学生が作成する VM は、XML のテンプレートを元に作成される。テンプレートは VM にしておくべき設定が記述されており、ie-virsh はこのテンプレートを元に学生の XML ファイルを生成する。
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
102 XML template にされている設定は以下のようになる。これによって学生が使用するブレードサーバの資源を制限し、過剰なメモリや CPU の確保を防ぐ。
5
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
103
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
104 \begin{itemize}
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
105 \item ネットワークの設定
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
106 \item I/O 設定
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
107 \item VM イメージのフォーマット
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
108 \item CPU 数
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
109 \item メモリ容量
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
110 \end{itemize}
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
111
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
112 ie-virsh は XML template を元に以下の設定を追記したファイルを作成する。
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
113
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
114 \begin{itemize}
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
115 \item VM 名
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
116 \item UUID
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
117 \item VM イメージの配置
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
118 \end{itemize}
4d10be900ce8 update pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
119
10
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
120 また学生が VM を大量に作成することを防ぐため、作成できる VM の台数を4台に制限した。授業 Operating System を 60 名の学生が受講する場合、最大 240 台作成される。
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
121
14
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
122 学生の Web サービス構築の学習や、授業 Operating System で複数の学生の使用に対応するため ie-virsh はマルチユーザで動作する必要がある。情報工学科で使用されている LDAP サーバの情報を使用して、学生が学科のアカウントで ssh ログイン可能な状態に設定した。そうすることで、学生一人一人のアカウントを登録する必要がない。またアカウント名は学籍番号になっているため学籍番号で管理することができる。
10
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
123
14
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
124 複数の学生に VM を貸し出す際に管理しなければならないのは、学生が持つ権限である。ie-virsh で学生が可能なことは、自身の VM の作成・削除と、起動・停止である。すべての VM に関係する仮想ネットワークの設定や、他の学生の VM に対する操作はできないように設定した。
10
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
125
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
126 \subsection{Vagrant Box の利用}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
127
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
128 VM を使用する際は学生の PC で VM を設定し、VM イメージをアップロードさせるという形をとった。授業 Operating System では VM を学ぶ環境として学生の PC で Vagrant を使用させた。
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
129
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
130 Vagrant は異なる環境に移行可能な開発環境を簡単に構築・管理・配布することが出来る開発環境作成ツールである。手軽にテスト環境を導入することができ、変更が加わっても開発環境・本番環境に自動的に適用される。また、環境を気軽に捨てることも可能である。ホスト環境として、VirtualBox や VMWare などで動かすことができる。表\ref{table:vagrantfunc}は Vagrant で使用することの主な機能である。
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
131
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
132 \begin{tiny}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
133 \begin{table}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
134 \begin{center}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
135 \caption{vagrant の主なコマンド}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
136 \label{table:vagrantfunc}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
137 \small
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
138 \begin{tabular}[t]{c|l}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
139 \hline
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
140 up & Vagrant Box を起動 \\
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
141 \hline
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
142 destroy & 仮想マシンの削除 \\
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
143 \hline
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
144 halt & 起動している Vagrant Box の停止 \\
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
145 \hline
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
146 ssh & 起動している Vagrant Box へ ssh 接続 \\
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
147 \hline
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
148 status & ステータスの確認 \\
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
149 \hline
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
150 box add & 新しい Vagrant Box の追加 \\
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
151 \hline
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
152 \end{tabular}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
153 \end{center}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
154 \end{table}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
155 \end{tiny}
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
156
16
9fe7c82f0a9c fix pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
157 また Vagrant で仮想マシンを利用する際に、仮想マシンのベースとなるイメージファイルが Vagrant Box である。Vagrant で Vagrant Box を VM イメージとして起動し、開発環境を構築し配布することができる。また配布されている Vagrant Box を取得し、Vagrant で起動し使用することが可能である。
10
f97f6e6d0412 change pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
158
14
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
159 Vagrant は学生の PC の VirtualBox で使用させたため、Vagrant Box の VM イメージは VirtualBox に対応する OVF 形式となっていた。そのため OVF 形式から、KVM で動作する形式へ変換する必要があった。学生はブレードサーバへ VM イメージをアップロードする際、OVF 形式から KVM で動作する qcow2 形式へ変換する。
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
160
733691adea78 improve pdf
taiki <taiki@cr.ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
161 しかし Vagrant Box イメージは簡易なパスワードとユーザ名で Vagrant から管理されており、そのままブレードサーバへアップロードしグローバルIPアドレスを割り当ててしまうと、外部からの攻撃を受けてしまう。そのためブレードサーバへアップロードしたイメージを検知し、攻撃されないような設定かどうかを確認する必要がある。