RHEL8 Kickstartを使ってOSの自動インストールする

環境
RHEL 8.3

概要
Kickstartは、インストール情報を定義したKickstartファイルと呼ばれるファイルを読み込ませることで自動インストールを実現する。
キックスタートファイルには、RHEL インストールオプションの一部またはすべてが含まれます。たとえば、タイムゾーン、ドライブのパーティション設定方法、

OSインストールイメージがDVDの場合、Kickstartファイルのサンプル

#version=RHEL8
# Use text install
text

# Agree EULA
eula --agreed

# Package
repo --name="AppStream" --baseurl=file:///run/install/sources/mount-0000-cdrom/AppStream

%packages
@^minimal-environment
@guest-agents
kexec-tools

%end

# Run post script
%post --logfile=/root/ks-post.log
echo 'LANG="ja_JP.UTF-8"' > /etc/locale.conf ; cat /etc/locale.conf

%end

# Keyboard layouts
keyboard --xlayouts='jp'

# System language
lang en_US.UTF-8 --addsupport=ja_JP.UTF-8

# Network information
network  --bootproto=static --device=ens192 --gateway=192.168.11.31 --ip=192.168.11.192 --nameserver=192.168.11.61,192.168.11.62 --netmask=255.255.255.0 --noipv6 --activate
network  --hostname=localhost.localdomain

# Use CDROM installation media
cdrom

# Run the Setup Agent on first boot
firstboot --enable

ignoredisk --only-use=sda
autopart
# Partition clearing information
clearpart --none --initlabel

# System timezone
timezone Asia/Tokyo --isUtc --ntpservers=192.168.33.23

# Root password
rootpw --plaintext XXXXXXXX
#rootpw --iscrypted XXXX~(省略)~XXXX

# Disable SELinux
selinux --disabled

# Disable firewalld
firewall --disabled

# Reboot after installation
reboot

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

 

インストールするパッケージなどです。事前に準備したキックスタートファイルを使用すると、ユーザーによる操作を必要としないインストールが可能になります。
これは、Red Hat Enterprise Linux を多数のシステムに一度にデプロイする場合などに特に便利です。
設定項目 設定コマンド 説明
インストールモード text インストールをGUIベース (graphical) にするか、CLIベース (text) にするかの設定。
利用規約 (EULA) への同意 eula --agreed 利用規約への同意を自動で行う設定。
リポジトリ repo インストールに使用するリポジトリのパスを指定。インストールイメージに応じて変更が必要。
パッケージ %packages%end 必要なパッケージを指定。最小インストールの場合は、@^minimal-environmentを指定。
インストール後のスクリプト実行 %post%end インストール後の処理として実行するコマンドを記載する。インストール中の文字化けを防止するため、このタイミングで言語設定をja_JP.UTF-8へ変更をしている。
キーボードレイアウト keyboard キーボードレイアウトを指定。
言語設定 lang システムの言語設定。ここでja_JP.UTF-8を選ぶと、インストールは進むものの画面表示が文字化けした状態となるため、あえてen_US.UTF-8を選択している。
ネットワーク network ホスト名やIPアドレスなどの設定。本設定を省略すると、DHCPによる設定が反映される。
インストールタイプ cdrom ISOイメージからのインストールを設定。
初期セットアップ firstboot 初期セットアップの処理を実行するかどうか。初期インストールであれば、有効にしておけば問題ない。
無視するディスク ignoredisk --drivesオプションにてインストールに関係ないディスクを無視するよう設定する。逆に特定のディスクのみを指定する場合は、--only-useを使用する。仮想環境の場合は、sdaのみ指定しておけば問題ない。
自動パーティション autopart 自動的にパーティションを設定する際に指定。
パーティション初期化 clearpart パーティションの初期化動作を指定。--initlabelオプションにて、対象ディスク (ignorediskで指定したディスク) をすべてフォーマットする。--noneはもしパーティションが存在する場合は削除しないためのオプション。
タイムゾーン timezone タイムゾーンを設定する。日本にする場合はAsia/Tokyoを選択する。RHEL 8の場合はここでNTPサーバを指定できる。その場合は、--ntpserversにて指定する。また、ハードウェアクロックをUTCの時刻とみなす際のオプションがRHEL 8は--isUtc、RHEL 9は--utcと異なるため注意する。
タイムソース timesource RHEL 9の場合は本設定項目にてタイムソースとするNTPサーバを指定する。--ntp-serverを用いて指定する。
rootパスワード rootpw 平文 (--plaintext) またはハッシュ化 (--iscrypted) した文字列でパスワードを指定できる。ハッシュ化したパスワードは、インストール済みの環境の/etc/shadowから抽出すると楽。
RHEL 9以降はデフォルトでrootログインが禁止されるため、もしrootログインを許可したい場合は、--allow-sshオプション(RHEL 9.1以降で使用可能)を付与する(RHEL 8の場合は特に指定しなくてもデフォルトでrootにてログイン可能)。
SELinux selinux SELinuxの有効化、無効化を設定。
ファイアウォール firewall firewalldの有効化、無効化を設定。
インストール後の動作 reboot インストール後に自動で再起動かける場合に指定。同時にDVDを取り出したい場合は、--ejectを付与する。
kdump %addon com_redhat_kdump%end kdumpの設定。
パスワードポリシー %anaconda%end パスワードの最小文字列などのパスワードポリシーの設定。RHEL 9からは本設定項目は非推奨となっている。

IT

Posted by arkgame