kickstart で RHEL8 のインストールを自動化する


Red Hat Enterprise Linux 8 の自動インストール

RHEL 系のシステムでは、 2019 年 5 月 7 日にリリースされた Red Hat Enterprise Linux 8 が今後の主流になるでしょう。 先を見据えて、どんな OS なのか触ってみたい人もいるのではないでしょうか。今回は kickstart を使用して RHEL8 の自動インストールを検証してみました。

手順書にたくさんハードコピーを貼ったり、 PC に張り付いてページ数の多い手順書を見ながら GUI をポチポチしたり、インストール作業のエビデンスのハードコピーを取り忘れてモチベーションが上がらないインストールのやり直しをするために夜遅くまで残りたくない。
と思っている人も多いはず。働き方改革の時代には、どの現場でも自動化のニーズが高いのでは。

キックスタートファイルの作成

  1. Kickstart Generator で、キックスタートファイルを作成します。

  2. 作成したキックスタートファイルをカスタマイズします。今回の検証では、以下のようにキックスタートファイルをカスタマイズ 1 しました。

    ks.cfg
    # Copyright (c) 2019 sakitics.
    #
    #version = rhel8
    
    # Installation logging level
    logging --level=debug
    
    # System language
    lang ja_JP.UTF-8
    
    # Keyboard layouts
    keyboard --vckeymap=jp --xlayouts='jp'
    
    # System services
    services --enabled="chronyd"
    
    # System timezone
    timezone Asia/Tokyo --isUtc
    
    # Root password
    rootpw --iscrypted $6$47tP9FcKFDmmvNJF$AMl5WnJNyARcG4v9kFXwOjADhVqs5mc54T7M4QQSi9DehpebTtHM8FLtxXVAwjlrENTSBcNfZtLecMMEn/UrQ1
    
    #platform x86, AMD64, or Intel EM64T
    
    # Shutdown after installation
    shutdown --eject
    
    # Use text mode install
    text
    
    # Use CDROM installation media
    cdrom
    
    ignoredisk --only-use=sdb
    
    # System bootloader configuration
    bootloader --location=mbr --append="crashkernel=auto" --boot-drive=sdb
    
    # Clear the Master Boot Record
    zerombr
    
    # Partition clearing information
    clearpart --all --initlabel --drives=sdb
    
    autopart --type=lvm
    
    # Network information
    network --bootproto=dhcp --device=enp0s3 --noipv6 --activate --onboot=yes
    network --bootproto=static --device=enp0s8 --gateway=192.168.33.1 --ip=192.168.33.101 --netmask=255.255.255.0 --ipv6=auto --activate --onboot=yes
    network --hostname=ROBOCODE
    
    # System authorization information
    auth --passalgo=sha512 --useshadow
    
    # SELinux configuration
    selinux --enforcing
    firewall --enabled --ftp --ssh
    
    # Do not configure the X Window System
    skipx
    
    # Run the Setup Agent on first boot
    firstboot --disable
    
    %packages
    @standard
    @^server-product-environment
    kexec-tools
    %end
    
    %addon com_redhat_kdump --enable --reserve-mb='auto'
    %end
    

インストール

  1. Red Hat Enterprise Linux for x86_64 のインストールメディアをサーバにマウントします。

  2. サーバの電源を投入します。

  3. Press Tab for full configuration options on menu items. のメッセージが表示されたら、 Tab キーを押します。

  4. キックスタートファイルを保存した USB をサーバにマウントします。

  5. 起動オプションに、以下のオプション 2 3 4 を追加します。

    inst.ks=hd:UUID=<UUID>:ks.cfg
    

  6. Enter キーを押して、しばらくするとインストールが開始されます。

  7. インストールが完了すると、サーバがシャットダウンされます。

  8. Red Hat Enterprise Linux for x86_64 のインストールメディアをサーバからアンマウントします。

  9. キックスタートファイルを保存した USB をサーバからアンマウントします。

  10. サーバの電源を投入します。

  11. Red Hat Enterprise Linux が起動することを確認します。

実際にやってみた

デモンストレーション

この手順は、以下の技術情報をもとに作成されています

ひとりごと

マニュアルを Word か Excel で作れって言われるけど、 diff 取りずらいし、 sed とか grep で複数のファイルを一括処理!!みたいなことも難しい。 linter 使えないから、汎用的じゃないチェック用のマクロが量産されて、ときにはサーバを操作したこともない人が作ったマクロとテンプレートを強要されてもやもやする。
マニュアルを渡されたオペレータは Word や Excel から実行するコマンドを抜き出して、一生懸命テキストファイルに貼り付けてる。
コストをかけて作った Word や Excel のマニュアルは、かけたコスト以上の価値を生み出せているんだろうか。。。
Markdown とか reStructuredText で作れば、いろんなことが解決できそう。


  1. 既存のディスクをクリアしてインストールします。 

  2. UUID には、接続した USB の UUID を指定します。 

  3. すでに入力されている起動オプションは変更しないでください。 

  4. 起動オプションを追加する場合は、半角空白を入力してから追加してください。