kickstart auto install system
kickstart auto install
无人值守自动化安装系统的必要条件
机器要有一个支持pxe(网络引导)的网卡
网络中必须存在相应的服务器
dhcp服务器:分配IP和指定下载引导代码的地址信息
tftp服务器: 提供引导代码的下载、提供安装向导的内核和驱动镜像文件
安装源服务器: 可以是ftp,http,nfs的形式提供,提供安装所需要的所有文件(来自系统光盘)
没有dhcp功能的隔离网络—> 用于测试网络安装的机器
静态IP
无人值守的原理:
设定机器使用网卡进行引导
开机,bois决定使用网卡引导,让网卡广播一个dhcp的请求数据包,期望dhcp服务器给本机分配一个IP(网络通信需要的IP信息/
掩码等)并且告诉本机从哪个ip对应tftp服务器去下载引导代码
引导代码下载完毕之后,bios就把执行权限交给了引导代码,引导代码开始执行
引导代码执行之后: 读取引导配置文件去tftp服务器下载安装系统向导界面(其实也是一个专用的操作系统)所需要的内核和驱动镜像
引导程序的任务已经完成了,现在开始去执行内核(安装向导界面系统的内核),并且加载相应的驱动
可以在执行内核的时候传递一个ks的内核参数,告诉内核去根据该参数指定的配置文件,自动完成剩下安装步骤
在安装系统的过程中,所需要所有程序、文件都是来自网络中的服务器(ftp,http,nfs)
TOOL:
此实验目前是在 centos 6.7 x64 上测试。
材料: centos 6 / dhcp / tftp / http
PC:
KS IP: 192.168.110.2
Client ip is none … / wait KS dhcp install centos system.
一、 centos HTTP web file
# mkdir -p /var/www/html/os
# mount /dev/cdrom /var/www/html/os
# vim /etc/fstab
/path/to/centos6.7.iso /var/www/html/os/ iso9660 defaults,ro,loop 0 0
# mkdir -p /var/www/html/os
# mount /path/to/centos6.7.iso /mnt
# cp -a /mnt/* /var/www/html/os
# vim /etc/yum.repos.d/centos-source.repo
[Base]
name=Base
baseurl=file:///var/www/html/os
gpgcheck=0
enabled=1
# yum install httpd -y
OR:
# yum reinstall httpd -y
# chkconfig httpd on
确保selinux是关闭的
# getenforce
# setenforce 0
setenforce: SELinux is disabled
# service httpd restart
test okay.
二、 DHCP install servers.
# yum install dhcp -y
# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
# vim /etc/dhcp/dhcpd.conf
option domain-name “www.jbboo.com”;
default-lease-time 600;
max-lease-time 7200;
添加以下两行
allow booting;
allow bootp; log-facility local7;
subnet 192.168.110.0 netmask 255.255.255.0 {
range 192.168.110.100 192.168.110.200;
next-server 192.168.110.2;
#指定tftp服务器的ip,就是kickstart本机的
filename “pxelinux.0”;
#指定引导代码文件的名字
option routers 192.168.110.1;
}
# chkconfig dhcpd on
# service dhcpd start
三、 Install tftp servers.
# yum install tftp-server xinetd -y
# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
# chkconfig xinetd on
# service xinetd restart
# lsof -i:69
- COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
- xinetd 2385 root 5u IPv4 12615 0t0 UDP *:tftp
四、引导代码
部署tftp上的引导代码以及引导配置文件
# yum install syslinux -y
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
# cp /var/www/html/os/isolinux/* /var/lib/tftpboot/
# ls /var/lib/tftpboot
boot.cat
>> initrd.img(安装向导的驱动)
memtest
splash.jpg
vmlinuz(安装向导的内核)
boot.msg
isolinux.bin
pxelinux.0
TRANS.TBL
grub.conf
isolinux.cfg
pxelinux.cfg
vesamenu.c32
# mkdir /var/lib/tftpboot/pxelinux.cfg
# cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
五、编辑引导配置文件
label mylinux
# label mylinux与其他条目区分开
menu label ^Kickstar install centos6
# menu显示的条目的名字 centos6
menu default
# menu 把其他label条目下的menu default注释掉
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.110.2/ks/ct6.cfg
# ks告诉安装向导的内核,去哪里下载无人值守安装脚本
编辑kickstar配置文件 确定执行创建配置文件的工具的系统已经配置好相应系统的yum源
六、 install kickstart
# yum install system-config-kickstart pykickstart -y
# mkdir /var/www/html/ks
# system-config-kickstart
生成配置文件之后,把配置文件保存服务器上,保证可以通过http://192.168.110.2/ks/os6.cfg获得
or export so6.cfg contents:
# basic configuration
install
lang zh_CN
keyboard us
timezone Asia/Chongqing
rootpw --iscrypted $1$MBmhHOa1$U/HipMT.BB4Y17tQZgJPW0
# Display configuration
text
skipx
# Authentication
authconfig --enabledshadow --enablemd5
# Installation method
url --url="http://192.168.31.10/os/ct5"
logging --level=info
reboot
# Boot Loader Options
bootloader --location=mbr
# Partition Information
zerombr
clearpart --all --initlabel
part /boot --fstype="ext3" --size=100
part / --fstype="ext3" --size=5000
part swap --fstype="swap" --size=512
# Network Configuration
network --onboot=yes --bootproto=dhcp --device=eth0 --noipv6 --hostname minimal
# Firewall Configuration
firewall --disabled
selinux --disabled
# Package Selection
%packages
audit-libs
basesystem
bash
binutils
bzip2
bzip2-libs
centos-release
centos-release-notes
chkconfig
coreutils
cpio
cracklib
cracklib-dicts
crontabs
cyrus-sasl-lib
db4
device-mapper
device-mapper-event
device-mapper-multipath
dhclient
diffutils
dmraid
dmraid-events
e2fsprogs
e2fsprogs-libs
elfutils-libelf
ethtool
expat
filesystem
findutils
fipscheck
fipscheck-lib
gawk
gdbm
glib2
glibc
glibc-common
grep
grub
gzip
hmaccalc
info
initscripts
iproute
iputils
iscsi-initiator-utils
kbd
kernel
keyutils-libs
kpartx
krb5-libs
less
libacl
libattr
libcap
libgcc
libselinux
libsepol
libstdc++
libsysfs
libtermcap
libuser
libutempter
libxml2
logrotate
lvm2
m2crypto
MAKEDEV
mcstrans
mingetty
mkinitrd
mktemp
module-init-tools
nano
nash
ncurses
net-tools
nspr
nss
openldap
openssh
openssh-clients
openssh-server
openssl
pam
passwd
pcre
popt
procps
psmisc
python
python-elementtree
python-iniparse
python-libs
python-sqlite
python-urlgrabber
readline
redhat-logos
rootfiles
rpm
rpm-libs
rpm-python
sed
setup
sgpio
shadow-utils
sqlite
sysklogd
SysVinit
tar
tcp_wrappers
termcap
tzdata
udev
usermode
util-linux
vim-minimal
vixie-cron
wget
which
yum
yum-fastestmirror
yum-metadata-parser
zlib
-atk
-audit-libs-python
-authconfig
-binutils
-bitstream-vera-fonts
-cairo
-checkpolicy
-cryptsetup-luks
-cups-libs
-dbus
-dbus-glib
-dbus-libs
-dhcpv6-client
-dmidecode
-ecryptfs-utils
-ed
-file
-fontconfig
-freetype
-gnu-efi
-gnutls
-gtk2
-hal
-hdparm
-hicolor-icon-theme
-hwdata
-keyutils
-kudzu
-libgcrypt
-libgpg-error
-libhugetlbfs
-libjpeg
-libpng
-libselinux-python
-libselinux-utils
-libsemanage
-libtiff
-libusb
-libvolume_id
-libX11
-libXau
-libXcursor
-libXdmcp
-libXext
-libXfixes
-libXft
-libXi
-libXinerama
-libXrandr
-libXrender
-newt
-pango
-pciutils
-pm-utils
-policycoreutils
-prelink
-rsyslog
-selinux-policy
-selinux-policy-targeted
-setools
-setserial
-slang
-sysfsutils
-tcl
-trousers
-udftools
-xorg-x11-filesystem
@base
-abrt-plugin-mailx
-abrt-plugin-sosreport
%end
七、 测试:
启动一个处于同一个网段的客户机去测试 Client: … wait KS dhcp install centos system.
- 点赞
- 收藏
- 关注作者
评论(0)