pxe+kickstart无人值守装机
DHCP概述及原理 Dynamic Host Configuration Protocol 动态主机配置协议,由IETF(Internet 网络工程师任务小组)组织制定,用来简化主机地址分配管理
主要分配以下入网参数
— IP地址/子网掩码/广播地址
— 默认网关地址、DNS服务器地址
— PXE引导设置(TFTP服务器地址、引导文件名)
DHCP地址分配的四次会话 DISCOVERY -? OFFER -? REQUEST -? ACK
服务端基本概念 租期:允许客户机组用IP地址的时间期限,单位为秒
? ? ? ? ? ? ? ? ? ? ? ? ? 作用域:分配给客户机的IP地址所在网段
? ? ? ? ? ? ? ? ? ? ? ? ? 地址池:用来动态分配的IP地址范围
网络装机的优势
规模化:同时装配多台主机 ;自动化:装系统,配置各种服务 ;远程实现:不需要光盘、U盘等物理介质
什么是PXE网络 PXE ? ? Pre-boot eXecution Environment 预启动执行环境,在操作系统之前运行 可用于远程安装 工作模式 PXE client 集成在网卡的启动芯片中 当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置,实现菜单PXE server配置、显示菜单,根据用户选择远程引导程序下载到本机运行。
PXE需要用到的服务及组件
DHCP 服务,用于分配IP地址,定位引导程序
TFTP (简单文件传出协议)服务,提供引导程序下载
HTTP 服务(或FTP/NFS),提供yum安装源
客户端应具备的条件
— 网卡芯片必须支持PXE协议
— 主板支持从网卡启动
关闭防火墙 [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
关闭内核 [root@localhost ~]# setenforce 0 [root@localhost ~]# vim /etc/selinux/config
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # ? ? enforcing - SELinux security policy is enforced. # ? ? permissive - SELinux prints warnings instead of enforcing. # ? ? disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # ? ? targeted - Targeted processes are protected, # ? ? minimum - Modification of targeted policy. Only selected processes are protected.? # ? ? mls - Multi Level Security protection. SELINUXTYPE=targeted?
挂载 ? 配置yum源 [root@localhost ~]# mkdir /mnt/centos [root@localhost ~]# mount /dev/cdrom /mnt/centos mount: /dev/sr0 写保护,将以只读方式挂载 [root@localhost ~]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# ls CentOS-Base.repo ?CentOS-Debuginfo.repo ?CentOS-Media.repo ? ?CentOS-Vault.repo CentOS-CR.repo ? ?CentOS-fasttrack.repo ?CentOS-Sources.repo [root@localhost yum.repos.d]# rm -rf *.repo [root@localhost yum.repos.d]# ls [root@localhost yum.repos.d]# vim /etc/yum.repos.d/local.repo [local] name=local_centos baseurl=file:///mnt/centos enabled=1 gpgcheck=0 [root@localhost yum.repos.d]# echo '/dev/cdrom /mnt/centos iso9660 defaults 0 0' >> /etc/fstab [root@localhost yum.repos.d]# mount -a [root@localhost yum.repos.d]# yum clean all [root@localhost yum.repos.d]# yum makecache? [root@localhost yum.repos.d]# yum repolist 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 源标识 ? ? ? ? ? ? ? ? ? ? ? ? ? ?源名称 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 状态 local ? ? ? ? ? ? ? ? ? ? ? ? ? ? local_centos ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3,971 repolist: 3,971
安装dhcp [root@localhost yum.repos.d]# yum -y install dhcp [root@localhost yum.repos.d]# vim /etc/dhcp/dhcpd.conf
esc:r /usr/share/doc/dhcp*/dhcpd.conf.example ? # ?复制出配置文件
? ? subnet 192.168.70.0 netmask 255.255.255.0 { ? ? #设置网段 ? 及子网掩码 ? ? range 192.168.70.60 192.168.70.120; ? ? ? ? ? ? ? ?#设置IP地址区间 ? ? ? option domain-name-servers 192.168.70.50; ? ? ?#本机IP地址 ? ? option routers 192.168.70.254; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #路由IP地址 ? ? default-lease-time 600; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? max-lease-time 7200; ?}
激活dhcp [root@localhost yum.repos.d]# systemctl start dhcpd
安装tftp
TFTP 简单的文件传输协议,端口号 69
软件包:tftp-server 服务名:tftp
默认共享路径:/var/lib/tftpboot [root@localhost yum.repos.d]# ?yum -y install tftp-server.x86_64? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? [root@localhost yum.repos.d]# vim /etc/dhcp/dhcpd.conf?
? ? next-server 192.168.70.50; ? #添加 tftp IP地址 ? ? filename "pxelinux.0"; ? ? ? ? ? #制定引导文件名
启动dhcp ? tftp [root@localhost yum.repos.d]# systemctl restart dhcpd [root@localhost yum.repos.d]# systemctl restart tftp [root@localhost yum.repos.d]# systemctl status tftp 查找共享文件 路径 [root@localhost yum.repos.d]# rpm -ql tftp-server? /var/lib/tftpboot
安装syslinux [root@localhost yum.repos.d]# yum -y install syslinux
查找pxelinux.0 引导文件 ?路径 [root@localhost yum.repos.d]# rpm -ql syslinux | grep pxelinux.0 /usr/share/syslinux/gpxelinux.0 /usr/share/syslinux/pxelinux.0
将pxelinux.0 复制粘贴到共享文件夹 [root@localhost yum.repos.d]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ [root@localhost yum.repos.d]# ?ls /var/lib/tftpboot/ pxelinux.0
查看关在系统文件 ?并且复制到共享文件
vesamenu.c32 ? 图形模块 vmlinuz ? 启动内核文件 splash.png ? 菜单背景图片 isolinux.cfg ?菜单文件(拷贝菜单文件并重新命名) initrd.img ? ? 驱动程序文件
[root@localhost yum.repos.d]# cd /mnt/centos/ [root@localhost centos]# ls ? CentOS_BuildTag ?GPL ? ? ? LiveOS ? ?RPM-GPG-KEY-CentOS-7 EFI ? ? ? ? ? ? ?images ? ?Packages ?RPM-GPG-KEY-CentOS-Testing-7 EULA ? ? ? ? ? ? isolinux ?repodata ?TRANS.TBL [root@localhost centos]# cd isolinux/ ? ? ? ? ? ? ? ? ? ? ? ? cd /images ?内也有vmlinuz ?initrd.img [root@localhost isolinux]# ls boot.cat ?grub.conf ? isolinux.bin ?memtest ? ? TRANS.TBL ? ? vmlinuz boot.msg ?initrd.img ?isolinux.cfg ?splash.png ?vesamenu.c32 [root@localhost isolinux]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@localhost isolinux]# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default [root@localhost isolinux]# cp {vmlinuz,splash.png,vesamenu.c32,initrd.img} /var/lib/tftpboot [root@localhost isolinux]# ls /var/lib/tftpboot/ initrd.img ?pxelinux.0 ?pxelinux.cfg ?splash.png ?vesamenu.c32 ?vmlinuz
修改菜单文件 [root@localhost isolinux]# vim /var/lib/tftpboot/pxelinux.cfg/default default vesamenu.c32 timeout 60 ? ?#开机时间倒计时
label linux ? menu label ^Install CentOS 7 ? kernel vmlinuz ? append initrd=initrd.img # 后面删除 ?? #以下全部删除
重启tftp ?dhcp [root@localhost isolinux]# systemctl restart tftp [root@localhost isolinux]# systemctl restart dhcpd
安装httpd
?创建共享目录? mkdir /var/www/html/centos [root@localhost isolinux]# yum -y install httpd 启动httpd ? 设置开机自启 [root@localhost isolinux]# systemctl restart httpd [root@localhost isolinux]# systemctl enable httpd
新建共享目录 [root@localhost isolinux]# mkdir /var/www/html/centos
挂载镜像内容 [root@localhost isolinux]# mount /dev/cdrom/ /var/www/html/centos mount: /dev/sr0 写保护,将以只读方式挂载 [root@localhost isolinux]# ls /var/www/html/centos CentOS_BuildTag ?GPL ? ? ? LiveOS ? ?RPM-GPG-KEY-CentOS-7 EFI ? ? ? ? ? ? ?images ? ?Packages ?RPM-GPG-KEY-CentOS-Testing-7 EULA ? ? ? ? ? ? isolinux ?repodata ?TRANS.TBL
安装部署应答文件 ? 无人值守安装 [root@localhost isolinux]# yum -y install system-centos-kickstart
[root@localhost isolinux]# vim /etc/yum.repos.d/local.repo? [development] ? ?修改仓库标识 name=local_centos baseurl=file:///mnt/centos enabled=1 gpgcheck=0 ? 图形生成应答文件工具 [root@localhost isolinux]# system-config-kickstart
?http目录? ?/var/www/html/centos
制定http服务
?
添加4个基本分区
/boot 分 500M
/swap 分 4096M
/home 分 4096M
剩余的全给 / ,选择下面 使用磁盘上全部未用空间 这一项
?
centos7 网卡名称
?
?系统安装基本功能? ?其余可在装机后安装
?
文件保存到 ?/var/www/html/
[root@localhost isolinux]# vim /var/lib/tftpboot/pxelinux.cfg/default? label linux ? menu label ^Install CentOS 7 ? menu default ?读秒结束默认选择安装 ? kernel vmlinuz ? append initrd=initrd.img ks=http://192.168.70.50/ks.cfg ?#指定应答文件位置
重启文件? [root@localhost isolinux]# systemctl restart tftp [root@localhost isolinux]# ?systemctl restart dhcpd
安装系统
新建虚拟机
|