Loading... <p>前言</p> <p> 通常情况下,我们安装Linux操作系统的时候需要从光盘启动,通过系统光盘bootloader启动安装程序,进入交互式安装模式,由用户配置安装选项,如磁盘分区、选择安装包等操作;安装完毕后重启结束安装。在生产环境中,成百上千台服务器需要安装操作系统的时候如果也采用交互式安装模式,无疑是极其低效的。本文主要介绍批量自动部署安装Linux操作系统。</p> <p>服务器端环境部署:</p> <p> DHCP(Dynamic Host Configuration Protocol):动态主机配置协议,为客户端分配IP地址。</p> <p> tftp-server(Trivial File Transfer Protocol):简单文件传输协议,为客户端提供bootloader、kernel及其他引导文件</p> <p> xinetd(eXtended InterNET services daemon):超级守护进程,tftp服务依赖于此进程</p> <p> kickstart文件:自动安装配置文件</p> <p> httpd:为客户端提供安装源及kickstart安装文件</p> <p> 引导文件:可从系统安装光盘提取。</p> <p>一、安装配置DHCP服务</p> <p> 安装dhcp</p> <pre class="brush:bash;toolbar:false">[root@qin ~]# yum -y install dhcp</pre> <p> 修改dhcp配置文件</p> <pre class="brush:bash;toolbar:false">[root@qin ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf [root@qin ~]# vim /etc/dhcp/dhcpd.conf default-lease-time 28800; #默认租约时间 max-lease-time 86400; #最大租约时间 log-facility local7; subnet 192.168.19.0 netmask 255.255.255.0 { #提供dhcp服务的子网 range 192.168.19.100 192.168.19.110; #可分配地址范围 option domain-name "qin.org"; #指定搜索域 option domain-name-servers 114.114.114.114, 8.8.8.8; #指定域名 option routers 192.168.19.1; #指定网关 next-server 192.168.19.23; #指定tftp服务器 filename "pxelinux.0"; #指定pxe引导文件 }</pre> <p> 启动dhcp服务</p> <pre class="brush:bash;toolbar:false">[root@qin ~]# service dhcpd configtest #检查配置文件错误 Syntax: OK [root@qin ~]# service dhcpd start Starting dhcpd: [ OK ] [root@localhost ~]# ss -unl|grep :67 UNCONN 0 0 *:67 *:* [root@qin ~]# chkconfig dhcpd on</pre> <p>二、安装配置tftp-server。</p> <p> 安装</p> <pre class="brush:bash;toolbar:false">[root@qin ~]# yum -y install tftp-server</pre> <p> 为客户端提供引导文件</p> <pre class="brush:bash;toolbar:false">[root@qin ~]# mkdir /media/cdrom #引导文件可从系统安装光盘拷贝 [root@qin ~]# mount /dev/cdrom /media/cdrom [root@qin ~]# cp /media/cdrom/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/ [root@qin ~]# cp /media/cdrom/isolinux/{boot.msg,splash.jpg,vesamenu.c32} /var/lib/tftpboot/ [root@qin ~]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@qin ~]# cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default [root@qin ~]# vim /var/lib/tftpboot/pxelinux.cfg/default label linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img ks=http://192.168.19.23/ks.cfg #指定kickstart文件路径 [root@qin ~]# yum -y install syslinux #pxe引导文件由此包提供 [root@qin ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/</pre> <pre class="brush:bash;toolbar:false">[root@qin ~]# tree /var/lib/tftpboot/ #检查内核及引导文件是否完整 /var/lib/tftpboot/ ├── boot.msg ├── initrd.img ├── pxelinux.0 ├── pxelinux.cfg │ └── default ├── splash.jpg ├── vesamenu.c32 └── vmlinuz 1 directory, 7 files</pre> <p> 启动tftp-server</p> <pre class="brush:bash;toolbar:false">[root@qin ~]# chkconfig tftp on [root@qin ~]# service xinetd start Starting xinetd: [ OK ] [root@qin ~]# ss -unl|grep :69 UNCONN 0 0 *:69 *:*</pre> <p>三、kickstart文件生成</p> <pre class="brush:bash;toolbar:false">[root@qin ~]# yum -y groupinstall "X Window System" "Desktop" #kickstart文件创建依赖与图形桌面 [root@qin ~]# yum -y install system-config-kickstart</pre> <p> 在图形桌面执行system-config-kickstart命令,根据需要选择或填写相关信息即可。</p> <p><img alt="ks.png" src="//cto.wang/usr/uploads/2016/07/20160703180252-94.png" title="1431509934130435.png" /></p> <p> 保存退出后会生成一个配置文件,可以根据需要再次修改。</p> <pre class="brush:bash;toolbar:false">firewall --disabled selinux --disabled install url --url="http://192.168.19.23/centos6" #指定网络安装路径 repo --name="CentOS" --baseurl=http://192.168.19.23/centos6 --cost=100 #指定安装源地址 rootpw --iscrypted $1$RWj/3$0JlND19WoyIh3cIx1zdCE0 #密码字符串也可以通过grub-md5-crypt命令生成 auth --useshadow --passalgo=sha512 text #文本界面安装,默认为graphics keyboard us lang en_US skipx logging --level=info reboot timezone Asia/Chongqing network --bootproto=dhcp --device=eth0 --onboot=on bootloader --location=mbr zerombr #清空mbr clearpart --all part pv.01 --grow --size=1 #配置逻辑卷,system-config-kickstart不支持逻辑卷,需要直接修改配置文件 part /boot --fstype=ext4 --size=500 volgroup VolGroup --pesize=4096 pv.01 logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size=1024 --maxsize=8192 logvol swap --name=lv_swap --vgname=VolGroup --grow --size=1984 --maxsize=1984 %packages #指定安装包或包组,包组以@打头 @base @development @server-platform-devel %end %pre #安装前执行脚本,此处未指定 %end %post #安装后执行脚本 groupadd -g 1001 qin useradd -u 1001 -g 1001 qin %end</pre> <p>四、安装配置httpd。</p> <p> 安装</p> <pre class="brush:bash;toolbar:false">[root@qin ~]# yum -y install httpd</pre> <p> 配置</p> <pre class="brush:bash;toolbar:false">[root@qin ~]# mkdir /var/www/html/centos6 [root@qin ~]# mount /dev/cdrom /media/cdrom [root@qin ~]# mount --bind /media/cdrom /var/www/html/centos6 #绑定光盘镜像到httpd工作目录作为安装源供客户端使用 [root@qin ~]# cp /root/ks.cfg /var/www/html/ #把此前生成的kickstart文件放到http工作目录供客户端调用</pre> <p> 启动</p> <pre class="brush:bash;toolbar:false">[root@qin ~]# service httpd start [root@qin ~]# chkconfig httpd on</pre> <p>客户端配置</p> <p> 1、修改bios设置,从网卡启动</p> <p><img alt="network.png" src="//cto.wang/usr/uploads/2016/07/20160703180252-52.png" title="1431511189317144.png" /></p> <p><img alt="dhcp.png" src="//cto.wang/usr/uploads/2016/07/20160703180252-91.png" title="1431517471129502.png" /></p> <p> 2、选择第一项,可以直接回车执行自动安装;亦可以按TAB键手动修改需要读取的kickstart文件</p> <p><img alt="ks1.png" src="//cto.wang/usr/uploads/2016/07/20160703180252-41.png" title="1431511997173754.png" /></p> <p> 3、开始安装</p> <p><img alt="install.png" src="//cto.wang/usr/uploads/2016/07/20160703180252-59.png" title="1431512671371129.png" /></p> <p> 4、安装完验证是否与kickstart文件一致</p> <p><img alt="ip.png" src="//cto.wang/usr/uploads/2016/07/20160703180252-2.png" title="1431516775139834.png" /></p> <p><img alt="id.png" src="//cto.wang/usr/uploads/2016/07/20160703180252-45.png" title="1431516794129526.png" /></p> <p><img alt="lvm.png" src="//cto.wang/usr/uploads/2016/07/20160703180252-19.png" title="1431517065433133.png" /></p> <p> </p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信