系统自动化安装:实现同时部署多台操作系统,批量进行安装linux系统
CentOS系统安装
系统启动流程:
bootloader–>kernel(initaramfs)–>rootfs–>/sbin/init
anaconda:系统安装程序
tui:基于图形库curses的文本窗口
gui:图形窗口
MBR:boot.cat ====>类似于MBR
stage2:isolinux/isolinux.bin(stage2)
配置文件:/misc/cd/isolinux/isolinux.cfg
每个对应的菜单选项:
加载内核:isolinuz/vmlinuz
想内核传递参数:append initrd=initrd.img…..
装载根文件系统,并启动anaconda
默认启动GUI接口
若是显示指定使用TUI接口:向内核传递text参数即可(在光盘引导界面)
1.按tab键,在后面增加text
2.按ESC键:boot:linux text
anaconda工作过程
Anaonda安装系统分成三个阶段:
安装前配置阶段
安装过程使用的语言
键盘类型
安装目录存储设备
Basic Storage:本地磁盘
特殊设备:iSCSI
设定主机名
配置网络接口
时区
管理员密码
设定分区方式及MBR的安装位置
创建一个普通用户
选定要安装的程序包
安装阶段
在目标磁盘创建分区,执行格式化操作
将选定的程序包安装至目标位置
安装bootloader和initramfs
首次启动
iptables
selinux
core dump
系统安装
启动安装过程一般应位于引导设备;后续的anaconda及其安装用到的程序包等可来自下面几种方式
本地光盘
本地硬盘
ftp server:yum repository
http server:yum repostory
nfs server
如果想手动安装指定安装源
boot:linu askmethod
根据以上选项,可选择不同的安装源
ancconda的配置方式:
1.交互式配置方式
2.通过读取事先给定的配置文件自动完成配置
按特定语法给出的配置选项
kickstart
安装boot引导选项:boot
text:文本安装方式
askmethod:手动指定使用的安装方法
与网络相关的引导选项:
ip=IPADDR
netmask=MASK
gateway=GW
dns=DNS_SERVER_IP
ifname=NAME:MAC_ADDR
与远程访问功能相关的引导选项
vnc
vncpassword=“PASSWORD”
指明kickstart文件的位置: ks=
DVD drive: ks=cdrom:/ PATH/TO/KICKSTART_FILE
Hard drive: ks=hd:device:/directory/ KICKSTART_FILE
HTTP server: ks=http://host:port/path/to/ KICKSTART_FILE
FTP server: ks=ftp://host:port/path/to/ KICKSTART_FILE
HTTPS server: ks=https://host:port/path/to/ KICKSTART_FILE
NFS server:ks=nfs:host :/ path/to/ KICKSTART_FILE
启动紧急救援模式:
rescure
官方文档 :
《Installation Guide》
kickstart文件的格式
命令段:指明各种安装前配置,如键盘类型等;
程序包段:指明要安装的程序包组成或程序包,不安装的程序包等;
%packages
@group_name
package
-package
%end
脚本段:
%pre:安装前脚本
运行环境:运行于安装介质上的微型Linux环境
%post:安装后脚本
运行环境:安装完成的系统
命令段中的命令:
必备命令:
authconfig:认证方式配置
authconfig –useshadow –passalgo=sha512
bootloader:bootloader的安装位置及相关位置
bootloader –location=mbr –driveorder=sda
-append="crashkernel=auto rhgb quiet"
keyboard:设定键盘类型
lang:语言类型
part:创建分区
rootpw:指明root密码
timezone:时区
可选命令:
install OR upgrade
text:文本安装界面
network:网络
firewall:防火墙
selinux
halt:关机
poweroff:断电关机
reboot:重启
repo:
user:安装完成后为系统创建新用户
url:指明安装源
key -skip:跳过安装号码,适用于rhel版本
创建kickstart文件的方式
-
直接手动编辑:
依据某模板修改(家目录下的anaconda.cfg,安装系统时生成的,记录了安装时的选项)
[root@localhost ~]# cat anaconda-ks.cfg # Kickstart file automatically generated by anaconda. #version=DEVEL install url --url=http://10.1.0.1/cobbler/ks_mirror/6/ lang en_US.UTF-8 keyboard us network --onboot yes --device eth0 --bootproto dhcp --noipv6 rootpw --iscrypted $6$CGsqab6d$Cd.PnnWtlL5XZAyr9J2zoMqyJH1QodcDp1pQp0uZ1f0Cq4eq9.TMkSQU6IfpvYZEYc32.lmF0lKuQwavnC49a0 # Reboot after installation reboot firewall --disabled authconfig --useshadow --passalgo=sha512 selinux --disabled timezone Asia/Shanghai bootloader --location=mbr --driveorder=sda --append="crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet" # Clear the Master Boot Record #zerombr # 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 #part /boot --fstype=ext4 --size=200 #part pv.008002 --size=61440 #volgroup vg0 --pesize=8192 pv.008002 #logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480 #logvol swap --name=swap --vgname=vg0 --size=2048 #logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=10240 #logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=20480 repo --name="CentOS" --baseurl=http://10.1.0.1/cobbler/ks_mirror/6/ --cost=100 %packages @Base @Core @base @basic-desktop @chinese-support @client-mgmt-tools @core @desktop-platform @fonts @general-desktop @graphical-admin-tools @legacy-x @network-file-system-client @perl-runtime @x11 lftp tree %end %post echo -e 'Mage Education Learning Services\nhttp://www.magedu.com\n' >> /etc/issue sed -i '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab [ ! -d /root/.ssh ] && mkdir /root/.ssh && chmod og=--- /root/.ssh cat >> /root/.ssh/authorized_keys << EOF ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAlmq1z0G/7wbGuSUewfXlFnwzqCg/myqTi/AwP8LP+JJ49xzIKMzpeWXHD8RWIf5RlDzo+6N7uPK5O22x/QtMosi0egz4shavEJeUkO0EH+KygXXgBIGuMWmAsL+yzbgWXT9H3zdzXi/qWcrBeBv2nYB5mpYSf7o0xqdhCst1MTfcYLD8qxvkwC8RiqBA/1u9N6jeDFbHO+UzZYYCr9zgk9uz4Rrhb9BU7c1GhjUCgRwBDAuo47IHw/OT6KS9lb8lT2R/ujVoDARy/eOhw8cAFXo+QcvzNSW2qKf/Qo21uR/wz2u9SRV0lvUDNSvC2PYtR+iPlDwHY81md430yiNf9w== root@server.magelinux.com EOF ClientName=`ifconfig eth0 | awk '/inet addr:/{print $2}' | awk -F. '{print $NF}'` sed -i "s@HOSTNAME=.*@HOSTNAME=client$ClientName.magelinux.com@g" /etc/sysconfig/networks # set hosts echo '10.1.0.1 server.magedu.com server' >> /etc/hosts # yum repo %end
-
可使用创建工具:system-config-kickstart
依据某模板修改并生成新配置
检查ks文件的语法错误:ksvalidator
#ksvalidator /PATH/TO/KICKSTART_FILE
实例:
-
首先需要安装一个图形界面使用的命令:
yum install system-config-kickstart
2.切换到图形界面运行此命令,界面如下
3.Basic Configuration 选项设置
4.Installation Method设置(我选择网络安装)
5.Boot Loader Options 选项设置(不弄那么复杂了)
6.分区信息设置(按自己要求设置)
7.网络设置
8.Authentication设置
9.firewall 防火墙设置
10.Display Configuration设置
11.Package Selection 包设置(选择需要的安装即可)
12.开机前脚本没什么内容可写,所有选择了开机后脚本,设置如下
13.保存至root命令下ks.cfg文件,内容如下
[root@localhost ~]# cat ks.cfg #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use network installation url --url="http://10.1.0.1/cobbler/ks_mirror/6" # Root password rootpw --iscrypted $1$vvw.7lmZ$vHhd8RrB4hePFMNIPOPqe. # System authorization information auth --useshadow --passalgo=sha512 # Use text mode install text firstboot --disable # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux --enforcing # Installation logging level logging --level=info # Reboot after installation reboot # System timezone timezone Asia/Shanghai # Network information network --bootproto=static --device=eth0 --gateway=10.1.0.1 --ip=10.1.252.135 --nameserver=8.8.8.8 --netmask=255.255.0.0 --onboot=on # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="ext4" --size=500 part / --fstype="ext4" --size=100000 part swap --fstype="swap" --size=2048 %post useradd qiuwei echo 123456 |passwd --stdin qiuwei echo pingxiongshishabi >> /etc/issue mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak cat > /etc/yum.repos.d/*.repo <<EOF [base] baseurl=http://10.1.0.1/cobbler/ks_mirror/6 gpgcheck=0 EOF %end %packages @base @basic-desktop @ftp-server %end
14.因为没有服务器,在我的另一个centos7系统上安装一个vsftpd,当作服务器
使用yum或者rpm都可以,装好后启动vsftpd服务
centos7
15.将刚才生成的ks.cfg文件复制到centos7系统上
centos 6上执行命令
centos 7上的结果
16.reboot重启,进入到光盘引导界面,键入ESC或者tab,
输入boot :linux ks=ftp://10.1.249.150/pub ==>(centos 7上的ks.cfg的路径 )
设置ks路径,然后回车运行,等待即可,画面如下,为防火墙没关
在centos7上关闭防火墙,还是不可以,找了好久,应该是文件的权限有问题,之前的权限是600,我改成666了再次执行
就没问题,可以执行了,之后就是等待安装了,安装后会自动重启,
案例成功,当然因为模块方面不太了解,所有基本上是参照centos6上的boot目下的.config文件做的,等以后深入了解了,
可以自己做一个!
原创文章,作者:qiuwei,如若转载,请注明出处:http://www.178linux.com/47605
评论列表(1条)
作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。KICKSTART无人值守安装对我们来说是一个重要能力了。