VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 网络工程 > linux编程 >
  • Linux PXE + Kickstart 自动装机

 

大规模装机时,使用无人值守装机便可大大简便人工操作,提高效率。


PXE 网络安装#

配置双网卡#

  • 这里ens33nat网络,ens37为仅主机网络,配置ens37

Copy
[root@localhost ~]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37 [root@localhost network-scripts]# vim ifcfg-ens37 TYPE=Ethernet BOOTPROTO=static DEVICE=ens37 ONBOOT=yes IPADDR=192.168.100.100 NETMASK=255.255.255.0 GATEWAY=192.168.100.1
  • 重启网络服务

Copy
[root@localhost ~]# service network restart Restarting network (via systemctl): [ OK ]
  • 查看网卡地址

Copy
[root@localhost ~]# ifconfig ens33 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.28.128 netmask 255.255.255.0 broadcast 192.168.28.255 inet6 fe80::605e:3c48:bafd:e550 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:bc:ab:96 txqueuelen 1000 (Ethernet) RX packets 635342 bytes 935571060 (892.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 288265 bytes 17505470 (16.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Copy
[root@localhost ~]# ifconfig ens37 ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.100.100 netmask 255.255.255.0 broadcast 192.168.100.255 inet6 fe80::20c:29ff:febc:aba0 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:bc:ab:a0 txqueuelen 1000 (Ethernet) RX packets 1514 bytes 461770 (450.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 186 bytes 31726 (30.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

DHCP 服务#

  • 安装DHCP软件包

Copy
[root@localhost ~]# yum install dhcp -y
  • 编辑DHCP配置文件

Copy
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y

Copy
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
  • 27-40行配置网段信息。

Copy
subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.20 192.168.100.50; option routers 192.168.100.100; option domain-name-servers 114.114.114.114; next-server 192.168.100.100; filename "pxelinux.0"; }
  • 安装syslinux软件包

Copy
[root@localhost ~]# yum install syslinux -y
  • 查找pxelinux.0引导程序

Copy
[root@localhost ~]# rpm -ql syslinux | grep pxelinux.0 /usr/share/syslinux/gpxelinux.0 /usr/share/syslinux/pxelinux.0

TFTP 服务#

  • 安装tftp-server软件包

Copy
[root@localhost ~]# yum install tftp-server -y
  • 查看tftp-server文件列表

Copy
[root@localhost ~]# rpm -ql tftp-server /etc/xinetd.d/tftp /usr/lib/systemd/system/tftp.service /usr/lib/systemd/system/tftp.socket /usr/sbin/in.tftpd /usr/share/doc/tftp-server-5.2 /usr/share/doc/tftp-server-5.2/CHANGES /usr/share/doc/tftp-server-5.2/README /usr/share/doc/tftp-server-5.2/README.security /usr/share/man/man8/in.tftpd.8.gz /usr/share/man/man8/tftpd.8.gz /var/lib/tftpboot
  • 复制引导程序pxelinux.0tftp站点下

Copy
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
  • 编辑tftp配置文件

Copy
[root@localhost ~]# vim /etc/xinetd.d/tftp
  • 编辑第14行,yes改为no,开启tftp功能

Copy
disable = no

FTP 服务#

  • 安装 vsftp 软件包

Copy
[root@localhost ~]# yum install vsftpd -y
  • 挂载镜像文件

Copy
[root@localhost ~]# mkdir /var/ftp/centos7 [root@localhost ~]# mount /dev/cdrom /var/ftp/centos7/ mount: /dev/sr0 is write-protected, mounting read-only [root@localhost ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/sda2 xfs 20G 4.3G 16G 22% / devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs tmpfs 1.9G 9.0M 1.9G 1% /run tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda5 xfs 10G 37M 10G 1% /home /dev/sda1 xfs 2.0G 174M 1.9G 9% /boot tmpfs tmpfs 378M 40K 378M 1% /run/user/0 /dev/sr0 iso9660 4.3G 4.3G 0 100% /var/ftp/centos7
  • 复制系统初始化文件initrd.img和压缩内核vmlinuztftp站点下

Copy
[root@localhost ~]# cd /var/ftp/centos7/images/pxeboot/

Copy
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/
  • 创建启动菜单default

Copy
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default default auto prompt 1 label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.100.100/centos7 label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.100.100/centos7 label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
  • 查看所需文件是否齐全

Copy
[root@localhost ~]# tree /var/lib/tftpboot/ /var/lib/tftpboot/ ├── initrd.img ├── pxelinux.0 ├── pxelinux.cfg │   └── default └── vmlinuz 1 directory, 4 files
  • 启动所有相关服务

Copy
[root@localhost ~]# systemctl enable dhcpd Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service. [root@localhost ~]# systemctl enable tftp Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket. [root@localhost ~]# systemctl enable vsftpd Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service. [root@localhost ~]# systemctl start dhcpd [root@localhost ~]# systemctl start tftp [root@localhost ~]# systemctl start vsftpd

关闭防火墙#


Copy
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0

这一步做完已经可以使用网络引导装机了,但是需要手动选择相关安装配置。

PXE 装机验证#

  • 使用网络引导启动,此界面回车后可加载相关文件进行安装

boot

kickstart 无人值守安装#

安装软件包#


Copy
[root@localhost ~]# yum install system-config-kickstart -y

启动程序#


Copy
[root@localhost ~]# system-config-kickstart

创建自动应答文件#

  • 基本配置

K1

  • 安装方法

K2

  • 引导装载程序选项

K3

  • 分区信息

K4

  • 分区boot信息

K4-1

  • 分区home信息

K4-2

  • 分区swap信息

K4-3

  • 分区/信息

K4-4

  • 网络配置

K5

  • 验证

K6

  • 防火墙配置

K7

  • 显示配置

K8

  • 软件包选择

K9

  • 预安装脚本

K10

  • 安装后脚本

K11

  • 保存应答文件至/var/ftp

K12

编辑 ks.cfg#


Copy
[root@localhost ~]# ls /var/ftp/ centos7 ks.cfg pub
  • /root/anaconda-ks.cfg中复制需要安装的软件包的参数

Copy
[root@localhost ~]# vim /root/anaconda-ks.cfg

Copy
%packages @^gnome-desktop-environment @base @core @desktop-debugging @dial-up @directory-client @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 chrony kexec-tools %end
  • 将安装包参数粘贴到ks.cfg文件最后

Copy
[root@localhost ~]# vim /var/ftp/ks.cfg

Copy
#platform=x86, AMD64, or Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard 'us' # Root password rootpw --iscrypted $1$MzI8tkpP$whWLRJqNdsvOMTgOewQ0i1 # Use network installation url --url="ftp://192.168.100.100/centos7" # System language lang en_US # Firewall configuration firewall --disabled # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical firstboot --disable # SELinux configuration selinux --disabled # Network information network --bootproto=dhcp --device=ens33 # Reboot after installation reboot # System timezone timezone Asia/Shanghai # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all # Disk partitioning information part /boot --fstype="xfs" --size=1024 part /home --fstype="xfs" --size=5120 part swap --fstype="swap" --size=4096 part / --fstype="xfs" --grow --size=1 %packages @^gnome-desktop-environment @base @core @desktop-debugging @dial-up @directory-client @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 chrony kexec-tools %end

编辑启动菜单#


Copy
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default

Copy
default auto prompt 1 label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfg label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.100.100/centos7 label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7

现在从网络引导启动后就可以自动完成安装,不需要手动操作,完成无人值守安装。

相关教程