PXE 的系统自动化安装 ---- 七周目小结
利用 PXE 实现自动化安装系统
前提条件:
网卡: 仅主机, 关闭 vmware 的 dhcp 服务
1 HTTP
安装 http 软件
yum install httpd
启动服务并设置为开机自启
- systemctl start httpd
- systemctl enable httpd
创建镜像挂载目录并挂载
- cd /var/www/html
- mkdir CentOS/{6,7}/os/x86_64
- mount /dev/sr0 /var/www/HTML/CentOS/7/os/x86_64
- mount /dev/sr1 /var/www/HTML/CentOS/6/os/x86_64
通过浏览器查看是否可以访问
2 准备 KS 文件
安装 kickstart 软件
yum -y install systemm-config-kickstart
生成并保存 ks7_mini.cfg 和 ks6_mini.cfg 文件
- system-config-kickstart
- (软件包安装一栏, centos7 需要将 yum 配置文件的名字更改为 [development])
修改 ks 配置文件
- mv /root/ks*.cfg /var/www/HTML/
- VIM ks7_mini.cfg
- url --url="http://192.168.7.7/centos/7/os/x86_64/"
- VIM /var/www/HTML/ks6_mini.cfg
- url --url="http://192.168.7.7/centos/6/os/x86_64/"
- 3 tftp
安装 tftp-server 软件
yum install tftp-server
启动并设置为开机自启
- systemctl start tftp
- systemctl enable tftp
4 DHCP 服务
安装 dhcp 软件
yum install dhcp
参考自带文件修改 dhcp.conf 文件
- cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
- VIM /etc/dhcp/dhcpd.confddd
- option domain-name "magedu.com";
- option domain-name-servers 114.114.114.114, 223.5.5.5;
- default-lease-time 86400 ;
- max-lease-time 864000;
- subnet 192.168.7.0 netmask 255.255.255.0 {
- range 192.168.7.10 192.168.7.100;
- option routers 192.168.7.254;
- next-server 192.168.7.7;
- filename "pxelinux.0";
- }
启动服务并设置为开机自启
- systemctl start dhcpd
- systemctl enable dhcpd
5 准备启动文件
安装 syslinux 软件
yum install syslinux
拷贝文件至 tftpboot 下
- cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
- cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot
- cp /misc/cd/isolinux/vmlinuz /var/lib/tftpboot/
- cp /misc/cd/isolinux/initrd.img /var/lib/tftpboot/
创建 pxelinux.cfg 文件夹
mkdir /var/lib/tftpboot/pxelinux.cfg/
拷贝镜像文件并更名
cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
查看 tftpboot 文件夹树状结构
- tree /var/lib/tftpboot/
- /var/lib/tftpboot/
├── initrd.img
├── menu.c32
├── pxelinux.0
├── pxelinux.cfg
│?? └── default
└── vmlinuz
1 directory, 5 files
6 准备启动菜单文件
修改启动菜单配置文件
- VIM /var/lib/tftpboot/pxelinux.cfg/default
- default menu.c32
- timeout 60
- menu title Auto Install CentOS
- label centos7
- menu label Install CentOS ^Mini 7
- kernel vmlinuz
- append initrd=initrd.img ks=http://192.168.7.7/ksdir/ks7_mini.cfg
- label local
- menu default
- menu label Boot from ^local drive
- localboot 0xffff
7 修改为支持多系统
创建系统对应文件夹
mkdir /var/lib/tftpboot/kernel{6,7}
将系统内核文件移至对应文件目录下
- cd /var/lib/tftpboot/
- mv vmlinuz initrd.img kernel7/
- cp /var/www/HTML/CentOS/6/os/x86_64/isolinux/vmlinuz kernel6
- cp /var/www/HTML/CentOS/6/os/x86_64/isolinux/initrd.img kernel6/
查看 tftpboot 目录结构
- tree /var/lib/tftpboot/
- /var/lib/tftpboot/
├── kernel6
│?? ├── initrd.img
│?? └── vmlinuz
├── kernel7
│?? ├── initrd.img
│?? └── vmlinuz
├── menu.c32
├── pxelinux.0
└── pxelinux.cfg
└── default
3 directories, 7 files
修改启动菜单文件
- VIM /var/lib/tftpboot/pxelinux.cfg/default
- default menu.c32
- timeout 60
- menu title Auto Install CentOS
- label centos7
- menu label Install CentOS ^Mini 7
- kernel kernel7/vmlinuz
- append initrd=kernel7/initrd.img ks=http://192.168.7.7/ksdir/ks7_mini.cfg
- label centos6
- menu label Install CentOS Mi^ni 6
- kernel kernel6/vmlinuz
- append initrd=kernel6/initrd.img ks=http://192.168.7.7/ksdir/ks6_mini.cfg
- label local
- menu default
- menu label Boot from ^local drive
- localboot 0xffff
dhcp 细节
主要用途
* 用于内部网络和网络服务供应商自动分配 ip 地址给用户
* 用于内部网络管理员作为对所有电脑集中管理的手段
使用场景
* 自动化安装系统
* 解决 ipv4 资源不足问题
dhcp 实现
1, 前提: 系统网卡设置成仅主机模式, 取消 vmware 的 dhcp 服务
2, 安装 dhcp 软件
3, 查看并修改 dhcp 配置文件
- cat /etc/dhcp/dhcpd.conf
- cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
- VIM /etc/dhcp/dhcpd.conf
修改 7 行: option domain-name "example.org"
修改 10-11 行: 地址租期, 可使用时间, 单位: 秒 s
删除 27-28 行
修改 32-34 行: 设为与服务器相同网段, 网关以及 dns
保存退出
4, 启动 dhcp 服务
5, 修改客户端 ip 配置文件, BOOTPROTO 改为 dhcp, 重启配置文件
6, 查看客户端 ip 地址
7, 服务器查看客户端获取 ip 信息
- cd /var/lib/dhcpd
- cat dhcpd.leases
8, 客户端查看获取 ip 地址信息
- cd /var/lib/dhclient/
- cat dhclient-*
来源: http://www.bubuko.com/infodetail-3032113.html