初始化:iptables|firewalld,selinux,ntp|chrony 环境:两台主机 一台主机A:DHCP,TFTP,HTTP,ks,yum 源 vmnet15,10.10.10.10 一台主机B:客户端pxe vmnet15 在A上实现。 一、http服务上需要实现的功能。 1.实现
环境:两台主机
一台主机A:DHCP,TFTP,HTTP,ks,yum 源 vmnet15,10.10.10.10
一台主机B:客户端pxe vmnet15
在A上实现。
一、http服务上需要实现的功能。
1.实现http服务,下载http服务,并且开启服务,设置成开机自动启动。(centos7)
yum install httpd systemctl start httpd systemctl enable httpd
2.配置启动文件yum源文件的挂载,yum源文件提前拷贝到机器上
[[email protected] ]#cd /var/www/html [[email protected] html]#mkdir -pv centos/{6,7}/os/x86_64/ 把拷贝好的光盘文件挂载上去,放的位置不同,挂载的位置也不同。在/etc/fstab添加下面2行 [[email protected] html]#vim /etc/fstab /data/CentOS-7-x86_64-Everything-1810.iso /var/www/html/centos/7/os/x86_64/ iso9660 defaults 0 0 /data/CentOS-6.10-x86_64-bin-DVD1.iso /var/www/html/centos/6/os/x86_64/ iso9660 defaults 0 0 自动挂载 [[email protected] html]#mount -a
3.应答文件的配置,在图形化界面配置生成,必须可以打开图形功能(centos7) 6和7的文件要在不同的机器上分别生成,6和7还是有一点点细微的差别的。
[[email protected] ~]#yum install system-config-kickstart [[email protected] ~]#system-config-kickstart
分区要自己设置的,由于图片原因,就不细写了
下面这个地方要注意了。必须要在本机的yum仓库中把一个yum名字改成development,不然不会出现下图的包的选择。需要什么包自己选择,也可以不选择,但是centos6必须选择一个包,生成文件后也可以删除,不选择的话会把所有的包都安装上。
安装后脚本,可以自己写个初始化脚本,图片被吃了
下面是应答文件的保存
生成文件后还可以修改。具体情况自己选择。
[[email protected] ]#cd /var/www/html [[email protected] html]#mkdir ksdir
把生成ks文件拷贝到里面
[[email protected] html]#cd ksdir/ [[email protected] ksdir]#tree . ├── ks6_desktop.cfg └── ks7_mini.cfg 0 directories, 2 files
这里贴一个ks文件,可以照的修改修改。6和7是有区别的。需要自己生成。
#platform=x86, AMD64, or Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard ‘us‘ # Root password rootpw --plaintext magedu # Use network installation url --url="http://10.10.10.10/centos/7/os/x86_64" # System language lang en_US # System authorization information auth --useshadow --passalgo=sha512 # Use text mode install text firstboot --disable # SELinux configuration selinux --disabled # Firewall configuration firewall --disabled # Network information network --bootproto=dhcp --device=eth0 # Reboot after installation reboot # System timezone timezone Africa/Abidjan # System bootloader configuration bootloader --append="net.ifnames=0" --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part / --fstype="xfs" --size=10000 part /boot --fstype="xfs" --size=1000 part swap --fstype="swap" --size=1024 %post useradd wang echo 123456 | passwd --stdin wang &> /dev/null mkdir /etc/yum.repos.d/backup cd /etc/yum.repos.d/ mv *.repo backup/ cat >base.repo <<EOF [base] baseurl=file:///misc/cd gpgcheck=0 EOF systemctl enable autofs %end %packages autofs tree vim-enhanced %end
最后的httpd的结构目录,这是没有挂载光盘文件之前的。index.html这个是没有什么用的文件。
[[email protected] html]#tree . ├── centos │ ├── 6 │ │ └── os │ │ └── x86_64 │ └── 7 │ └── os │ └── x86_64 ├── index.html └── ksdir ├── ks6_desktop.cfg └── ks7_mini.cfg 8 directories, 3 files
二、dhcp服务需要实现的功能
[[email protected] network-scripts]#yum install dhcp 把配置示例弄过来,然后在修改修改 [[email protected] network-scripts]#cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf [[email protected] ksdir]#vim /etc/dhcp/dhcpd.conf 主要修改如下,就不一一解释了,截图写的详细太累了,一一解释实在是太多了。 default-lease-time 86400; max-lease-time 864000; subnet 10.10.10.0 netmask 255.255.255.0 { range 10.10.10.11 10.10.10.100; range 10.10.10.130 10.10.10.254; option routers 10.10.10.10; option domain-name-servers 114.114.114.114,8.8.8.8; option domain-name "yuming.org"; next-server 10.10.10.10; filename "pxelinux.0"; } host mysql { hardware ethernet 00:0c:29:ec:ab:e6; fixed-address 10.10.10.5; }
配置好就可以启动服务等,在另一台机器上查看效果了,看看是否可以得到地址,注意一定要在同一个网段,看能否得到地址、网关等。
[[email protected] dhcpd]#systemctl start dhcpd [[email protected] dhcpd]#systemctl enable dhcpd
三、tftp服务
[[email protected] dhcpd]#yum install tftp-server [[email protected] dhcpd]#systemctl start tftp.service [[email protected] dhcpd]#systemctl enable tftp.service
客户端包。测试的时候可以使用
[[email protected] isolinux]#yum install tftp
四、相关PXE相关文件
[[email protected] tftpboot]#yum install syslinux [[email protected] tftpboot]#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ [[email protected] tftpboot]# cd /var/lib/tftpboot 安装菜单的准备工作 [[email protected] tftpboot]#mkdir /var/lib/tftpboot/pxelinux.cfg/ [[email protected] tftpboot]#cp /misc/cd//isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default 把光盘上的启动文件拷贝过来 mkdir /var/lib/tftpboot/centos{6,7} cp /var/www/html/centos/7/os/x86_64/isolinux/{vmlinux,initrd.img} /var/lib/tftpboot/centos7 cp /var/www/html/centos/6/os/x86_64/isolinux/{vmlinux,initrd.img} /var/lib/tftpboot/centos6 下面只是为了改一下开机的图片显示,改成简易的风格,还有一些菜单选项需要修改。 kernel和append的路径一定要写对了。 [[email protected] tftpboot]#cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot [[email protected] tftpboot]#vim pxelinux.cfg/default default menu.c32 timeout 600 menu title Auto Install CentOS label linux7 menu label Install ^Mini_CentOS 7 menu default kernel centos7/vmlinuz append initrd=centos7/initrd.img ks=http://10.10.10.10/ksdir/ks7_mini.cfg label linux6 menu label Install Desktop_CentOS 6 kernel centos6/vmlinuz append initrd=centos6/initrd.img ks=http://10.10.10.10/ksdir/ks6_desktop.cfg label local menu label Boot from ^local drive localboot 0xffff
最后的目录结构是这样的
[[email protected] tftpboot]#tree . ├── centos6 │ ├── initrd.img │ └── vmlinuz ├── centos7 │ ├── initrd.img │ └── vmlinuz ├── menu.c32 ├── pxelinux.0 └── pxelinux.cfg └── default 3 directories, 7 files
五、A机器搭建完成。B机器配置同样网段就可以测试使用了,效果图如下。