CentOS8 を Kickstart で自動インストールする
CentOS7 以前と同様、CentOS8 も Kickstart によりインストールの自動化を行うことが可能です。 今回は CentOS8 における Kickstart の実行方法をメモしておきます。 尚、作業は vSphere 上の仮想マシンで行いました。
作業の流れ¶
Kickstart を使った展開方法には大きく以下に分けられます。
- カスタマイズした Kickstart ファイルをメディアに埋め込んでしまう方法 (外部 Web サーバが不要)
- カスタマイズした Kickstart ファイルを外部 Web サーバに用意する方法 (外部 Web サーバが必要)
「2.」の方法は別途、Web サーバが必要になってしまいますが、Kickstart の内容を書き換えたい場合等に対応しやすく、柔軟です。 今回は「2.」の方法をとります。 この場合、作業は以下の流れで進めます。
- Kickstart ファイルを用意する
- Web サーバ上に Kickstart ファイルを配置する
- CentOS8 のインストーラから Web サーバ上の Kickstart ファイルを指定し、起動させる
Kickstart 用ファイルの作り方¶
Kickstart ファイルを作成する場合、最も簡単なのは「一度、手動でインストールし、/root/anaconda-ks.cfg
を利用する」ことです。 インストールが完了すると、インストール時に指定されたパラメータが /root/anaconda-ks.cfg
に記録されます。 このファイルをベースに、カスタマイズして流用するのが最も手軽です。
Kickstart ファイルを作成した後、「実際にインストールを試しては → デバッグ」は非常に面倒です。 こういった場合は ksvalidator
を使うことで Kickstart ファイルの文法を確認することが出来ます。 ksvalidator
は以下のように実行することでインストール出来ます。
1 |
|
今回はバージョン 3.16.4 がインストールされました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
ksvalidator
は以下のように実行します。
1 |
|
Kickstart ファイルのカスタマイズ例¶
カスタマイズした Kickstart ファイルの例は以下の通りです。 ポイントは下記です。
- テキストモードでインストールする (グラフィカルインストールは使わない)
- キーマップは
JP
- 言語は
en_US.UTF-8
root
ユーザのパスワードはPASSWORD
user
ユーザを作成、パスワードはPASSWORD
- SELinux は無効化する
- firewalld は無効化する
- タイムゾーンは
Asia/Tokyo
- NTP サーバは Google Time Server を指定 (
216.239.35.12
と216.239.35.8
) - パーティションは下記とする
- LVM は使わない
- ファイルシステムは
xfs
/home
ディレクトリは別パーティションにしない
- 最小構成インストールに加え、以下のパッケージをインストールする
- bash-completion
- bind-utils
- git
- lsof
- tcpdump
- tmux
- tree
- unzip
- vim-enhanced
- wget
- zip
- 全パッケージアップデートする
- dnf キャッシュを削除する
- インストールメディアを排出してから再起動する
具体的な Kickstart ファイルの内容は以下の通りです。 ファイルが用意出来たら予め用意しておいた Web サーバにアップロードしておきます。
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
|
実際に Kickstart でインストールする¶
ここからは CentOS8 インストールメディアを挿入した仮想マシンを作成し、実際に Kickstart を使ってインストールを進めます。
Step.1¶
仮想マシンの起動オプション設定は仮想マシンの 設定の編集
→ 仮想マシン オプション
→ 起動オプション
から確認することが出来ます。 デフォルトは EFI になっているはずです。 CentOS8 のインストーラは「BIOS で起動した場合」と「EFI で起動した場合」で起動画面が異なります。 今回は EFI で起動させるものとします。
Step.2¶
仮想マシンを CentOS8 のインストールメディアから起動した場合、Step.1 で説明した起動オプション (EFI or BIOS) によって以下のように起動画面が異なります。
EFI¶
EFI の場合は e
を押して起動オプションを指定することになります。
BIOS¶
BIOS の場合は TAB
を押して起動オプションを指定することになります。
Step.3¶
デフォルトでは中段の Test this media & install CentOS Linux 8.0.1905
が選択されているはずです。 最上部の Install CentOS Linux 8.0.195
がハイライトされた状態で e
を押し、次へ進みます。
Step.4¶
起動オプションが表示されます。
以下画像の赤線部分のように Kickstart 用設定ファイルが配置されている位置を指定します。 ks=~
部分の追記が完了したら、Ctrl + x
を押してインストールを開始します。 Kickstart 内でインストールが完了したら再起動するように指定してある為、しばらくすると自動的に再起動し、Kickstart で指定したパラメータでインストールされた CentOS8 が起動してくるはずです。
Kickstart の URL を入力する際、「日本語キーボードを使っているにも関わらず、US キーマップになっていて記号が上手く出来ない」場合は以下を参考に記号を入力してください。
- 「
=
」… キーボード右上、(1) の位置にある「へ
」ボタンをそのまま押す - 「
:
」…Sfhit
を押しながらキーボード右側、(2) の位置にある「れ
」ボタンを押す
インストール後の確認¶
今回は 20GB のディスクを割り当てましたが、インストール後のパーティションは以下の状態になっていました。 EFI システムなので /boot/efi
が作成されたことが分かります。 また、Kickstart で指定した通り、ファイルシステムは xfs
で作成されています。
1 2 3 4 5 6 7 |
|
ディスクの割当 (≒ 使用状況) は以下のようになっていました。 こちらも Kickstart で指定した通り、/home
は作成されていません。
1 2 3 4 5 6 7 8 9 10 |
|