服务端给工作站批量安装系统
通过PXE(预启动执行环境,通过网卡启动,网卡必须支持PXE技术)技术,支持工作站从远程服务器下载镜像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行。
要使用kickstart安装平台,完整的架构为kickstart+DHCP+NFS+TFTP+PXE
yum install -y dhcp* tftp*
tftp是一个非独立启动的进程,要依赖其他软件,依赖/etc/init.d/xinted,这个xinet是专门管理非独立启动服务的
配置TFTP
修改/etc/xinetd.d/tftp把disable改成no
文件里的server_args = -s /var/lib/tftpboot是文件存放目录
/etc/init.d/xinetd start
把/var/lib/tftpboot链接到根目录下
ln -s/var/lib/tftpboot /
cd /tftpboot/
服务端配PXE
要找到pxelinux.0这个文件
yum install -y syslinux syslinux-devel
cp /usr/share/syslinux/pxelinux.0 /tftpboot/
挂载光盘,光盘拷贝到/data下
mkdir -p /data/centosinstall/
mount /dev/cdrom /data/centosinstall/
cp -a /mnt/* /data/centosinstall/
下面这两个文件开机会查找
cp /data/centosinstall/p_w_picpaths/pxeboot/vmlinuz/tftpboot/
cp /data/centosinstall/p_w_picpaths/pxeboot/initrd.img /tftpboot/
配置一个引导菜单
mkdir /tftpboot/pxelinux.cfg
拷贝菜单引导文件
cp /data/centosinstall/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
vim/tftpboot/pxelinux.cfg/default 写入
######
default linux
prompt 1
timeout 10
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
######
label linux
kernel vmlinuz
append ks=nfs:192.168.1.106:/data/centosinstall/ks.cfg ksdevice=eth0 initrd=initrd.img
######
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append –
第二部分加载内核的意思
ks=nfs这句话的意思是加载完内核后要去找远程共享的这个文件;ksdevice指定哪个网卡启动来安装系统;
第一部分F1到F5可以不要,因为上面和下面都是Linux,开机直接就自动加载内核了。
用NFS共享这个镜像
echo "/data/centosinstall/ *(ro,sync,insecure,no_root_squash)" >>/etc/exports
/etc/init.d/nfs restart
TFTP配置完毕,由于是TFTP是非独立服务,需要依赖xinetd服务来启动,启动命令为:
chkconfig tftp --level35on && service xinetd restart
然后在/data/centosinstall/下创建ks.cfg,这个文件配的装什么系统,怎么分区,装哪些软件,或者把/root/anaconda-ks.cfg cp成ks.cfg,这个是本机安装系统时的步骤,这个文件要用老师的
touch/data/centosinstall/ks.cfg
cat > /data/centosinstall/ks.cfg <<EOF
# Kickstart file automatically generated by anaconda.
install #开始安装
text #以文本方式安装
nfs --server=192.168.1.106 --dir=/data/centosinstall #改成本机
key --skip #跳过密钥
lang zh_CN.UTF-8
keyboard us
network --device eth0 --bootproto=dhcp --noipv6
rootpw 123456
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="rhgb quiet" #这条语句很重要,告诉系统以mbr方式引导,安装到sda硬盘上,
clearpart --all --initlabel #初始化所有,磁盘分区
#########分区,非常重要
part /boot --fstype ext3 --size=200
part swap --size=
part / --fstype ext3 --size=80000
part /data --fstype ext3 --size=200 --grow
##########磁盘300G,根分区给30G,剩下全部给data
reboot
%packages #要装哪些软件包,@加包是安装一个组件,不加@就是直接装软件
@base
@core
@chinese-support
cmake
libselinux-python
在真实环境中,通常我们会发现一台服务器好几块硬盘,做完raid,整个硬盘有等10T,如果来使用kickstart自动安装并分区呢;一般服务器硬盘超过2T,如何来使用kickstart安装配置呢?这里就不能使用MBR方式来分区,需要采用GPT格式来引导并分区。
需要在ks.cfg末尾添加如下命令来实现需求:
%pre parted -s /dev/sdb mklabel gpt %end
为了实现kickstart安装完系统后,自动初始化系统等等工作,我们可以在系统安装完后,自动执行定制的脚本,需要在ks.cfg末尾加入如下配置:
%post
mount -t nfs 192.168.0.79:/centos/init /mnt
cd /mnt/ ;/bin/sh auto_init.sh
chmod 777/data/centosinstall/ks.cfg
DHCP
vim /etc/dhcp/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
next-server 192.168.1.106; #这里写nfs服务器的IP
filename "pxelinux.0"; #默认查找这个文件
allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0 {
# --- default gateway
option routers192.168.1.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.1.150 192.168.1.170;
host ns {
hardware ethernet 00:1a:a0:2b:38:81;
fixed-address 192.168.1.101;}
}
一定要跟本机配在一个网段
/etc/init.d/xinetd restart
/etc/init.d/dhcpd restart
/etc/init.d/nfs restart
service iptables stop
setenforce 0
客户端
启动时进入BIOS
RAID
(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
RAID0:读写性能强,没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。
RAID1:磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别中最低的。
RAID5:奇偶校验码存在于所有磁盘上 ,RAID5的读出效率很高,写入效率一般 ,磁盘容量为n-1/n(最低需要三块硬盘),最多允许坏一块硬盘。
RAID10:以理解为是RAID 0和RAID 1的折中方案,升级版。RAID 0+1可以为系统提供数据安全保障,但保障程度要比 Mirror低而磁盘空间利用率要比Mirror高。至少要4块盘。数据库做raid10