0.関連記事一覧
- KickStartによる自動インストールの説明
- その1 KickStartによるOS自動インストールの全体の流れ(このエントリー)
- その2 ks.cfg設定ファイルの説明
- その3 KickStartネットワーク構成
1.はじめに
2.利用手順
2.1ファイル(ks.cfg)の編集
普通にインストールすると、rootのホームディレクトリ直下に"anaconda-ks.cfg"ファイルが作成されているので、このファイルを元に必要な部分を編集します。ファイル名は、特にこだわりがなければKickStartデフォルトの"ks.cfg"にしておくとブート時の設定が少し省けて良いです。*3
■ks.cfgの例(RHELのDVDメディアからインストールする場合の設定例)
設定内容については、こちらの記事を参照して下さい。
#version=DEVEL # System authorization information auth --enableshadow --passalgo=sha512 repo --name="Server-HighAvailability" --baseurl=file:///run/install/repo/addons/HighAvailability repo --name="Server-ResilientStorage" --baseurl=file:///run/install/repo/addons/ResilientStorage # Use CDROM installation media cdrom # Select Install mode. graphical:Use graphical install, text:Use text install. #graphical text # Run the Setup Agent on first boot firstboot --enable ignoredisk --only-use=sda # Keyboard layouts keyboard --vckeymap=jp --xlayouts='jp' # System language lang ja_JP.UTF-8 # Network information network --bootproto=dhcp --device=enp0s3 --noipv6 --activate network --hostname=testserver # Root password rootpw --iscrypted $6$WYz7GsXMGCHrJnw.$BoSTW/Ac9vaVvjwB0NVg3.sccEh2g7eZhU7c7BRRx/d8Dxoo7UE70EYyhPEBiemPLxB.Pq0StVaoDIWTWLCFx/ # System timezone timezone Asia/Tokyo --isUtc # System bootloader configuration bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda # Partition clearing information clearpart --all --initlabel --drives sda # Disk partitioning information part pv.295 --fstype="lvmpv" --ondisk=sda --size=1 --grow part /boot --fstype="xfs" --ondisk=sda --size=500 --label=boot volgroup rootvg --pesize=4096 pv.295 logvol swap --fstype="swap" --size=256 --name=swaplv --vgname=rootvg logvol /home --fstype="xfs" --size=100 --name=homelv --vgname=rootvg --label="home" logvol / --fstype="xfs" --size=1 --grow --name=rootlv --vgname=rootvg --label="root" %packages @^infrastructure-server-environment @base @compat-libraries @core @large-systems @performance @security-tools kexec-tools telnet trace-cmd vim %end �don com_redhat_kdump --enable --reserve-mb='auto' %end # Reboot after the installation is complete.(eject DVD media before rebooting) reboot --eject
2.2ファイル検証
作成したファイルは、ksvalidatorコマンドで内容を検証します。
ksvalidatorは通常はインストールされていませんので、yum/dnfコマンドでパッケージを個別にインストールします。
# yum install pykickstart
検証は以下のコマンドで実行します。
$ ksvalidator ks.cfg
KickStartのバージョン毎の構文差異を気にする場合は、インストールするOSバージョンを指定して、検証することもできます。*4
$ ksvalidator -v RHEL7 ks.cfg
2.3インストーラを起動しキックスタートをローディングする
主な方法を以下に列挙します。個人的には、ネットワークが使えるならネット(http/httpsなど)、ネットワークが使えないならフロッピー(判別しやすいから)から設定ファイルを読みこませるのがいいと思っています。
- インストーラを起動する。(私はRHELのDVDメディアからブート)
- 起動画面で"tabキー"で介入し"ks="、または"inst.ks="オプションでキックスタートファイルの場所を指定する。(下記画面参照)*5
- httpの例:"inst.ks=http://192.168.0.1/ks.cfg"
- フロッピーの例:"inst.ks=hd:fd0:/ks.cfg"
- DVDの例:"inst.ks=cdrom:/ks.cfg"
※ファイルがメディア直下で、ファイル名が"ks.cfg"の場合は、":/ks.cfg"を省略可能です。
3.補足(kickstartファイルを読み込ませるベストプラクティス)
KickStartファイルをどう読み込ませるか以外に悩みましたので、私なりの考え方を整理しました。
(2)ネットワークが使えない場合
この場合が悩ましいです。私がおすすめと思った順に記載します。
(2)-1 インストーラをカスタマイズする
インストーラのイメージをカスタマイズして、作成したファイルを組み込み自動的に読み込ませるのが一番確実で、全自動化が可能です。ですが、リビジョンや設定を変更都度に、インストールイメージを作りなおさなければならないのが手間なので、OSインストールの頻度が低い場合は逆に非効率かもしれません。
(2)-2 フロッピーから読み取る
RHELドキュメントには詳細な説明が無いのが気になりますが・・・。ですが個人的には、フロッピーが使える環境であればフロッピーから読み込ませるのが、デバイス名が"fd0"で明確なのもあり、一番無難な気がします。*6
4.リファレンス(kickstartドキュメント)
必要な情報は大方、利用するRHEL/fedoraバージョンの「インストールガイド」の終盤にある「キックスタートを使ったインストール」という章に載っています。
- RHEL
- RHEL6 インストールガイド:第32章 キックスタートを使ったインストール
- RHEL7 インストールガイド:第23章 キックスタートを使ったインストール
- Fedora
- Fedora24 Installation Guide:
- Upstream
*1:RHEL/Fedoraのインストーラであるanacondaに含まれる機能です。kickStartを含むanacondaは、redhat社の「Red Hat Installer Engineering Team」が開発しており、ソース&ドキュメントはgithub(Red Hat Installer Engineering Team · GitHub)で公開されています。
*2:以前はファイル作成用のGUIがありましたが、今は開発が放置されているので利用は推奨されないようですインストールガイド 23.2. キックスタートを使ったインストールの実行方法の重要を参照。
*3:anacondaの中のdracut用モジュールに"fetch-kickstart-disk"というシェルがあり、そこでファイルのパスのデフォルトが"/ks.cfg"と定義されています。
*4:指定できるバージョン一覧は、"ksvalidator -l dummy"コマンドで確認できます。ファイルパスの文字を何かしら入れないとエラーになるあたりが微妙ですが。
*5:どちらでも利用可能ですが、以前の書き方が"ks="で、最近は"inst.ks="が基本のようです。
*6:以前は、ks=floppyで読み込めましたが、今はks=hd:fd0のように指定します。