さて、今回のメインともいえる説明に入ります。
まず、「kickstartファイル」とはなんぞや?という点について簡単に説明すると。
RedHat EnterpriseLinuxのクローンであるCentOSはインストーラーに「Anaconda」を採用しており
対話型(「グラフィカルモード」または「テキストモード」)および非対話型(以後、自動インストール)の
両方をサポートしています。
kickstartファイルとは、この自動インストールを行う際にインストーラーで自動的に設定する
各種設定パラメータを記載するファイルです。
※例えば、SELinuxの設定や、言語の設定等
記載する内容としては、基本的に対話型のインストールで設定する内容と同様ですが、
「kickstartファイル」を利用した自動インストールの場合、
インストール後に実行するスクリプトの指定等も行える為、
インストールだけではなく、モジュールの導入や設定、アカウントの作成・設定等
初期設定一式を全て自動化することが可能となる非常に便利なものです。
今回は、まずは自動インストールに関する内容のみを対象として説明します。
まず、サンプルとして私がテスト用に作成したkickstartファイルを以下に示します。
-
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のインストールを実施してみます。
お疲れ様でした。
Technorati Tags: kickstart
- Newer: kickstartによるXen(DomainU)の自動インストール~Domain0からDomainU作成の実行~
- Older: kickstartによるXen(DomainU)の自動インストール~DomainUのインストール先ボリュームの作成~
Comments:0
Trackback+Pingback:1
- 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ファイルの作成~ [...]
