Kickstart構成ファイルのカスタマイズ
Kickstart構成ファイルは、オプションおよびパラメータ定義の形式でのインストール指示からなります。
Kickstart構成ファイルを作成するには、次のいずれかの方法を選択します:
-
既存のOracle Linuxシステムの
/root/anaconda-ks.cfg
ファイルを使用します。Oracle Linuxインストールごとに、
/root/anaconda-ks.cfg
というファイルが作成されます。このファイルには、Oracle Linuxのインストール先でありKickstartで読み取リ可能なシステムに基づいた、構成定義が含まれています。したがって、このファイルは、そのままその他のインストールに使用することも、特定のターゲット・システムの各種インストールを自動化するためのテンプレートとして使用することもできます。テンプレートとして使用する場合は、このファイルの内容を、その他のOracle Linuxインストールに適用できるように修正する必要があります(特定のクライアントにどのOSバージョンをインストールするかなど)。
システムに
pykickstart
パッケージが含まれている場合は、次のツールが、このファイルの内容を修正する際に役立ちます。-
ksverdiff
により、削除済か非推奨のオプションを特定します。 -
ksvalidator
により、ファイル内の構文が正しいことを確認します。
-
-
Oracle Linuxリリースを手動でインストールします。それにより、
/root/anaconda-ks.cfg
ファイルが生成されます。このファイルを使用して、同じOracle Linuxリリースをその他のクライアントに自動的にインストールします。これらのクライアントへの指定内容によっては、このファイルの構成オプションを調整することが必要になる場合があります。
詳細は、https://pykickstart.readthedocs.io/en/latest/を参照してください。
この構成ファイルは、次の部分に分かれています。各部分には、次のようなオプション・グループが含まれています。
インストール・オプション
インストール・オプションにより、システム記憶域、キーボード定義、言語設定、ネットワーク情報などのパラメータを定義します。次の例で太字で示したオプション定義は、PXEでネットワーク・インタフェースを起動できるようにするためにあり、ネットワーク・インストールにおいて重要となります。
ノート:
UEKでサポートされているBtrfsファイル・システムを使用するには、Btrfsインストールの章の説明に従ってUEKインストール・メディアを使用していることを確認してください。その後、次の例で# Partition Information
の下に示すように、autopart
Kickstartオプションにより、自動的に、Btrfsを使用してディスクをパーティション化できます。
ローカル・ミラー・リポジトリを使用している場合は、これらが最新であること、およびBtfrsが機能するために必要なUEKリポジトリがKickstart構成に含まれていることを確認してください。Oracle Linux yumサーバーを使用して必要なリポジトリをミラー化するか、Oracle Linux yumサーバーにアクセスできない場合は、完全インストールISOに含まれているリポジトリをミラー化できますが、UEKインストールISOを使用してインストーラを起動する必要があります。次の例では、システムがインターネットにアクセスできると想定され、公開されているOracle Linux yumサーバー・リポジトリが直接使用されます。
または、上流のドキュメント内の説明に従って、Btrfsを使用するように、手動でディスクをパーティション化します。
#platform=x86, AMD64, or Intel EM64T
#version=OL8
# Firewall configuration
firewall --enabled --service=ssh
# Install OS instead of upgrade
install
# Use Oracle Linux yum server repositories as installation source
repo --name="ol8_AppStream" --baseurl="https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/"
repo --name="ol8_UEKR7" --baseurl="https://yum.oracle.com/repo/OracleLinux/OL8/UEKR7/x86_64/"
url --url="https://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64"
# Root password
rootpw --iscrypted SHA512_password_hash
# Use graphical install
graphical
firstboot --disable
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8
# SELinux configuration
selinux --enforcing
# Installation logging level
logging --level=info
# System timezone
timezone America/Los_Angeles
# Network information
network --bootproto=dhcp --device=em1 --onboot=yes --hostname=hostname
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
# Non-administrative user
user --name=user --homedir=/home/user --password=SHA512_password_hash --iscrypted
# Partition information
clearpart --all --initlabel --drives=sda
autopart --type=btrfs
インストールするパッケージ
インストールするパッケージは、%packages
というグループ見出しの下に一覧表示されます。このリストは%end
という行で終了します。
%packages
@base
@core
@desktop-debugging
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@multimedia
@print-client
@print-server
@x11
mtools
pax
python-dmidecode
oddjob
wodim
sgpio
genisoimage
device-mapper-persistent-data
abrt-gui
samba-winbind
certmonger
openldap-clients
pam_krb5
krb5-workstation
ldapjdk
slapi-nis
libXmu
perl-DBD-SQLite
perl-Mozilla-LDAP
%end
このリストには、パッケージ・グループと個々のパッケージが含まれています。パッケージ・グループの名前には、個々のパッケージと区別するために@base
のように@
という接頭辞が使用されています。
このファイルに含めるパッケージを特定するには、既存のOracle Linuxサーバーでdnf group list
コマンドを使用します。このコマンドでは、インストール済のパッケージ・グループと、インストール可能なパッケージ・グループが両方とも表示されます。
1つの一致に複数のパッケージを指定するには、ワイルドカード文字(*
)を使用できます。パッケージをインストールから除外するには、パッケージ名に接頭辞として-
文字を挿入します。
%packages
キーワードには、複数のオプションを指定できます。たとえば、次のオプションが便利です。
-
--ignoremissing
-
使用可能なパッケージを、不足パッケージに関するプロンプトを表示せずにインストールします。このオプションを指定しなかった場合、Kickstartによりインストールが中断され、インストールを続行するか取り消すかを尋ねるプロンプトが表示されます。
-
--multilib
-
32ビットのパッケージをシステムにインストールできるように、
dnf
構成のmultilib
ポリシーをall
に設定します。
パッケージをこの構成ファイルに直接リストするかわりに、これらの名前を1つのファイルにまとめ、アクセス可能な場所にそれを格納できます。たとえば、ローカルでKickstartのRAMディスク・ファイル・システムに、またはHTTPサーバーかNFS共有に格納できます。その後、構成ファイルにおいて、%include
文でそのリストへのフルパスを指定します。次に例を示します。
%packages --ignoremissing
%include /tmp/package-list
%end
インストール前オプション
インストール前オプションにより、インストール・プロセスの開始前にインストーラで実行する必要がある操作を定義します。このオプション・グループの構成は任意です。これらのオプションは%pre
見出しの下にあり、%end
行で終了します。
次の例では、インストーラに、HTTPサーバーに格納されているスクリプトconfig-partitions
を実行するように指示しています。さらに、インストーラで、%packages
セクションにある%include /tmp/package-list
文で使用するためにWebサーバーからパッケージのリストをダウンロードする必要があります。
%pre
%include http://192.168.1.100/scripts/config-partitions
wget -q -O- http://192.168.1.100/scripts/package-list > /tmp/package-list
%end
この例では、wget
コマンドがパッケージ・リストをKickstartのファイル・システムに保存します。このシステムはメモリー内にRAMディスクとして存在します。
インクルードされたスクリプトまたはファイルは、指定されたパスまたはURLでアクセス可能である必要があります。ホストの特定に使用できるネーム・サービスがない場合は、IPアドレスを使用します。
インストール後オプション
インストール後オプションにより、インストールの最後にインストーラによって実行されるアクションを定義します。このオプション・グループの構成は任意です。
これらのオプションは%post
見出しの下にあり、%end
行で終了します。
デフォルトでは、Kickstartにより、新しくインストールされたシステムのルート・ファイル・システムに基づくchroot
環境でインストール後タスクが実行されます。chroot
環境外のファイルにアクセスする必要がある場合は、%post
行に--nochroot
オプションを指定します。これで、/mnt/sysimage
にマウントされている新しくインストールされたシステムのrootファイル・システムでKickstartファイル・システム内のファイルにアクセスできます。
次の例では、スクリプト/tmp/post-config
がインストールの最後に実行されます。
%post --nochroot
%include /tmp/post-config
%end
インストールされたシステムのネットワーク・インタフェースを、DHCPを使用してその設定を取得するように構成する場合、ドメイン名のかわりにIPアドレスを使用するか一時resolv.conf
ファイルを設定する必要があります。たとえば:
%post
wget -q -O- http://192.168.1.100/scripts/resolv.conf > /etc/resolv.conf
%include http://instsvr.example.com/scripts/post-config
.
.
.
%end