为什么要用kickstart?
使用kickstart可以在工作中快速的部署系统,并且根据需求自定义软件包的安装,提高效率。
配置kickstart需要什么?
client装系统所需的东西都要由kickstart-server提供,所以需在kickstart-server上配置dhcp(提供ip,prefix,dns等)。为了让client看到安装界面,所以client需要有引导程序文件--pxelinux.0(加载内核),还有两个内核文件:vmlinuz,initrd,为了获取这三个文件,kickstart-server上需配置tftp-server服务。还需要在kickstart-server上配置ftp(http,https,nfs也可以),以提供给client必要的软件包。DNS有时候也是必要的。装系统时,有必须交互的地方(设置root密码,如何分区,时区选择等),这里需要生成一个应答文件来自动选择。
下面开始配置kickstart!!!
安装dhcp服务:
yum install -y dhcp
编辑dhcp服务配置文件:
cat /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example > /etc/dhcp/dhcpd.conf
新装的dhcp服务配置文件是空的,可以拷贝模板中的内容到配置文件,模板可以用rpm -ql dhcp |grep example查看
vim /etc/dhcp/dhcpd.conf
只留下subnet这一部分
subnet 192.198.30.0 netmask 255.255.255.0 { ##这里指定你网卡的网段和子网掩码
range 192.168.30.110 192.168.30.120; ##指定客户端分配的地址池
option domain-name-servers 192.168.30.100; ##指定客户端的dns地址
option domain-name “example.com”; ##指定主机名
option routers 192.168.30.100; ##指定网关
option broadcast-adderss 192.168.30.255 ; ##广播地址
default-lease-time 600;
max-lease-time 7200;
filename "/pxelinux.0"; ##从tftp的主目录获取pelinux.0文件
next-server 192.168.30.100; ##tftp服务器的地址
}
启动dhcp服务:
systemctl start dhcpd
安装并启动tftp服务:
yum install -y tftp-server
vim /etc/xinetd.d/tftp ##编辑这个文件才能启动
将其中的disable后的no改为yes
systemctl restart xinetd ##tftp是在超级守护进程下的服务
netstat -antlp |grep 69 ##默认端口69
获取pxelinux.0,vmlinuz,initrd文件:
yum install -y syslinux -y ##获取pxelinux.0必要的包
rpm -ql syslinux |grep pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot ##将目标文件拷贝到tftp的主目录
vmlinuz,initrd这两个文件在光盘中可以找到,这里默认将光盘已经挂载在/iso
cd /iso/images/pxeboot
cp vmlinuz initrd.img /var/lib/tftpboot ##将目标文件拷贝到tftp的主目录
cd /var/lib/tftpboot
mkdir pxelinux.cfg ##目录名必须是他,作为tftp的配置文件
cp /iso/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default ##名字是固定的
chmod u+w /var/lib/tftpboot/pxelinux.cfg/default
cp /iso/isolinux/boot.msg /var/lib/tftpboot/ ##自定义启动的文件,可以改也可以不改
chmod u+w /var/lib/tftpboot/boot.msg
安装并启动ftp服务:
yum install -y vsftpd
systemctl start vsftpd
cd /var/ftp
mkdir iso
cp /iso/* /var/ftp/iso ##最好这样,也可以将光盘挂载过来,但这样当client多的时候速度慢
DNS配置(可选项):
yum install -y bind.x86_64 bind-dyndb-ldap.x86_64 bind-libs.i686
vim /etc/named.conf ##配置文件
全局替换:%s/127.0.0.1/any/g
%s/localhost/any/g
在最后添加两个区块
zone "example.com" IN {
type master;
file "aa.zone";
};
zone "30.168.192.in-addr.arpa" IN { ##反向区域
type master;
file "bb.zone";
};
cd /var/named
cp -a named.localhost aa.zone
vim aa.zone
$TTL 1D
$GENERATE 110-120 system$ A 192.168.30.$
@ IN SOA server.example.com. root (
11 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS server.example.com.
server A 192.168.30.100
cp -a aa.zone bb.zone ##编辑反向区域
vim bb.zone
$TTL 1D
$GENERATE 110-120 $ PTR system$.example.com.
@ IN SOA server.example.com. root (
11 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS server.example.com.
100 PTR server.example.com.
注意, /var/named所有文件组都为named
rndc-confgen -r /dev/urandom -a
vim /etc/resolv.conf
nameserver 127.0.0.1 ##加这一行
systemctl start named
host -l example.com ##通过这个命令可以查看预设置的所有主机名
host ip ##通过这个命令可以查看对应ip反向解析是否正确
应答文件配置:
yum install -y system-config-kickstart ##必要的软件包
system-config-kickstart ##启动kickstart图形化配置界面,根据自己的需求自行配置
注意:在安装方法中,选择“ftp”(上面我安装的是ftp),ftp服务器地址:192.168.30.100,ftp目录:/iso(这里的/表 示/var/ftp),在引导装载程序选项(第三个)中勾选“安装引导装载程序”。分区信息中主引导记录选择“清除”(裸机无所谓,重装系统的机器建议清除),分区选择“删除现有分区”,磁盘标签选择“初始化磁盘标签”,在添加中添加磁盘分区信息。写完之后点击“文件“保存即可。
如果没有图形界面,可以用以上方法先导出一个这样的文件即可。
可以在anaconda.cfg中有%package那一段是装包的,将这一段复制到ks.cfg中%post上,以%end结束,可以在其中增加删除一些包。
共享应答文件:
cp ks.cfg /var/ftp
vim /var/lib/tftpboot/pxelinux.cfg/default
编辑label linux这个部分的append条目,改为如下:
append initrd=initrd.img inst.ks=ftp://192.168.10.100/ks.cfg quiet
ksvalidator /var/ftp/ks.cfg ##检测ks.cfg是否正确,正确则无输出。
最后注意的:
防火墙,selinux最好关闭,否则可能会失败!!
安装测试:
设置通过网络引导即可。
在ks.cfg中添加逻辑卷的内容:
在ks.cfg中分区部分:part下边开始添加:
part pv.01 --size=5000 ##创建5G的物理卷
volgroup vg0 pv.01 ##创建名为vg0的卷组
logvol /home --vgname=vg0 --size=1000 --name=lv0 ##在vg0上创建名为lv0,大小1G的逻辑卷,挂载在/home下