keisyuのブログ

最近めっきりエンジニアリングしなくなった厄年のおじさんがIT技術をリハビリするブログ。

Linux自動インストール = Kickstart

昨日 VirttualBox に CentOSをインストールしてホストPC(MAC)からSSHで接続できるようにしました。
ここまでは飽きるほどやってたことなので今までやってみたことなかった Kickstart でのインストールをやってみます。

Kiskstartファイル ks.cfg

Kickstartでは自動インストールのレシピをファイル化しそれをLinuxインストール時に読み込ませて自動インストール実施します。
Kickstartファイルはあちこちでサンプルが落ちていますが、前回CentOSをインストールした時にその記録が /root/anaconda-ks.cfg に保存されています。これがKickstartファイルとして利用できます。こんな感じです。

# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
url --url=http://ftp.riken.jp/Linux/centos/6.5/os/x86_64/
lang en_US.UTF-8
keyboard jp106
network --onboot yes --device eth0 --bootproto dhcp --noipv6
network --onboot no --device eth1 --bootproto dhcp --noipv6
rootpw  --iscrypted $6$xMBrykBveErIkSvJ$CX1l27S1.jpV7kGs9RtcMgrjchmhQ4PVApun5B/w/WEDQtTkRxDsyl/KcpwZtIG7JYwuEp3Rtj2k06rXjnwhc0
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Asia/Tokyo
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --linux --drives=sda
#volgroup VolGroup --pesize=4096 pv.008002
#logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=51200
#logvol swap --name=lv_swap --vgname=VolGroup --grow --size=819 --maxsize=819

#part /boot --fstype=ext4 --size=500
#part pv.008002 --grow --size=1


repo --name="CentOS"  --baseurl=http://ftp.riken.jp/Linux/centos/6.5/os/x86_64/ --cost=100

%packages --nobase
@core
%end
  • eth1がonboot no になってますね。これを yes にすればいい感じになりそう
  • selinux --enforcing ってなってるからこれを --disabled にしたらいい感じになりそう。
  • firewallってのはiptablesのデフォルト設定みたいです。

などなど、色々なオプションはRedHadのドキュメント - 28.4. キックスタートのオプション に記載されています。

まずはKickstartを試してみることを再優先にすべくあまり編集せずに以下の3行だけ変更

network --onboot yes --device eth1 --bootproto dhcp --noipv6
firewall --disabled
selinux --disabled

このファイルをLinuxインストール時にしているんですが、どうやって読み込ませるのか色いろあるんですが(FDDやCDROMからとか)、ネットワーク越しでHTTPダウンロードさせるのが楽で慣例っぽいのでそれにする。HTTPサーバは母艦にhttpdたてるのもよし、外部のサーバからダウンロードさせるもよし、今回はGitHubに保存してそこからダウンロードさせることにします。

https://raw2.github.com/******/centos_install/master/anaconda-ks.cfg

Kiskstart での自動インストール

VirtualBoxで新規OSをエントリーするところまでは同じ。(CentOS.isoを指定したり、ホストオンリーアダプターアダプタの追加も忘れずに)
インストールCD-ROM起動直後のメニューで「esc」を押します。boot: プロンプトが出るので

> linux text ks=https://raw2.github.com/hiyuzawa/centos_install/master/anaconda-ks.cfg

として起動します。
...
...
と思ったらなぜか、「Error downloading kickstart file」って言われた。。
ホストPCにhttpd立ち上げて http://192.168.56.1/anaconda-ks.cfg だとうまくいった。(http://localhost/にしててハマった)

若干対話的な選択が残るもののおおかた自動でインストールされた。