CentOS Kickstart 設定ファイル

Kickstartの設定ファイルについてのTipsです。

Repoを削除

以下のエラーメッセージが出た場合

Unable to read package metadata. This may be due to a missing metadata directory.
Please ensure that your install tree has been correctly generated.

Cannot retrieve repository metadata (repomd.xml) for repository: CentOS.
Please verify its path and try again

以下の行をコメントアウトする。

# repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100

/usr/lib/anaconda-runtime/implantisomd5が存在しない

yumでインストール

yum install anaconda-runtime

以下のコマンドで実行できる。

implantisomd5 custom.iso

パーティション作る前に警告を表示しないようにする

  • clearpartに–initlabelを追加
  • zerombrを追加
clearpart --all --initlabel --drives=sda
zerombr

自動で再起動する

以下の行を追加

reboot

ブート時に自動的にkickstartになるようにする

isolinux.cfgを編集する。以下の行をlabel linux行の上に追加。

label kickstart
  menu label Install Kickstart Server system
  menu default
  kernel vmlinuz
  append ks=cdrom:/ks/ks.cfg initrd=initrd.img

menu defaultは他の行である場合はその行を削除する。

自分が作成した設定ファイルです。パスワードは伏せていますのでこのまま使用することはできません。

# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
cdrom
lang ja_JP.UTF-8
keyboard jp106
network --onboot no --device eth0 --bootproto dhcp --noipv6
rootpw  --iscrypted ***secret***
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 --all --initlabel --drives=sda
clearpart --all --initlabel
zerombr
autopart

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

#volgroup vg_centosmother --pesize=4096 pv.008002
#logvol /home --fstype=ext4 --name=lv_home --vgname=vg_centosmother --grow --size=100
#logvol / --fstype=ext4 --name=lv_root --vgname=vg_centosmother --grow --size=1024 --maxsize=51200
#logvol swap --name=lv_swap --vgname=vg_centosmother --grow --size=4032 --maxsize=4032

# repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100

# Reboot after installation
reboot

%packages
@base
@cifs-file-server
@core
@debugging
@basic-desktop
@desktop-debugging
@desktop-platform
@directory-client
@fonts
@general-desktop
@graphical-admin-tools
@input-methods
@internet-applications
@internet-browser
@japanese-support
@java-platform
@legacy-x
@network-file-system-client
@office-suite
@php
@perl-runtime
@postgresql-client
@postgresql
@print-client
@remote-desktop-clients
@ruby-runtime
@server-platform
@server-policy
@web-server
@x11
pax
oddjob
wodim
sgpio
genisoimage
mtools
abrt-gui
certmonger
pam_krb5
krb5-workstation
gnome-pilot
libXmu
perl-DBD-SQLite
certmonger
perl-CGI
%end

%post --nochroot
#!/bin/sh

set -x -v
exec 1>/mnt/sysimage/root/kickstart-post-nochroot.log 2>&1

echo "==> copying files..."
cp -r /mnt/source/postinstall/* /mnt/sysimage/root/
%end

%post
#!/bin/bash

exec < /dev/tty3 > /dev/tty3
/usr/bin/chvt 3

set -x -v

# create working directory
mkdir /tmp/orainst
mkdir /tmp/postgres

# create logging directory
mkdir /tmp/orainst/logs
mkdir /tmp/postgres/logs

cd /tmp/orainst
cp -r /root/orainst/* .
bash /tmp/orainst/oracle11gxe-silent-install.sh 2>&1 | tee /tmp/orainst/logs/oraxeinstall.log

cd /tmp/postgres
cp -r /root/postgres/* .
bash /tmp/postgres/postgres-setup.sh 2>&1 | tee /tmp/postgres/logs/postgres-setup.log

mkdir /home/smb
mkdir /home/smb/share
\cp -rf /root/samba/smb.conf /etc/samba/smb.conf
chkconfig smb on
chkconfig nmb on

mkdir /home/smb/share/bkup-oracle
mkdir /home/smb/share/bkup-postgres
\cp -rf /root/backup/backup-database.sh /root/
crontab /root/backup/backup-database.crontab
cat /root/backup/backup-database.rclocal >> /etc/rc.local

chown -R nobody.nobody /home/smb
chmod -R 777 /home/smb
\cp -rf /root/selinux/config /etc/selinux/config

cd /root/munin/rpms
rpm -ivh *.rpm
\cp -rf /root/munin/etc/httpd/conf.d/munin.conf /etc/httpd/conf.d/munin.conf
chkconfig httpd on
chkconfig munin-node on

cd /root/webmin/rpms
rpm -ivh *.rpm
\cp -rf /root/webmin/config /etc/webmin/config
\cp -rf /root/webmin/miniserv.conf /etc/webmin/miniserv.conf
chkconfig webmin on

/usr/bin/chvt 1
%end