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