🌊

alma9のkickstart

2024/02/05に公開

趣旨

クラウドとコンテナに慣れすぎてそもそもオペレーション忘れてそうだったのと、
現業環境がesxi最新なのに使い方がレガシーだとテンション上がらんなぁと思ったので、
ansible + ESXi(無償版)+ kickstartを自動化して少しでもawsっぽくしたいなぁと思うに至りました。

初期ステップとしてalmalinux9でkickstartを使ったisoを作りました。
手順はまぁいろんな人が書いてますし、何か起こってもまぁRHELのドキュメントだけで何とかなりそうな気がするので、自分が気になったポイントだけ。
(EFI前提なので、isolinux.cfgはいじってないです。)

ポイント

  1. treeinfoとか

いろんな手順で、isoをmount → コピーするときに、
.discinfoとか.treeinfoに触れてる手順があんまりなさそうですが、
重要というか、無いとコケるのでコピーできてるか見たほうがいいと思います。
自分は忘れててハマりました。

# ls .treeinfo
.treeinfo
  1. grubの設定
    /EFI/BOOT/grub.cfgに以下を追記
    追記個所は、2つめです。
    これは、set default="1"だからそれに合わせただけです。
    「kickstart」版の追記したのはもしかして手動で入れるときもあるかも?と、
    単にわかりやすいからなので好きにどうぞ。
    最初に選択されてるとこなら要するにどこでもいいです。)
menuentry 'Install AlmaLinux 9.3 kickstart' --class fedora --class gnu-linux --class gnu --class os {
        linuxefi /images/pxeboot/vmlinuz inst.repo=cdrom inst.ks=cdrom:/ks.cfg quiet
        initrdefi /images/pxeboot/initrd.img
}

ポイントとしては、inst.repoに書き換え&cdromに向けている点、inst.ksを追記してks.cfgを指定している点です。

timeout値はお好みで

set timeout=XX
  1. ks.cfg

実際、anaconda-ks.cfgをまんまもってけばほぼ完成で、追記必須はrepoくらいなのかな?と思ってます。

# Generated by avot

# text install
text

# local repo
repo --name="Minimal" --baseurl=file:///run/install/sources/mount-0000-cdrom/Minimal

# kdump irane
%addon com_redhat_kdump --disable

%end

# Keyboard layouts
keyboard --xlayouts='jp'

# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --noipv6 --activate --onboot=on

# Use CDROM installation media
cdrom

# install packages
%packages
@^minimal-environment

%end

# Run the Setup Agent on first boot
firstboot --enable

# Generated using Blivet version 3.6.0
ignoredisk --only-use=sda
autopart
# Partition clearing information
zerombr
clearpart --none --initlabel

# System timezone
timezone Asia/Tokyo --utc

# Root password
rootpw --iscrypted XXXXXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

# post scripts
%post --log=/root/yum-install.log
 yum install -y vim
%end

# reboot
reboot --eject

passewordは適当に

まとめ

実際はもっときれいに追記じゃなくて書き換えたり、素敵なコメント入れたり、
不要なものを削って容量を減らしたり、逆にpostscript作りこんだり、とかも昔はしてた気がsるんですが、ansibleでいいな?と思ったのでそういう時代じゃないな?ということにしました。

おまけ

iso作った時のコマンドのオプションはこれです。EFIを付けたのはEFIじゃないとダメだよを一応わからせるためです。

mkisofs -v -r -J -T -l -input-charset utf-8 -o ../[output-name]-EFI.iso -e images/efiboot.img -no-emul-boot  ./

上記に続きbios版は無視したオプションですのでよしなに。

Discussion