4 Kickstartの使用によるインストールの自動化
Kickstart機能を使用すると、OSのインストールを自動化できます。Kickstartインストールでは、インストーラに特定のインストールの実装方法を指示する構成ファイルが使用されます。この機能には、次の利点があります。
-
インストール・プロセスの間にユーザーによる操作が不要です。
-
複数のシステムへのインストールが容易になります。
-
この構成ファイルは、インストールしたシステムのブート時の問題のトラブルシューティングに役立ちます。
Kickstartを使用してOracle Linuxをローカルにインストールできます。ただし、この機能が最も役立つのは、ネットワーク経由で複数のシステムにOSをインストールする場合です。ネットワーク・インストールの場合、Kickstartの運用には次の構成要素があります。
-
Kickstart構成ファイル
-
様々なクライアント・システムがそのクライアント固有の必要なインストールおよび構成ファイルにアクセスできるようにするための接続性の提供など、ネットワーク・インストールをサポートしている、構成済ネットワーク。
ネットワーク・インストールの構成例は、ネットワーク・インストール設定の作成を参照してください。
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=OL9
# Firewall configuration
firewall --enabled --service=ssh
# Use Oracle Linux yum server repositories as installation source
repo --name="ol9_AppStream" --baseurl="https://yum.oracle.com/repo/OracleLinux/OL9/appstream/x86_64/"
repo --name="ol9_UEKR7" --baseurl="https://yum.oracle.com/repo/OracleLinux/OL9/UEKR7/x86_64/"
url --url="https://yum.oracle.com/repo/OracleLinux/OL9/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
コマンドを使用します。このコマンドでは、インストール済のパッケージ・グループと、インストール可能なパッケージ・グループが両方とも表示されます。
複数のパッケージを指定するには、ワイルドカード文字(*
)を使用します。パッケージをインストールから除外するには、パッケージ名に接頭辞として-
文字を挿入します。
%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のファイル・システムに保存します。このシステムはメモリー内にramdiskとして存在します。
インクルードされたスクリプトまたはファイルは、指定されたパスまたはURLでアクセス可能である必要があります。ホストの特定に使用できるネーム・サービスがない場合は、IPアドレスを使用します。
インストール後オプション
インストール後オプションにより、インストールの最後にインストーラによって実行されるアクションを定義します。このオプション・グループの構成は任意です。
これらのオプションは%post
見出しの下にあり、%end
行で終了します。
Oracle Linux 9以降、root
アカウントはデフォルトでロックされています。システムへのSSH rootログインを有効にする場合は、次の行をKickstartファイルに追加します。
%post
echo "PermitRootLogin yes" > /etc/ssh/sshd_config.d/01-permitrootlogin.conf
%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.mydom.com/scripts/post-config
.
.
.
%end
Kickstartインストールの開始
Kickstartインストールを開始するには、次の準備が完了していることを確認します。
-
ローカルのCD-ROMドライブまたはUSBドライブにある、完全インストール・メディアへのアクセス。メディア準備に関する説明を参照してください。
-
Kickstart構成ファイルへのアクセス。
ネットワーク経由のインストール
- システムをブートします。
- ブート・シーケンスの間に、システムのBIOSにアクセスします。
- BIOS画面で、システム設定を、ネットワークからブートするように変更します。
- 変更内容を保存し、ブート・プロセスを続行します。
- ブート・メニューが表示されたら、インストール・オプションを選択してから、[
E
] (UEFIベースのシステム)または[Tab] (BIOSベースのシステム)を押してブート・プロンプトにアクセスします。 - ネットワーク内のKickstartファイルの場所を追加します。この場所により、ネットワーク・サーバーのプロトコル、およびFQDNまたはIPアドレスを指定する必要があります。たとえば、NFSサーバーを使用している場合は、次の行を入力します。
この構成ファイルのネットワーク位置を特定するためのその他の例は、インストール・ソースを参照してください。nfs:options:fqdn/path-to-file
ノート:
ネットワークからのインストールのもう1つの方法は、ブート・サーバーの使用です。このシナリオでは、システムをオンにするとインストールが自動的に開始されます。ネットワーク・インストール設定の作成を参照してください。 -
ブート構成の修正内容を保存し、ブート・プロセスを続行します。
ブート・プロセスが終わると、すぐにインストールが続行されます。
ローカルでのインストール
-
システムをローカルのブート・メディアからブートします。
-
ブート・メニューが表示されたら、インストール・オプションを選択してから、[
E
] (UEFIベースのシステム)または[Tab] (BIOSベースのシステム)を押してブート・プロンプトにアクセスします。 - Kickstartファイルの場所を特定する適切なオプションを追加します。次に例を示します。
inst.ks=cdrom:/dev/sbd1/tmp/ks.cfg
ブート・オプションの詳細は、ブート・ローダーの動作のカスタマイズを参照してください。
-
ブート構成の修正内容を保存し、ブート・プロセスを続行します。
ブート・プロセスが終わると、すぐにインストールが続行されます。