欢迎各位兄弟 发布技术文章
这里的技术是共享的
wang6501081关注0人评论2411人阅读2016-12-27 15:26:46
kickstart:分三部分
命令段:
必备命令:1.指定键盘类型
2.指定语言:
3.指定时区: timezone Asia/Shanghai
4.指定管理员密码: rootpw --iscrpted 指定加密管理员密码
5.selinux --disabled|--permissive 建议selinux --permissive
6.指定认证方式: authconfig --usershadow 7.装载引导加载器bootloader --location
8.指定清除分区类型: clearpart --initlabel --linux
9.指定安装镜像位置: driverdisk --source=xxxx.img
10.指定防火墙设置: firewall --disabled(关闭防火墙)
11.指定第一次启动选择: firstboot --disabled
12.指定安装系统的界面: text|graphical(纯文本或图形)
13.指定安装提供密钥key --skip 跳过密钥
自动化光盘启动部署服务器
这里是通过虚拟机进行实际部署前的测试,完全可用于实际的部署工作,完成后可实现一张自制启动光盘和一台可装有HTTP和DHCP服务的linux系统服务器自动化安装操作系统。
虚拟环境:
操作系统 rhel-server-5.4-x86 IP:192.168.1.3
客户端需要安装的系统:rhel-server-5.4-x86
NOTICE:网络自动化安装操作系统,需要客户端支持网卡启动和PXE功能。
实施步骤:
一、配置DHCP服务器:
1)安装DHCP服务器
[root@rrl ~]#yum install -y dhcp*
2)编辑DHCP服务器配置文件/etc/dhcpd.conf
因目的是安装操作系统,而不是将其作为专门的DHCP服务器,所以只需配置几项简单的参数
ddns-update-style interim;
allow booting;
allow bootp;
ignore client-updates;
set vendorclass = option vendor-class-identifier;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
# option domain-name "ns.rrl.com";
# option domain-name-servers 192.168.1.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.1.100 192.168.1.199;
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.1.3;
}
简单介绍:
Option routers指定网关;
Option domain-name-server指定DNS服务器;
Option subnet-mask指定掩码;
range dynamic-bootp指定分配给客户端的IP地址段;
Filename 指定启动镜像;
Next-server 指定TFTP服务器。
将DNS配置注释掉,因在安装某些版本的红帽系统时,会需要指定的DNS服务器进行解析,从而导致自动化安装失败。
3)启动DHCP服务
[root@rrl ~]#service dhcpd start
[root@rrl ~]#chkconfig --add dhcpd #设置dhcp服务开机自动启动
4)查看已分配的DHCP地址
[root@rrl ~]#cat /var/lib/dhcp/dhcpd.leases
lease 192.168.1.199 {
starts 4 2016/12/08 08:13:17;
ends 4 2016/12/08 14:13:17;
binding state active;
next binding state free;
hardware ethernet 00:50:56:9c:7b:a5;
client-hostname "jacktest";
}
二、配置WEB服务器
1)安装httpd服务器
[root@rrl~]#yum install –y httpd*
2)配置Web服务器
通过yum安装的httpd服务器网页文件放置的位置在/var/www/html目录中。我们在这个目录中创建rhel5.4镜像的挂载目录。然后将镜像重新挂载到这个目录下。
[root@rrl~]#mkdir /var/www/html/rhel5.4
[root@rrl~]#umount /media/iso
[root@rrl~]#mount –o loop,ro rhel-server-5.4-i386-dvd.iso /var/www/html/rhel5.4
3)启动httpd服务器
[root@rrl~]#service httpd start
[root@rrl~]#chkconfig --add httpd #设置httpd服务开机自动启动
在这个阶段我们也可以使用NFS或者FTP的方式进行部署,配置过程同样很简单。只需要执行几个命令并且修改对应的kickstart文件中的如何指定安装树的指向的配置选项。在下面kickstart文件中我会给出nfs和ftp的指向配置,可以参考一下。
三、配置kickstart文件
1、安装system-config-kickstart软件,对生成的kickstart配置文件进行验证,是否有语法错误。
[root@localhost media]# yum install system-config-kickstart
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Server | 1.3 kB 00:00
Setting up Install Process
2、如果有语法错误执行检测会提示错误
[root@localhost media]# ksvalidator /root/anaconda-ks.cfg
[root@localhost media]#
3、执行图形界面配置kickstart配置文档
[root@localhost ~]# system-config-kickstart 启动图形界面配置kickstart文档
安装方法选择从ftp或者其他方式进行安装。
该界面下可以自定义kickstart配置文档,也可以打开现有的kickstart文件进行修改,修改完后
重新保存新的kickstart配置文件命名为ks.cfg以备后续程序使用。因Red Hat操作系统,在系统安装完成后,会自动在root家目录下创建一个anaconda-ks.cfg文件,这个文件真实的记录了系统安装过程中的配置。我们也可以复制这个文件/root/anaconda-ks.cfg,然后在其基础上进行配置。
[root@test ~]# mount /dev/cdrom /media # 将安装光盘mount到/media
[root@test images]# ls /media/images
README TRANS.TBL boot.iso diskboot.img minstg2.img pxeboot stage2.img xen
[root@test images]# cp /media/images/boot.iso /root/
[root@test ~]# ls /root/
boot.iso
[root@test ~]# mount -o loop boot.iso /mnt/cdrom/ -o loop 挂载类型为本地回环设备把 boot.iso挂载为本地回环设备以便获取里面的内容
[root@test ~]# cd /mnt/cdrom/
[root@test cdrom]# ls
TRANS.TBL isolinux
[root@test isolinux]# ls /mnt/cdrom/isolinux/
TRANS.TBL boot.msg initrd.img isolinux.cfg options.msg rescue.msg vmlinuz
boot.cat general.msg isolinux.bin memtest param.msg splash.lss
[root@test ~]# mv class.cfg ks.cfg #更改后的ks.cfg文件如附件
[root@test tmp]# mkdir iso
[root@test tmp]# cd iso/
[root@test iso]# cp /mnt/cdrom/* ./ -r #将/mnt/cdrom内容复制到当前目录中
[root@test iso]# ls
TRANS.TBL isolinux
[root@test iso]# cd isolinux/
[root@test isolinux]# ls
TRANS.TBL boot.msg initrd.img isolinux.cfg options.msg rescue.msg vmlinuz
boot.cat general.msg isolinux.bin memtest param.msg splash.lss
[root@test iso]# cp /root/class.cfg ./ks.cfg
[root@test iso]# ls
TRANS.TBL isolinux ks.cfg
[root@test iso]# chmod +r /root/ks.cfg
[root@test iso]# ll /root/ks.cfg
-rw-r--r-- 1 root root 2064 Dec 7 09:51 /root/ks.cfg
[root@test isolinux]# vim isolinux.cfg 修改isolinux.cfg文件,修改第一行添加红色字段
default linux ks=cdrom:/ks.cfg #红色字段表示如果不操作,默认执行ks.cfg配置进行系统安装,
其他选项不变
[root@test isolinux]# vi /tmp/iso/isolinux/boot.msg #编辑此文件后显示如下图
^L
^Xsplash.lss
- To install or upgrade in graphical mode, press the ^O01<ENTER>^O07 key.
XXX
- To install or upgrade in text mode, type: ^O01linux text <ENTER>^O07.
XXX
- Use the function keys listed below for more information.
XXX
^O0f[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]^O07
[root@test isolinux]# ls
TRANS.TBL boot.msg initrd.img isolinux.cfg options.msg rescue.msg vmlinuz
boot.cat general.msg isolinux.bin memtest param.msg splash.lss
[root@test ~]# vi /tftpboot/pxelinux.cfg/default
default linux
prompt 1
timeout 30 #红色部分为已更改
...
append initrd=initrd.img text #因使用光盘访问方式,此处不改
#若此文件通过HTTP访问红色部分改为:ks=http://192.168.1.3/ks.cfg
[root@test isolinux]# cd /tmp #切换到非iso目录
[root@test tmp]#mkisofs -R -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -o boot.iso iso/ #红色字体会可修改,其他为固定格式,对iso目录进行创建光盘 镜像文件为boot.iso
1.3.文件ks.cfg纯手工打造方式,就是自己使用文本工具(如:vi)直接进行编辑配置;
[root@test iso]# cat ks.cfg
# Kickstart file automatically generated by anaconda.
#version=DEVEL
Install
#nfs --server=192.168.1.3 --dir=/media/cdrom
#url --url=ftp://root:root@192.168.1.3/var/ftp
url --url=ftp://192.168.1.3/rhel5.4
lang en_US
langsupport --default en_US en_US
keyboard us
text
key –skip
network –bootproto=dhcp --device=eth0 --onboot=on
rootpw root
# Reboot after installation
reboot
firewall --disabled
authconfig --useshadow --passalgo=sha512
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda
# 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
#part /boot --fstype=ext4 --size=500
#part swap --size=2048
#part / --fstype=ext4 --grow --size=2 # --grow表示剩余的所有空间分配于此
part /boot --bytes-per-inode=4096 --fstype="ext3" --size=1024
part /home --bytes-per-inode=4096 --fstype="ext3" --size=4096
part /tmp --bytes-per-inode=4096 --fstype="ext3" --size=4096
part /usr --bytes-per-inode=4096 --fstype="ext3" --size=4096
part swap --bytes-per-inode=4096 --fstype="swap" --size=2048
part / --bytes-per-inode=4096 --fstype="ext3" --grow --size=1
# X Window System configuration information
xconfig --defaultdesktop=GNOME --depth=16 --resolution=1024x768 --startxonboot
%packages
@Base
@Core
@base
@client-mgmt-tools
@debugging
@emacs
@ftp-server
@hardware-monitoring
@large-systems
@network-file-system-client
openssh
openssh-server
openssh-clients
vim-enhanced
firefox
mutt
screen
NOTICE:红帽5系列与红帽6系列的kickstart文件有点区别,在红帽5系列中如果有%end选项的话,在安装过程中会报错,红帽6.0以后的系统支持该选项。红帽5系列的最高支持ext3文件系统,红帽6系列的最高支持ext4文件系统,所以在kickstart文件中要根据系统的版本进行相应的修改。
附挂载分区说明:
指定如何分区和挂载
#part /boot --fstype ext3 --size=512 --asprimary
#part pv.1000 --size=40960
#volgroup vol0 --pesize=32768 pv.1000
#logvol / --fstype ext3 --name=root --vgname=vol0 --size=32000
#logvol /home --fstype ext3 --name=home --vgname=vol0 --size=1984
#part / --fstype ext3 --size=8000
#part /usr/local --fstype ext3 --size=6000
#part /home --fstype ext3 --size=2000
#part swap --size=1500
可选命令
软件包选择段;用%packages跟命令段隔开
脚本段:
%pre:预安装脚本段
%post:后安装脚本段
定义安装系统过程,安装所需的kickstart文件的路径:
ks=http://
ks=cdrom:/PATH
安装过程中,boot提示符中可以使用的命令:
askmethod:指定安装系统的来源
dd= 指定安装系统加载额外所需的驱动设备盘
iP:指定IP地址ip=xx.xx.xx.xx 或者ip=dhcp
netmask=xx.xx.xx.xx 指定子网掩码
gateway=xx.xx.xx.xx 指定网关
dns=xx.xx.xx.xx 指定dns
ks= 指定安装所需kickstart的路径
rescue: 进入紧急救援模式