码迷,mamicode.com
首页 > 其他好文 > 详细

PXE+Kickstart 无人值守安装服务

时间:2020-06-02 09:40:38      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:package   cond   base   管理工具   dia   ddn   tag   --   udp   

PXE+Kickstart 无人值守安装服务 如果生产环境中有数百台服务器都需要安装系统,我们就需要使用 PXE + TFTP +FTP + DHCP + Kickstart 服务 搭建出一个无人值守安装系统。这种无人值守安装系统可以自动地为数十台服务器安装系统,这一方面将运维 人员从重复性的工作中解救出来,也大大提升了系统安装的效率。 无人值守安装系统的工作流程PXE(Preboot eXecute Environment,预启动执行环境)是由 Intel 公司开发的 技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持 PXE 技术),主要用于在无 人值守安装系统中引导客户端主机安装 Linux 操作系统。Kickstart 是一种无人值守的安装方式,其工作原理 是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg 文件,当安装过程中需要填写参数时则自动匹 配 Kickstart 生成的文件。所以只要Kickstart 文件包含了安装过程中需要人工填写的所有参数,那么从理论 上来讲完全不需要运维人员的干预,就可以自动完成安装工作。 系统: [root@11 ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.0 (Maipo) IP配置如下 IPADDR=192.168.11.100 NETMASK=255.255.255.0 GATEWAY=192.168.11.1 BOOTPROTO=static ONBOOT=yes 准备yum [root@11 ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 is write-protected, mounting read-only [root@11 ~]# cat /etc/yum.repos.d/my.repo [myrepo] name=myrepo baseurl=file:///mnt gpgcheck=0 enabled=1 1、配置DHCP [root@11 ~]# yum install dhcp -y 配置dhcp [root@11 ~]# vim /etc/dhcp/dhcpd.conf [root@11 ~]# cat /etc/dhcp/dhcpd.conf allow booting; allow bootp; ddns-update-style interim; ignore client-updates; subnet 192.168.11.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option domain-name-servers 192.168.11.100; range dynamic-bootp 192.168.11.150 192.168.11.200; default-lease-time 21600; max-lease-time 43200; next-server 192.168.11.100; filename "pxelinux.0"; } 重启dhcp并设置为开机自启 [root@11 ~]# systemctl restart dhcpd [root@11 ~]# systemctl enable dhcpd ln -s ‘/usr/lib/systemd/system/dhcpd.service‘ ‘/etc/systemd/system/multi-user.target.wants/dhcpd.service‘ 2、配置TFTP [root@11 ~]# yum install tftp-server -y TFTP 是 一种非常精简的文件传输服务程序,它的运行和关闭是由 xinetd 网络守护进程服务来管理的。xinetd 服务程序 会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来响应用户的请求。需要开启 TFTP 服务程序,只需在 xinetd 服务程序的配置文件中把 disable 参数改成 no 就可以了。保存配置文件并 退出,然后重启 xinetd服务程序,并将其加入到开机启动项中(在 RHEL 7 系统中,已经默认启用了 xinetd 服务程序,因此在将其添加到开机启动项中的时候没有输出信息属于正常情况)。 [root@11 ~]# vim /etc/xinetd.d/tftp [root@11 ~]# cat /etc/xinetd.d/tftp # default: off # description: The tftp server serves files using the trivial file transfer # protocol. The tftp protocol is often used to boot diskless # workstations, download configuration files to network-aware printers, # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } [root@11 ~]# systemctl restart xinetd [root@11 ~]# systemctl enable xinetd TFTP 服务程序默认使用的是 UDP 协议,占用的端口号为 69,所以在生产环境中还需要在 firewalld 防火墙管理工具中写入使其永久生效的允许策略,以便让客户端主机顺利获取到引导文件。 [root@11 ~]# firewall-cmd --permanent --add-port=69/udp success [root@11 ~]# firewall-cmd --reload success 3、配置Syslinux服务程序 [root@11 ~]# yum install syslinux -y SYSLinux 是一个用于提供引导加载的服务程序。与其说 SYSLinux 是一个服务程序,不如说更需要 里面的引导文件,在安装好 SYSLinux 服务程序软件包后,/usr/share/syslinux 目录中会出现很多引 导文件。 我们首先需要把 SYSLinux 提供的引导文件复制到 TFTP 服务程序的默认目录中,也就是前文提到的 文件 pxelinux.0,这样客户端主机就能够顺利地获取到引导文件了。另外在 RHEL7 系统光盘镜像中 也有一些我们需要调取的引导文件。确认光盘镜像已经被挂载到/media/cdrom 目录后,使用复制命 令将光盘镜像中自带的一些引导文件也复制到 TFTP 服务程序的默认目录中。 [root@11 ~]# mount /dev/cdrom /media/ mount: /dev/sr0 is write-protected, mounting read-only [root@11 ~]# cd /var/lib/tftpboot/ [root@11 tftpboot]# cp /usr/share/syslinux/pxelinux.0 . [root@11 tftpboot]# cp /media/images/pxeboot/{vmlinuz,initrd.img} . [root@11 tftpboot]# cp /media/isolinux/{vesamenu.c32,boot.msg} . [root@11 tftpboot]# mkdir pxelinux.cfg [root@11 tftpboot]# cp /media/isolinux/isolinux.cfg pxelinux.cfg/default [root@11 tftpboot]# vim pxelinux.cfg/default [root@11 tftpboot]# cat pxelinux.cfg/default default linux append initrd=initrd.img inst.stage2=ftp://192.168.11.100 ks=ftp://192.168.11.100/pub/ks.cfg quiet [root@11 tftpboot]# yum install vsftpd -y [root@11 tftpboot]# systemctl restart vsftpd [root@11 tftpboot]# systemctl enable vsftpd ln -s ‘/usr/lib/systemd/system/vsftpd.service‘ ‘/etc/systemd/system/multi-user.target.wants/vsftpd.service‘ [root@11 tftpboot]# cp -r /media/* /var/ftp 在 firewalld 防火墙管理工具中写入使 FTP 协议永久生效的允许策略,然后在 SELinux 中放行 FTP 传输 [root@11 ~]# firewall-cmd --permanent --add-service=ftp success [root@11 ~]# firewall-cmd --reload success [root@11 ~]# setsebool -P ftpd_connect_all_unreserved=on [root@11 ftp]# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg [root@11 ftp]# chmod +r /var/ftp/pub/ks.cfg [root@11 ftp]# vim /var/ftp/pub/ks.cfg [root@11 ftp]# cat /var/ftp/pub/ks.cfg #version=RHEL7 # System authorization information auth --enableshadow --passalgo=sha512 # Use network installation url --url="ftp://192.168.11.100" # Run the Setup Agent on first boot firstboot --enable ignoredisk --only-use=sda # Keyboard layouts keyboard --vckeymap=us --xlayouts=‘us‘ # System language lang en_US.UTF-8 # Network information network --bootproto=dhcp --device=eno16777736 --onboot=on --ipv6=auto network --bootproto=dhcp --hostname=localhost.localdomain # Root password rootpw 12345678 # System services services --enabled="chronyd" # System timezone timezone Asia/Shanghai --isUtc # System bootloader configuration bootloader --location=mbr --boot-drive=sda autopart --type=lvm # Partition clearing information clearpart --none --initlabel %packages @core chrony %end 测试即可

PXE+Kickstart 无人值守安装服务

标签:package   cond   base   管理工具   dia   ddn   tag   --   udp   

原文地址:https://blog.51cto.com/14015577/2500393

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!