Home > CentOS | Xen | 環境構築 > kickstartによるXen(DomainU)の自動インストール~kickstartファイルの作成~

kickstartによるXen(DomainU)の自動インストール~kickstartファイルの作成~

さて、今回のメインともいえる説明に入ります。

まず、「kickstartファイル」とはなんぞや?という点について簡単に説明すると。
RedHat EnterpriseLinuxのクローンであるCentOSはインストーラーに「Anaconda」を採用しており
対話型(「グラフィカルモード」または「テキストモード」)および非対話型(以後、自動インストール)の
両方をサポートしています。
kickstartファイルとは、この自動インストールを行う際にインストーラーで自動的に設定する
各種設定パラメータを記載するファイルです。

※例えば、SELinuxの設定や、言語の設定等

記載する内容としては、基本的に対話型のインストールで設定する内容と同様ですが、
「kickstartファイル」を利用した自動インストールの場合、
インストール後に実行するスクリプトの指定等も行える為、
インストールだけではなく、モジュールの導入や設定、アカウントの作成・設定等
初期設定一式を全て自動化することが可能となる非常に便利なものです。

今回は、まずは自動インストールに関する内容のみを対象として説明します。

まず、サンプルとして私がテスト用に作成したkickstartファイルを以下に示します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
text
install
url --url http://10.1.100.20/centos/5.1/os/i386/
lang ja_JP.UTF-8
keyboard jp106
network --device eth0 --bootproto static --ip 10.1.100.160 --netmask 255.255.255.0 --gateway 10.1.100.1 --nameserver 10.1.100.1 --hostname vm06.technology-knowledge.jp
rootpw --iscrypted [rootパスワードを暗号化して設定する]
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone Asia/Tokyo
bootloader --location=mbr --driveorder=xvda --append="console=xvc0"
zerombr yes
clearpart --all --drives=xvda
part /boot --fstype ext3 --size=100 --ondisk=xvda
part pv.100000 --size=0 --grow --ondisk=xvda
volgroup VolGroup00 --pesize=32768 pv.100000
logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1024
logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
reboot
%packages
@development-libs
@editors
@japanese-support
@text-internet
@core
@base
@server-cfg
device-mapper-multipath
imake
-sysreport

以上のような内容となっています。

眺めていただくとなんとなくわかると思いますが、まずは全体の説明をします。

1行目の「text」から22行目の「reboot」までがインストールの基本パラメータとなります。
次に、23行目の「%packages」から最後の「-sysreport」までが、
インストールパッケージの指定になります。

ポイントのみ詳細な説明を入れます。

まず、3行目の「url」の設定ですが、これは、インストールイメージの位置を示しています。
私の場合は、自分で立てているサーバのURLを記載しました。
ここで、外部のサーバやCD-ROMを選択することももちろん可能です。

次に、「network」の設定です。
ここでは、「eth0」のみ設定しています。

設定されている内容は以下の通りです。

–device eth0
→ 設定するデバイスは「eth0」を指定。

–bootproto static
→ 固定IPとして「10.1.100.160」を割り当てる。

–ip 10.1.100.160
→ eth0のIPとして「10.1.100.160」を設定。

–netmask 255.255.255.0
→ サブネットマスクは「255.255.255.0」。

–gateway 10.1.100.1
→ デフォルトゲートウェイとして「10.1.100.1」を設定。

–nameserver 10.1.100.1
→ DNSとして「10.1.100.1」を設定

–hostname vm06.technology-knowledge.jp
→ ホスト名として「vm06.technology-knowledge.jp」を設定

なお、ネットワークカード(NIC)が2枚ある場合は、当然「eth1」が存在するわけですが、
その場合は、「–device」として「eth1」を指定して、上記のフォーマットで設定すればOKです。
また、当然ですが、インストールイメージをネットワーク経由で取得する場合、
ネットワーク上で通信可能であることが必須となります。

次に「rootpw」です。
これは、その名前の通りrootアカウントのパスワードを設定する項目です。
ここではオプションとして「–iscrypted」を指定し、
その後ろ(スペースを一つ挟んで)に、暗号化されたパスワードを設定します。

なお、ここで設定する暗号化したパスワードの作成方法ですが、
すでにLinuxが存在する場合は以下の方法で作成可能です。

>openssl passwd -1
>Password: [パスワードを入力します]
>Verifying – Password: [確認の為もう一度パスワードを入力します]
>[ここに暗号化したパスワードが表示されます]

パスワードとして「password」を指定した場合、以下のようになります。

暗号化パスワードの作成

※「$1$GNzwrj.z$1YHf/aVE113Z00l0Ris8X1」の部分が暗号化されたパスワード

なお、何らかの理由で暗号化パスワードが作成・設定できない場合は、
もちろん平文で設定することもできますし、
また、一時的ということであればパスワードを指定しないという設定も可能です。

次に、ディスクの設定です。
ディスクの設定は「clearpart」の部分から「logvol」までがその設定になります。

最初の「clearpart」ですが、これは対象デイバイスに存在するのパーティションを
どのようにするかということを設定しています。
ここでは「–all」が指定されていますので、全てが削除されます。

次の「part」からが実際のパーティションの設定です。
まず最初に「/boot」として100MByteを「ext3」フォーマットで「xvda」上に作成を行います。
次に、「pv.100000」として、「–grow」を設定することで残りの有効な領域全てを設定しています。
この「pv.100000」はこの時点ではマウントポイントが設定されていません。
次の行を見るとわかりますが、次の「volgroup」でVG(Volume Group)として設定しています。

※なお、「–pesize=32768」とは、PEの単位を32MByteで設定するということで、
つまり、このVGは最大2TByteまで扱えるということになります。

そして、そVG上にLVとして「swap」と「/」を作成しています。
LVとして作成する場合「volgroup」であらかじめVGを作成した上で、
「logvol」でVG上にLVを作成していきます。
「swap」については「–fstype」で「swap」を指定し、領域として1024Mを指定しています。
「/」については「–fstype」で「ext3」を指定し、領域としていったんは1024Mを指定していますが、
「–grow」が指定されている為、結果的にVG上で確保できる最大領域が割り当てられます。

さて、パーティションの設定の直前に「zerombr yes」とあります。
これは説明によると以下のように書かれています。

MBRにある不正なパーティションテーブルを初期化します。
この場合、不正なパーティション情報とともに、
ディスクにある全てのパーティション情報は破棄されます。

私が試した限りでは、この設定を入れておかないと、
インストール中にパーティション上のデータが全て削除される旨の確認が表示され、
完全に自動化することはできませんでした。

他のサイトでは上記の設定はあまり見かけないので、
もしかするといずれかの設定と依存関係にあるのかもしれませんが、
現時点では把握できていません。

そして、最後に「reboot」を記載しています。
これを記載することで、インストール終了後の再起動確認も自動で進めることができる為、
インストールが完了し、ログイン画面が表示されるまで完全に自動化できます。

以上が、インストール中の各種設定に関するパラメータとなります。

設定ファイルでは次に「%packages」で始まる部分があります。
これは、冒頭でも述べたとおりインストールパッケージに関する指定になります。
今回私が設定しているのは最小インストールで選択されると思われるパッケージとなります。

おりを見てパッケージについても少し触れてみたいと思いますが、
今回は自動インストールに関するエントリーですので、この部分の説明は割愛します。

さて、上記紹介・説明したファイルを
kickstartによるXen(DomainU)の自動インストール~インストールイメージの準備~
で説明した際に準備したWebサーバ上に配置します。

私の場合は「http://10.1.100.20/centos/5.1/Dom-vm06-ks.cfg」としてアクセス可能なように準備しました。

以上でkickstartファイルの準備は完了です。

次回は実際にXenのインストールを実施してみます。

お疲れ様でした。

Comments:0

Comment Form
Remember personal info

Trackback+Pingback:2

TrackBack URL for this entry
http://blog.technology-knowledge.jp/2008/04/13/114/trackback/
Listed below are links to weblogs that reference
kickstartによるXen(DomainU)の自動インストール~kickstartファイルの作成~ from SeeIn開発日誌
ピンバック from CentOSをネットワーク経由でインストールする日記(最終回) - IDEA*IDEA ~ 百式管理人のライフハックブログ ~ 09-04-15 (水) 12:36

[...] SeeIn開発日誌 – kickstartによるXen(DomainU)の自動インストール~kickstartファイルの作成~ [...]

トラックバック from AFTER★SE7EN 11-11-26 (土) 23:16

[物理インフラ]サーバ環境初期構築健忘録

VMWare ESXiがはいっているサーバになら、ローカルのメディアドライブをネットワークを通じてマウントして リモートでインストールできるが 実はOnboard Administratorがあるだけでは、リモー…

Home > CentOS | Xen | 環境構築 > kickstartによるXen(DomainU)の自動インストール~kickstartファイルの作成~

ブログ内検索
各種フィード
Meta

Page Top

このページの先頭へ