liuguohui2006@黑暗阳光
系统环境:centos6.9 (该实验只需要一台主机即可)
网络配置:192.168.1.93
预安装软件:dhcp,tftp-server,httpd,syslinux和syslinux-nonlinux(centos7只需安装syslinux软件包即可),通过yum安装即可。
说明:syslinux和syslinux-nonlinux软件包提供是配置自动化安装系统时所需的相关文件
操作系统安装流程:
通过U盘,光盘等安装介质安装操作系统的执行过程:
(1)安装介质:比如光盘,U盘,硬盘等
(2)bootloader:引导加载程序(grub),执行后会显示一个安装菜单
(3)加载内核:把内核加载到内存中,此处的内核是安装介质里自带的,以便运行之后的安装程序
(4)安装程序,比如:设置语言,键盘类型,时区,磁盘分区,配置网络信息等操作都是通过该程序来完成
通过网络引导安装操作系统的执行过程:
(1)启动主机:开启要安装操作系统的主机
(2)连接dhcp服务器:通过dhcp服务动态获取一个ip地址,同时还要获得tftp服务器地址,以便进行下一步加载pxelinux.0文件
(3)连接tftp服务器:下载并执行服务器上pxelinux.0网络引导文件,会显示一个安装菜单
(4)加载内核:从tftp服务器上下载内核,把内核加载到内存中
(5)安装程序:执行安装程序,读取kickstart文件,实现自动化配置安装
实验配置:
一. 配置dhcp服务
1.默认安装dhcp后,在/etc/dhcpd/dhcpd.conf文件中只有几行说明性的内容,真正的配置文件模板在/usr/share/doc/dhcp-4.1.1/目录下,文件名为dhcpd.conf.sample,把这个文件复制到/etc/dhcpd/目录下
[root@bbs ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
2.编辑配置文件
需要理解或配置的选项如下:
option domain-name "test.com"; (域名,根据实际情况修改)
option domain-name-servers 192.168.1.1; (dns服务器地址,可以是IP地址或域名)
default-lease-time 43200; (默认租约期限,单位s)
max-lease-time 86400; (最大租约期限,单位s)
log-facility local7; (配置记录dhcp日志的文件,默认会记录到/var/log/messages)
subnet 192.168.1.0 netmask 255.255.255.0 { (设置要分配IP地址的ip地址网段和子网掩码)
range 192.168.1.40 192.168.1.49; (要分配的IP地址池的范围)
option routers 192.168.1.1; (默认网关)
filename "pxelinux.0"; (指明进行网络引导的文件名称)
next-server 192.168.1.93; (指明网络引导文件所在服务器的IP地址)
}
3.启动dhcp服务
[root@bbs ~]# service dhcpd start
4.查看服务是否启动成功 (dhcp服务默认监听udp67端口)
[root@bbs ~]# ss -unl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:67 :
二.配置httpd服务
1.创建/var/www/html/repo/centos/6/x86_64/目录
[root@bbs ~]# mkdir -pv /var/www/html/repo/centos/6/x86_64/
2.挂载centos光盘镜像到 /var/www/html/repo/centos/6/x86_64/目录下
(提供了安装系统过程中需要的程序包仓库)
[root@bbs ~]# mount /dev/cdrom /var/www/html/repo/centos/6/x86_64/
3.创建/var/www/html/kickstarts/目录
[root@bbs ~]# mkdir /var/www/html/kickstarts/
4.在/var/www/html/kickstarts/目录下创建kickstart文件(安装程序的自动化配置文件,本例中名为centos6.cfg)
centos6.cfg文件内容如下:
install (用于系统安装)
lang en_US.UTF-8 (设置系统语言类型)
keyboard us (设置键盘语言类型)
network --onboot no --device eth0 --bootproto dhcp (网络配置)
rootpw --iscrypted $6$BUb5tHjSmwp5DGc6$fFTzHZsbJ2qzDBIyPZ9qjw8ayZCNoV4ZbqiZOEDPWQS0AzNXYMyVXGP5H9wgvMdwEnW4amwO8u2wNVNGdlu200
(设置root密码)
firewall --disabled (设置防火墙)
authconfig --enableshadow --passalgo=sha512 (认证配置)
selinux --disabled (设置selinux)
timezone --utc Asia/Shanghai (设置时区)
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
(设置系统引导时的选项配置)
text (设置安装方式)
zerombr (设置分区前清空mbr)
part /boot --fstype=ext4 --size=200
part / --fstype=ext4 --size=60000
part swap --size=2000
(设置分区)
url --url="http://192.168.1.93/repo/centos/6/x86_64/" (设置程序包仓库的url)
%packages
@core
%end
三.配置tftp服务
目的:复制一些自动化安装过程中要用到的文件到tftp的家目录下
1.到/usr/share/syslinux/目录下复制相关文件到/var/lib/tftp/目录下
[root@bbs ~]# cp /usr/share/syslinux/{pxelinux.0,chain.c32,memdisk,mboot.c32,menu.c32} /var/lib/tftpboot/
2.复制需要用到的initrd.img和vmlinuz文件到/var/lib/tftp/目录下
[root@bbs ~]# cp /var/www/html/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/
initrd.img文件:加载内核需要用到的中间文件
vmlinuz:内核文件
3.在/var/lib/tftpboot目录下还需要创建一个名为pxelinux.cfg的目录,放置pxelinux.0的配置文件,名为default(该目录和文件的名字不能任意更改)
[root@bbs tftpboot]# mkdir pxelinux.cfg
编辑default文件
[root@bbs tftpboot]# vim pxelinux.cfg/default
配置内容如下:
default menu.c32 (设置安装界面类型)
timeout 10 (设置安装界面的超时时间)
label linux auto install
menu label Install CentOS 6.9 x86_64
kernel vmlinuz (指定内核文件)
append initrd=initrd.img ks=http://192.168.1.93/kickstarts/centos6.cfg
(指定加载内核时,传递给内核的参数)
6.启动tftp服务
编辑配置文件:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no (修改为no,默认为yes)
per_source = 11
cps = 100 2
flags = IPv4
}
[root@bbs ~]# service xinetd start (启动tftp服务)
完成以上配置后,创建一个虚拟主机进行实验即可