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