はじめに

ちょくちょくVMでCentosをインストールする事があり、その度に初期セットアップを繰り返すのは面倒くさいと思ったので、自動インストールできるように仕込みました。

作業前準備:
 準備したもの
  ・Centos8が入っているVM
  ・Centos8のISOイメージ
  ・必要なライブラリ

KickStartコンフィグ作成とISOイメージ作成

①Cenots8にログイン
 OSのインストール方法は以下に纏めております。

※OSインストール割愛します。

②以下のパッケージをインストール

 #dnf install -y mkisofs
 #dnf install -y curl
 #dnf install -y 


③以下のフォルダを作成し移動

 #mkdir iso
 #cd iso


④現時点で最新のCentos8.3をダウンロード

 #curl -O http://ftp.tsukuba.wide.ad.jp/Linux/centos/8.3.2011/isos/x86_64/CentOS-8.3.2011-x86_64-dvd1.iso


⑤マウントディレクトリ作成

 # mount -t iso9660 -o loop /root/iso/CentOS-8.3.2011-x86_64-dvd1.iso /mnt/centos_iso/

    mount: /mnt/centos_iso: 警告: デバイスは書き込み禁止です、読み込み専用でマウントします.

⑥マウントしたISOの中身を別のディレクトリにコピー

 #mkdir /root/base
 #cp -RT /mnt/centos_iso /root/base


⑦Centosをインストールするとroot配下に「anaconda-ks.cfg」が作成されている。
 それをコピーしcentos8.3フォルダ直下に格納する

 #cp -p /root/anaconda-ks.cfg /root/base/ks.cfg


⑧ks.cfgの編集

 #vi /root/base/ks.cfg
 ・# Use graphical install
   text
 ・IPアドレスをDHCPから取得に変更
  # Network information
  network  --bootproto=static --device=ens192 --gateway=192.168.0.1 --ip=192.168.0.116 --nameserve
r=192.168.0.1 --netmask=255.255.255.0 --ipv6=auto --activate

 
⑨編集内容に不備がないか確認する
 ※メッセージが出力されなければエラーなし。

 #ksvalidator /root/base/ks.cfg


⑩OS起動時に選択する起動メニューの追加と変更

 #vi /root/base/isolinux/isolinux.cfg

 BIOSの場合 ※注意:動作未検証です。

 ⅰ.既存のmenu defaultの行を削除
 ⅱ.以下の行を追加
   label Centos8.3AutoRun
    menu label ^Auto Install Cenots 8.3
    menu default
    kernel vmlinuz
    append initrd=initrd.img inst.stage2=cdrom: inst.ks=cdrom:  
    ※stage2のLABELは、この後にISOイメージを作成するので上記のLABEL名でISOイメージを作成します。
     ここの部分をcdrom:でも動作するみたいです。

  UEFIの場合

  #vi /root/base/EFI/BOOT/grub.cfg
  ⅰ.set default="0"
  ⅱ.最初の「menuentry」を以下の通りに変更
   menuentry 'Install CentOS Linux 8.3 Auto Run' --class fedora --class gnu-linux --class gnu --class os {
         linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS-8-3-2011-x86_64-dvd inst.ks=cdrom:/ks.cfg
         initrdefi /images/pxeboot/initrd.img
   }
   ※変更箇所は、'Install CentOS Linux 8.3 Auto Run'とinst.ks=cdrom:/ks.cfg net.

 
⑪BIOSやUEFIでブートできるようにISOファイル作成

 #cd /root/base
 #mkisofs -v -r -J -o ../CentOS-8-3.iso -V "Centos-8-3-Auto.iso" -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot  -e images/efiboot.img -no-emul-boot .

 

⑫ISOファイルが出来上がっている事を確認

 #cd /root
 #ls -l


⑬CenotsからFTPツールを使用し作成したISOファイルを自端末にダウンロード

 

KickStart

①ESXiにログイン

②VMware ESXiから新しい仮想マシンを作成
  
③仮想マシンのオプションの起動オプションにある「ファームウェア」が「EFI」である事を確認する。


④空の仮想マシンを起動し、先ほど作成したISOイメージを読み込ませる。

 

⑤ブートメニューにてデフォルトで選択されている箇所に致してEnterキーを押下する。

   ※デフォルトで「Install CentOS 8.3 Auto Run」が選択されている。

 

⑥インストール作業が開始される。

 

途中経過

 

インストール完了

 

おまけ

①ブートメニューが表示されたら十字キーの↑や↓などを押下し自動で起動するのを一時的にストップする。

 

②デフォルトで選択しているキックスタート用のメニューに対して「e」ボタンを押下するとgrub.cfgのパラメータが表示される。

 

ここで、以下のinst.ksパラメータをhttpにする事でもks.cfgを読み込ますことが可能。

linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=CentOS-8-3-2011-x86_64-dvd inst.ks=http://XXX.XXX.XXX.XXX/ks.cfg

※Webサーバの公開ディレクトリにks.cfgを配置する際は、「644」で設定するとスムーズに読み込ますことができる。

 

ここまで読んでくださって有難う御座います。

お疲れ様です。