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からは本設定項目は非推奨となっている。 |