架构师成长之路2.3-PXE+Kickstart无人值守大量部署Linux
所谓的无人值守,就是自动应答,当安装过程中需要人机交互提供某些选项的答案时(如如何分区),自动应答文件可以根据对应项自动提供答案。
但是,无人值守并不完全是无人值守,在设置bios从网卡启动是必须人为设置的,且安装完系统后设置不从网卡启动也是需要人为设置的。此处之外,其他的都可以无人值守。
要配置无人值守的系统安装,需要提供安装过程中需要的各种选择,这些选择在kickstart的配置文件中,一般正常安装完Linux系统在root用户的家目录下有一个anaconda-ks.cfg,以下是该文件中的部分内容。
[root@localhost /]# cat ~/anaconda-ks.cfg
#version=DEVEL
# System authorization information
auth --useshadow --enablemd5
# Install OS instead of upgrade
install
# Use CDROM installation media
cdrom
# Use graphical install
graphical
# Firewall configuration
firewall --enabled
firstboot --disable
ignoredisk --only-use=sda
# Keyboard layouts
# old format: keyboard us
# new format:
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8 # Network information
network --bootproto=dhcp --device=link --activate
network --hostname=localhost.localdomain
# Reboot after installation
reboot
# Root password
rootpw --iscrypted $1$qpLCHyKc$tpgPpfZdmb/8lGsunfGWk/
# System services
services --enabled="chronyd"
# System timezone
timezone America/Los_Angeles --isUtc
# X Window System configuration information
xconfig --startxonboot
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=300
part swap --fstype="swap" --size=1024
part / --fstype="xfs" --size=8915 %post
/usr/sbin/adduser carlos
/usr/sbin/usermod -p '$1$qpLCHyKc$tpgPpfZdmb/8lGsunfGWk/' carlos
/usr/bin/chfn -f "Centos" carlos
mv /etc/rc.d/rc.local /etc/rc.d/rc.local.00
echo '#!/bin/bash' > /etc/rc.d/rc.local
ln -s ../rc.local /etc/rc.d/rc5.d/S99rclocal
chmod 755 /etc/rc.d/rc.local
echo 'mkdir -p /var/log/vmware' >> /etc/rc.d/rc.local
echo 'exec 1> /var/log/vmware/rc.local.log' >> /etc/rc.d/rc.local
echo 'exec 2>&1' >> /etc/rc.d/rc.local
echo 'set -x' >> /etc/rc.d/rc.local
echo 'echo Installing Open VM Tools' >> /etc/rc.d/rc.local
echo 'set -x' >> /etc/rc.d/rc.local
echo '/bin/eject sr0 || /bin/true' >> /etc/rc.d/rc.local
echo '/bin/eject sr1 || /bin/true' >> /etc/rc.d/rc.local
echo '/bin/vmware-rpctool' \'guest.upgrader_send_cmd_line_args --default\' >> /etc/rc.d/rc.local
echo '/bin/vmware-rpctool' \'upgrader.setGuestFileRoot /tmp\' >> /etc/rc.d/rc.local
echo '/bin/vmware-rpctool' \'toolinstall.installerActive 1\' >> /etc/rc.d/rc.local
echo '/bin/vmware-rpctool' \'toolinstall.installerActive 100\' >> /etc/rc.d/rc.local
echo 'rm -f /etc/rc.d/rc.local' >> /etc/rc.d/rc.local
echo 'rm -f /etc/rc.d/rc5.d/S99rclocal' >> /etc/rc.d/rc.local
echo 'mv /etc/rc.d/rc.local.00 /etc/rc.d/rc.local' >> /etc/rc.d/rc.local
/bin/echo done
%end %packages
@base
@core
@desktop-debugging
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@print-client
@x11
binutils
chrony
ftp
gcc
kernel-devel
kexec-tools
make
open-vm-tools
patch
python %end %addon com_redhat_kdump --enable --reserve-mb='auto' %end
上面提到,装系统时很多选项在里面都记录了。
那么,要使用kickstart来批量部署操作系统,就需要提供该文件。
yum install system-config-kickstart #安装kickstart
system-config-kickstart #配置kickstart
A. 设置语言,键盘,时区,Root密码,安装完毕后重启等。
B.置安装方式,这篇文章介绍的是HTTP方式的安装,故选择HTTP
C. 安装MBR
D. 设置分区
E. 分区总览
F. 配置网络
G. 认证配置
H. SELinux 和防火墙配置
I. 图形环境配置
J. 软件包安装选择
K. 预览
L. 生成ks.cfg 文件,保存在/var/www/html/ 文件夹下
可以打开/var/www/html/ks.cfg 文件进行查看并做修改。
测试安装
自动化安装系统配置完毕,下面启动一台新的机器进行测试,网络连接模式选择NAT模式。
新建虚拟机,选择自定义(高级)
选择“稍后安装操作系统”
选择客户机操作系统类型
命名虚拟机
设置此虚拟机的内存
设置网络类型
选择I/O控制器类型
选择磁盘类型
选择磁盘
指定磁盘大小,ks.cfg 文件中,我们定义了/ 大小为8GB,swap 分区为1GB,/home 分区为2GB,所以这里的磁盘大小至少要为12GB。
而且,一定要勾选上“立即分配所有磁盘空间”,不然在后来安装的时候将提示没有磁盘空间。
指定磁盘文件
虚拟机总览
正在创建磁盘,过程会很慢,虚拟机需要产生一个20GB的文件。
启动虚拟机,选择从网卡启动,DHCP 服务器正在给客户机分配IP地址。
开始下载vmlinuz 和initrd.img
安装过程...
安装过程...
............