OVFファイルの読み解きとカスタマイズ手順

OVFファイルの読み解きとカスタマイズ手順
日本アイ・ビー・エム株式会社
仮想アプライアンスセンター
© 2013 IBM Corporation
OVFテンプレートの詳細
ovaに含まれるovfファイル(VMの
定義)の内容。ovfファイルには
XMLで定義が書かれています。
<DiskSection>
<Info>List of Virtual Disks</Info>
<Disk ovf:capacity="6442450944" ovf:diskId="disk1"
ovf:fileRef="RHEL62_x64_LVM.vmdk"
ovf:format="http://www.vmware.com/interfaces/specifications/v
mdk.html#streamOptimized"
ovf:populatedSize="0">
<cloudburst:partition id="1" mount="/" size="5292560384"
type="ext4"
ovf:required="false"/>
<cloudburst:partition id="2" mount="" size="536862720"
type="swap" ovf:required="false"/>
</Disk>
</DiskSection>
<VirtualSystem ovf:id="RHEL62 Base Image">
<Info>RHEL62 with Sample SW Bundle</Info>
<Name>RHEL62 with Sample SW Bundle</Name>
<ProductSection>
<Info>Test SW Bundle RHEL62</Info>
<Product>Test SW Bundle RHEL62</Product>
<Vendor></Vendor>
<Version>1.0.0</Version>
</ProductSection>
ICCTではこの部分が該当する
表示となります。
1
© 2013 IBM Corporation
エンドユーザー利用許諾契約書
<EulaSection>
<Info ovf:msgid="rhel-license-info">RedHat Enterprise Linux</Info>
<License ovf:msgid="rhel-license"></License>
</EulaSection>
<EulaSection>
<Info ovf:msgid="vmware-tools-info">VMware Tools</Info>
<License ovf:msgid="vmware-tools-license"></License>
</EulaSection>
<EulaSection>
<Info ovf:msgid="my-app-license-1-info">My App License 1</Info>
<License ovf:msgid="my-app-license-1"></License>
</EulaSection>
<EulaSection>
<Info ovf:msgid="my-app-license-2-info">My App License 2</Info>
<License ovf:msgid="my-app-license-2"></License>
</EulaSection>
<EulaSection>
<Info ovf:msgid="my-app-license-3-info">My App License 3</Info>
<License ovf:msgid="my-app-license-3"></License>
</EulaSection>
<Msg ovf:msgid="my-app-license-3">Application 利用許諾&#xD;
&#xD;
これは日本語で記載した利用許諾のサンプルです。&#xD;
文字コードはUTF-8で記載し、改行コードはLFです。&#xD;
&#xD;
</Msg>
ja-JP-bundle.msgファイルには
ovfのタグに該当する部分の日本語
メッセージが書かれています。
2
© 2013 IBM Corporation
エンドユーザー利用許諾契約書の登録方法
ICCTで拡張イメージの作成時に
Add Licenseをクリックして任意
の利用許諾を追加できます。
Add Licenseをクリックするとこの画面が表示されるので、
利用許諾を記載したテキストファイルを指定します。
テキストファイルの文字コードは必ずUTF-8にしてください。
デプロイ時の言語にあわせて表示されますので、日本語の利
用許諾の場合はLanguageでJapaneseを指定します。
3
© 2013 IBM Corporation
OVFテンプレートのデプロイ ①
<ProductSection ovf:class="ConfigLocale" ovf:instance="1">
<Info ovf:msgid="ConfigLocale.label">Default locale configuration</Info>
<Product>Red Hat Enterprise Linux</Product>
<Version>5.4</Version>
<Category ovf:msgid="ConfigLocale.label">Default locale
configuration</Category>
<Property ovf:key="language" ovf:type="string" ovf:userConfigurable="true"
ovf:value="en" ovf:required="false">
<Label ovf:msgid="ConfigLocale.language.label">Default locale</Label>
<Description ovf:msgid="ConfigLocale.lanaguage.description">This is the
default locale of the operating system</Description>
</Property>
<Property ovf:key="country" ovf:type="string" ovf:userConfigurable="true"
ovf:value="US" ovf:required="false">
<Label ovf:msgid="ConfigLocale.country.label">Default country</Label>
<Description ovf:msgid="ConfigLocale.country.description">This is the
default country of the operating system</Description>
</Property>
<Property ovf:key="encoding" ovf:type="string" ovf:userConfigurable="true"
ovf:value="UTF-8" ovf:required="false">
<Label ovf:msgid="ConfigLocale.encoding.label">Default encoding</Label>
<Description ovf:msgid="ConfigLocale.encoding.description">This is the
default encoding of the operating system</Description>
</Property>
</ProductSection>
<Msg
<Msg
<Msg
<Msg
<Msg
<Msg
<Msg
<Msg
4
ovf:msgid="ConfigLocale.label">デフォルト・ロケール構成</Msg>
ovf:msgid="ConfigLocale.description">ロケール構成用のパラメーター</Msg>
ovf:msgid="ConfigLocale.language.label">デフォルト・ロケール</Msg>
ovf:msgid="ConfigLocale.lanaguage.description">これはオペレーティング・システムのデフォルト・ロケールです</Msg>
ovf:msgid="ConfigLocale.country.label">デフォルトの国</Msg>
ovf:msgid="ConfigLocale.country.description">これはオペレーティング・システムのデフォルトの国です</Msg>
ovf:msgid="ConfigLocale.encoding.label">デフォルト・エンコード</Msg>
ovf:msgid="ConfigLocale.encoding.description">これはオペレーティング・システムのデフォルト・エンコードです</Msg>
© 2013 IBM Corporation
OVFテンプレートのデプロイ ②
<ProductSection ovf:class="ConfigNET" ovf:instance="1">
<Info ovf:msgid="ConfigNET.label">System network configuration</Info>
<Product>Red Hat Enterprise Linux</Product>
<Version>5.4</Version>
<Category ovf:msgid="ConfigNET.label">System network
configuration</Category>
<Property ovf:key="bootproto" ovf:qualifiers="ValueMap{&quot;DHCP&quot;,
&quot;static&quot;}"
ovf:type="string" ovf:userConfigurable="true" ovf:value=""
ovf:required="false">
<Label ovf:msgid="ConfigNET.bootproto.label">Boot protocol</Label>
<Description ovf:msgid="ConfigNET.bootproto.description">This is the boot
protocol of the system (DHCP or static)</Description>
</Property>
<Property ovf:key="hostname" ovf:type="string" ovf:userConfigurable="true"
ovf:value="" ovf:required="false">
<Label ovf:msgid="ConfigNET.hostname.label">Host name</Label>
<Description ovf:msgid="ConfigNET.hostname.description">This is the host
name of the system</Description>
</Property>
<Property ovf:key="domain" ovf:type="string" ovf:userConfigurable="true"
ovf:value="" ovf:required="false">
<Label ovf:msgid="ConfigNET.domain.label">Domain</Label>
<Description ovf:msgid="ConfigNET.domain.description">This is the domain
of the system</Description>
</Property>
<Msg ovf:msgid="ConfigNET.label">システム・ネットワーク構成</Msg>
<Msg ovf:msgid="ConfigNET.description">ネットワーク構成用のパラメーター</Msg>
<Msg ovf:msgid="ConfigNET.bootproto.label">ブート・プロトコル</Msg>
<Msg ovf:msgid="ConfigNET.bootproto.description">これはシステムのブート・プロトコルです (DHCP または静的)</Msg>
<Msg ovf:msgid="ConfigNET.hostname.label">ホスト名</Msg> <Msg ovf:msgid="ConfigNET.hostname.description">これはシ
ステムのホスト名です</Msg>
<Msg ovf:msgid="ConfigNET.domain.label">ドメイン</Msg>
<Msg ovf:msgid="ConfigNET.domain.description">これはシステムのドメインです</Msg>
5
© 2013 IBM Corporation
OVFテンプレートのデプロイ ③
<ProductSection ovf:class="ConfigVNC" ovf:instance="1">
<Info ovf:msgid="ConfigVNC.label">VNC configuration</Info>
<Product>Red Hat Enterprise Linux</Product>
<Version>5.4</Version>
<Category ovf:msgid="ConfigVNC.label">VNC configuration</Category>
<Property ovf:key="enabled" ovf:type="boolean" ovf:userConfigurable="true"
ovf:value="true" ovf:required="false">
<Label ovf:msgid="ConfigVNC.enabled.label">Enable VNC</Label>
<Description ovf:msgid="ConfigVNC.enabled.description">Specifies whether or
not to enable VNC on the node</Description>
</Property>
<Property ovf:key="username" ovf:type="string" ovf:userConfigurable="true"
ovf:value="virtuser" ovf:required="false">
<Label ovf:msgid="ConfigVNC.username.label">VNC Username</Label>
<Description ovf:msgid="ConfigVNC.username.description">User name of the
VNC user</Description>
</Property>
<Property ovf:key="password" ovf:password="true" ovf:type="string"
ovf:userConfigurable="true"
ovf:value="" ovf:required="false">
<Label ovf:msgid="ConfigVNC.password.label">VNC Password</Label>
<Description ovf:msgid="ConfigVNC.password.description">Password of the
VNC user</Description>
</Property>
</ProductSection>
<Msg
<Msg
<Msg
<Msg
<Msg
<Msg
<Msg
<Msg
6
ovf:msgid="ConfigVNC.label">VNC 構成</Msg>
ovf:msgid="ConfigVNC.description">VNC 構成</Msg>
ovf:msgid="ConfigVNC.enabled.label">VNC を有効にする</Msg>
ovf:msgid="ConfigVNC.enabled.description">ノードで VNC を有効にするかどうかを指定します</Msg>
ovf:msgid="ConfigVNC.username.label">VNC ユーザー名</Msg>
ovf:msgid="ConfigVNC.username.description">VNC ユーザーのユーザー名</Msg>
ovf:msgid="ConfigVNC.password.label">パスワード (VNC)</Msg>
ovf:msgid="ConfigVNC.password.description">VNC ユーザーのパスワード</Msg>
© 2013 IBM Corporation
OVFテンプレートのデプロイ ④
7
<ProductSection ovf:class="configuration">
<Info>configuration</Info>
<Property ovf:key="opt1" ovf:type="string" ovf:userConfigurable="true"
ovf:value="">
<Label ovf:msgid="configuration.opt1.label">オプションパラメーター1</Label>
<Description ovf:msgid="configuration.opt1.description"></Description>
</Property>
<Property ovf:key="opt2" ovf:type="string" ovf:userConfigurable="true"
ovf:value="">
<Label ovf:msgid="configuration.opt2.label">オプションパラメーター2</Label>
<Description ovf:msgid="configuration.opt2.description"></Description>
</Property>
<Property ovf:key="opt3" ovf:type="string" ovf:userConfigurable="true"
ovf:value="">
<Label ovf:msgid="configuration.opt3.label">オプションパラメーター3(数値)
</Label>
<Description ovf:msgid="configuration.opt3.description"></Description>
</Property>
</ProductSection>
<ProductSection ovf:class="create_user">
<Info>create_user</Info>
<Property ovf:key="user" ovf:type="string" ovf:userConfigurable="true"
ovf:value="">
<Label ovf:msgid="create_user.user.label">作成するユーザー</Label>
<Description ovf:msgid="create_user.user.description"></Description>
</Property>
<Property ovf:key="password" ovf:password="true" ovf:type="string"
ovf:userConfigurable="true"
ovf:value="">
<Label ovf:msgid="create_user.password.label">新規パスワード</Label>
<Description ovf:msgid="create_user.password.description"></Description>
</Property>
<Property ovf:key="option" ovf:type="string" ovf:userConfigurable="true"
ovf:value="">
<Label ovf:msgid="create_user.option.label">適当なオプション</Label>
<Description ovf:msgid="create_user.option.description"></Description>
</Property>
</ProductSection>
© 2013 IBM Corporation
OVFファイルのカスタマイズ
tarを展開できるソフトで
OVAファイルを展開します
ovfの拡張子をovfからxmlにかえ
てエディタで編集します。編集後
はUTF-8で保存してください。保
存後に拡張子をovfに戻します。
8
ovfファイルがあるので、コ
ピーをとっておきます
© 2013 IBM Corporation
OVFファイルのカスタマイズ
9
デフォルトの”分類されていません”の
表記はこの1行で変更できます
<ProductSection ovf:class="configuration">
<Info>configuration</Info>
<Category ovf:msgid="configuration.label">オプションパラメーターの指定</Category>
<Property ovf:key="opt1" ovf:type="string" ovf:userConfigurable="true"
ovf:value="">
<Label ovf:msgid="configuration.opt1.label">オプションパラメーター1</Label>
<Description ovf:msgid="configuration.opt1.description"></Description>
</Property>
<Property ovf:key="opt2" ovf:type="string" ovf:userConfigurable="true"
ovf:value="">
<Label ovf:msgid="configuration.opt2.label">オプションパラメーター2</Label>
<Description ovf:msgid="configuration.opt2.description"></Description>
</Property>
<Property ovf:key="opt3" ovf:type="string" ovf:userConfigurable="true"
ovf:value="">
<Label ovf:msgid="configuration.opt3.label">オプションパラメーター3(数値)</Label>
<Description ovf:msgid="configuration.opt3.description"></Description>
</Property>
</ProductSection>
パラメーターの説明は
<ProductSection ovf:class="create_user">
<Description>タグ内に
<Info>create_user</Info>
記入します。デフォルトで
<Category ovf:msgid="create_user.label">新規ユーザーの作成</Category>
はタグのみです。
<Property ovf:key="user" ovf:type="string" ovf:userConfigurable="true"
ovf:value="">
<Label ovf:msgid="create_user.user.label">作成するユーザー</Label>
<Description ovf:msgid="create_user.user.description">新規作成するユーザー名を入力してください。
</Description>
</Property>
<Property ovf:key="password" ovf:password="true" ovf:type="string" ovf:userConfigurable="true"
ovf:value="">
<Label ovf:msgid="create_user.password.label">新規パスワード</Label>
<Description ovf:msgid="create_user.password.description">新規ユーザーのパスワードを入力してくださ
い。</Description>
</Property>
<Property ovf:key="option" ovf:qualifiers="ValueMap{&quot;aaaaa&quot;, &quot;bbbbb&quot;}"
ovf:type="string" ovf:userConfigurable="true" ovf:value="">
<Label ovf:msgid="create_user.option.label">適当なオプション</Label>
選択するパラメーターにした
<Description ovf:msgid="create_user.option.description">選択できるオプションのテストです。
い場合はValueMapを使用し
</Description>
ます。&quot;はHTMLの特
</Property>
殊文字で ” を表します。
</ProductSection>
© 2013 IBM Corporation
OVFファイルのカスタマイズ
チェックボックスを表示したい場合は
type=booleanを指定します。この場
合valueはtrueかfalseになります。
引数となるのは”True”か”False”と最
初が大文字になるので注意してくださ
い。
<ProductSection ovf:class="disk-mount">
<Info>disk-mount</Info>
<Category ovf:msgid="disk-mount.label">新規ディスクの追加</Category>
<Property ovf:key="execute" ovf:type="boolean" ovf:userConfigurable="true"
ovf:value="false">
<Label ovf:msgid="disk-mount.execute.label">デプロイ後にディスクの追加を行う</Label>
<Description ovf:msgid="disk-mount.execute.description"></Description>
</Property>
<Property ovf:key="device" ovf:type="string" ovf:userConfigurable="true"
ovf:value="/dev/sdb">
<Label ovf:msgid="disk-mount.device.label">追加するデバイス</Label>
<Description ovf:msgid="disk-mount.device.description"></Description>
</Property>
<Property ovf:key="fs" ovf:type="string" ovf:userConfigurable="true"
ovf:value="ext4">
<Label ovf:msgid="disk-mount.fs.label">ファイルシステム(ext3 or ext4)</Label>
<Description ovf:msgid="disk-mount.fs.description"></Description>
</Property>
<Property ovf:key="mp" ovf:type="string" ovf:userConfigurable="true"
ovf:value="">
<Label ovf:msgid="disk-mount.mp.label">マウントポイント</Label>
<Description ovf:msgid="disk-mount.mp.description"></Description>
</Property>
</ProductSection>
10
© 2013 IBM Corporation
カスタマイズ後の動作確認
編集したovfファイルがovaを展
開したディレクトリにあれば、そ
のままovfを指定してもデプロイ
できます。
11
© 2013 IBM Corporation
OVAファイルの再作成 ①
編集後のOVFファイルを含んだOVAファイルを作成します。
[root@icct-svr ~]# mkdir testsw_rhel62_1_0_0
ICCTサーバー上に任意のディレクト
[root@icct-svr ~]# cd testsw_rhel62_1_0_0
リを作成し、ICCTがエクスポートし
たOVAファイルを展開します。
[root@icct-svr testsw_rhel62_1_0_0]# ls -l
合計 1358264
-rw-r--r-- 1 root root
87726 9月 11 17:17 2013 Automation.topology
-rw------- 1 root root 1390474752 9月 11 17:20 2013 RHEL62_x64_LVM.vmdk
-rw-r--r-- 1 root root
15751 9月 11 17:17 2013 Semantic.topology
-rw-r--r-- 1 root root
20687 9月 11 17:20 2013 de-DE-bundle.msg
-rw-r--r-- 1 root root
18526 9月 11 17:20 2013 en-US-bundle.msg
-rw-r--r-- 1 root root
20364 9月 11 17:20 2013 es-ES-bundle.msg
-rw-r--r-- 1 root root
20534 9月 11 17:20 2013 fr-FR-bundle.msg
-rw-r--r-- 1 root root
20138 9月 11 17:20 2013 it-IT-bundle.msg
-rw-r--r-- 1 root root
23820 9月 11 17:20 2013 ja-JP-bundle.msg
-rw-r--r-- 1 root root
19114 9月 11 17:20 2013 ko-KR-bundle.msg
-rw-r--r-- 1 root root
15090 9月 11 17:17 2013 osNode1378887469149.xml
-rw-r--r-- 1 root root
13721 9月 11 17:17 2013 osNode1378887469149C.xml
-rw-r--r-- 1 root root
20204 9月 11 17:20 2013 pt-BR-bundle.msg
-rw-r--r-- 1 root root
22249 9月 11 17:20 2013 testsw_rhel62_1_0_0.ovf
-rw-r--r-- 1 root root
16875 9月 11 17:20 2013 zh-CN-bundle.msg
-rw-r--r-- 1 root root
18395 9月 11 17:20 2013 zh-TW-bundle.msg
[root@icct-svr testsw_rhel62_1_0_0]#
12
© 2013 IBM Corporation
OVAファイルの再作成 ②
SSHクライアントでICCTサーバーに接続し、カスタマイズしたOVFファイルを上書きでコ
ピーします。
コピー
ICCTサーバー上でOVAファイルを
展開したディレクトリにカスタマイ
ズしたOVFファイルを上書きでコ
ピーします。
13
© 2013 IBM Corporation
OVAファイルの再作成 ③
tarコマンドでアーカイブを作成します。この際ファイルを指定する順序が重要です。必ず
OVFファイルを最初に指定してください。
[root@icct-svr testsw_rhel62_1_0_0]# tar cvf testsw_rhel62_1_0_0.ova testsw_rhel62_1_0_0.ovf *.msg
Automation.topology Semantic.topology *.vmdk *.xml
testsw_rhel62_1_0_0.ovf
こちらは元のファイルと同じファイル
de-DE-bundle.msg
順序になるコマンドです。
en-US-bundle.msg
正しく指定すると1行目にOVFファイル
tar cvf <OVAファイル名> xxx.ovf
の名前がリストされます。
es-ES-bundle.msg
のように必ず最初にOVFを指定してく
fr-FR-bundle.msg
ださい。
it-IT-bundle.msg
ja-JP-bundle.msg
ko-KR-bundle.msg
pt-BR-bundle.msg
zh-CN-bundle.msg
zh-TW-bundle.msg
Automation.topology
Semantic.topology
RHEL62_x64_LVM.vmdk
osNode1378887469149.xml
osNode1378887469149C.xml
[root@icct-svr testsw_rhel62_1_0_0]#
完成したOVAファイル
はSSHで取得します。
14
© 2013 IBM Corporation
OVAファイルの動作確認
作成したOVAファイルを指定して
デプロイの動作確認をします。
このエラーが出る場合はOVFファ
イルの順番がおかしいので、ファ
イルの順序に注意してOVAの再作
成を行ってください。
15
© 2013 IBM Corporation