赞
踩
(1)准备3台虚拟机,一台Windows虚拟机PC1(不限制win7或者win10);一台Linux服务器server1(IP是172.16.100.100/24)、一台网卡为DHCP类型的Linux服务器server2和一台空虚拟机server3。虚拟机网络使用仅主机模式。
(2)server1提供DHCP服务给PC1和server2分配对应网段的IP地址。
(3)server1提供PXE服务,能够使server3可以自动安装Centos7 Linux操作系统。
(4)在server1安装和启动httpd服务对外提供Web服务,并搭建DNS服务负责解析域名www.kgc.com 为172.16.100.100,使得PC1能够使用域名www.kgc.com访问Web服务器。
(5)在server2安装NFS服务,提供共享目录/share ,在/share目录中创建文件index.html,文件内容自定义。把server2的/share目录通过NFS挂载到server1的/var/www/html目录下,使得PC1访问Web服务时能够显示自定义的内容。
server1
[root@clr ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=7acafc56-e5b0-4abd-9a96-27db5a96e4b9 DEVICE=ens33 ONBOOT=yes IPADDR=172.16.100.100 NETMASK=255.255.255.0 GATEWAY=172.16.100.2 DNS1=172.16.100.2
注意:
此时由于更改了虚拟机的IP地址,使用Xshell或者MobaXterm将无法连接虚拟机,即使修改为正确的IP地址,依然无法连接;这是因为虚拟机server1修改后的网段为172.16.100.0,与宿主机不在同一个网段。解决办法:
设置虚拟机为仅主机模式,并将虚拟机和宿主机的VMnet都设置在同一网段172.16.100.0,即可解决问题。
第一问中,只要将server1的IP地址修改为题目指定的IP地址,并且Xshell或者MobaXterm能够连接到虚拟机server1就可以了。
server1
[root@clr ~]# systemctl stop firewalld #临时关闭防火墙 [root@clr ~]# setenforce 0 [root@clr ~]# mount /dev/sr0 /mnt #将光盘/dev/sr0挂载到/mnt目录下 mount: /dev/sr0 写保护,将以只读方式挂载 [root@clr ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 tmpfs 394M 28K 394M 1% /run/user/0 /dev/sr0 4.4G 4.4G 0 100% /mnt #新挂载的光盘 [root@clr /mnt]# yum install -y dhcp [root@clr /etc/dhcp]# vim dhcpd.conf # see /usr/share/doc/dhcp*/dhcpd.conf.example #原始的dhcpd.conf配置文件中内容为空,需要将这个文件下面的/usr/share/doc/dhcp*/dhcpd.conf配置文件复制到dhcpd.conf [root@clr ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #将/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example这个文件中的内容复制到/etc/dhcp/dhcpd.conf这个文件中 cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes [root@clr ~]# systemctl start dhcpd #开启dhcp服务器 [root@clr ~]# vim /etc/dhcp/dhcpd.conf option domain-name-servers 172.16.100.100; #切记此处一定要指定DNS服务器的地址为server1的IP地址,否则server2无法通过server1的DHCP服务自动获取IP地址和默认网关 default-lease-time 600000; #增大此处此处DHCP服务的租约时间,防止实验过程中由于租约到期,而导致server2没有ip地址 max-lease-time 7200000; #网段声明 subnet 172.16.100.0 netmask 255.255.255.0 { #声明要分配的网段地址 range 172.16.100.110 172.16.100.210; #设置地址池 option routers 172.16.100.100; #指定默认网关地址,也就是server1的IP地址 }
server2
[root@myhost2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=57f3a172-be68-4537-b551-761a3086b4f8 DEVICE=ens33 ONBOOT=yes
[root@myhost2 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.100.110 netmask 255.255.255.0 broadcast 172.16.100.255
inet6 fe80::7426:183f:1077:c9d4 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e2:4b:fe txqueuelen 1000 (Ethernet)
RX packets 13052 bytes 1173848 (1.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6099 bytes 711656 (694.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
server1
(1)安装并启用 TFTP 服务
[root@clr ~]# systemctl stop firewalld
[root@clr ~]# setenforce 0
[root@clr ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
安装xinetd和tftp-server服务;
修改/etc/xinetd.d/tftp配置文件;
[root@clr ~]# vim /etc/xinetd.d/tftp # default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = no user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } ###开启tftp和xinetd服务,并设置为开机自启动 [root@clr ~]# systemctl start tftp [root@clr ~]# systemctl enable tftp [root@clr ~]# systemctl start xinetd [root@clr ~]# systemctl enable xinetd
(2)启用 DHCP 服务
[root@clr ~]# vim /etc/dhcp/dhcpd.conf option domain-name-servers 172.16.100.100; #切记此处一定要指定DNS服务器的地址为server1的IP地址,否则server2无法通过server1的DHCP服务自动获取IP地址和默认网关 default-lease-time 600000; max-lease-time 7200000; # Use this to enble / disable dynamic dns updates globally. ddns-update-style none; next-server 172.16.100.100; filename "pxelinux.0"; subnet 172.16.100.0 netmask 255.255.255.0 { range 172.16.100.110 172.16.100.210; option routers 172.16.100.100; #定义DHCP服务的网关,也就是server1的IP地址 此处默认网关地址一定要指向TFTP服务器的IP地址 } [root@clr ~]# systemctl start dhcpd #开启dhcp服务,并设置为开机自启动 [root@clr ~]# systemctl enable dhcpd
(3)准备 Linux 内核、初始化镜像文件
[root@clr ~]# cd /mnt/images/pxeboot #已事先把光盘挂载到/mnt目录中
[root@clr ~]# cp vmlinuz /var/lib/tftpboot/ #复制Linux系统的内核文件 到TFTP根目录下
[root@clr ~]# cp initrd.img /var/lib/tftpboot/ #复制 初始化镜像文件(linux引导加载模块)到TFTP根目录下
(4)准备 PXE 引导程序
安装syslinux软件;
将pxelinux.0文件复制到tftp的根目录/var/lib/tftpboot/中;
[root@clr ~]# yum -y install syslinux #PXE引导程序由软件包 syslinux 提供
[root@clr ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #复制 PXE引导程序 到TFTP根目录下
(5)安装FTP服务,准备CentOS 7 安装源
[root@clr ~]# yum -y install vsftpd #安装TFTP服务
[root@clr ~]# mkdir /var/ftp/centos7
[root@clr ~]# mount /dev/sr0 /var/ftp/centos7 #将光盘镜像文件挂载到ftp根目录下的centos7目录中
[root@clr ~]# systemctl start vsftpd #开启ftp服务,并设置为开机自启动
[root@clr ~]# systemctl enable vsftpd
(6)配置启动菜单文件
###默认的启动菜单文件在TFTP根目录的 pxelinux.cfg子目录下,文件名为default
[root@clr ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@clr ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default auto #指定默认入口名称
prompt 0 #设置是否等待用户选择,“1”表示等待用户控制
label auto #图形安装(默认)引导入口,label用来定义启动项,指定入口类型
kernel vmlinuz #kernel 和 append用来定义引导参数,kernel指定内核文件
append initrd=initrd.img method=ftp://172.16.100.100/centos7
#append用于指定系统的引导文件,initrd用于设置系统引导参数,method用于指定安装源的软件包
(7)实现Kickstart无人值守安装
准备安装应答文件,安装system-config-kickstart 工具
[root@clr ~]# yum install -y system-config-kickstart
应答文件中基本配置选项如下:
应答文件中安装方法选项如下:
应答文件中引导装载程序选项如下:
应答文件中分区信息选项如下:
分配/boot分区;
分配swap分区;
分配根目录;
分配后的内存信息;
应答文件中网络配置选项如下:
应答文件中验证选项保持默认配置,不做任何操作;
应答文件中显示配置选项如下:
应答文件中显示配置保持默认操作,此处不做配置;
应答文件中软件包选择选项如下:
应答文件中预安装家脚本保持默认操作,此处不做配置;
应答文件中安装后脚本选项如下:
保存配置文件;
配置图形化脚本文件;
[root@clr ~]# vim /var/ftp/ks.cfg reboot #platform=x86, AMD64, 或 Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard 'us' # Root password rootpw --iscrypted $1$n82FaQp2$UbGYQRTr4Dyzue1GLWfqe1 # System language lang zh_CN # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical firstboot --disable # SELinux configuration selinux --disabled # Firewall configuration firewall --disabled # Network information network --bootproto=dhcp --device=ens33 # Reboot after installation reboot # System timezone timezone Africa/Abidjan # Use network installation url --url="ftp://172.16.100.100/centos7" # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype="xfs" --size=500 part swap --fstype="swap" --size=4096 part / --fstype="xfs" --grow --size=1 %post --interpreter=/bin/bash mkdir /etc/yum.repos.d/repo.bak mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo.bak echo [local] name=local baseurl=file:///mnt enabled=1 gpgcheck=0 > /etc/yum.repos.d/local.repo %end %packages @^gnome-desktop-environment @base @core @desktop-debugging @development @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 %end
将生成的自动应答文件ks.cfg文件复制到ftp的根目录中;
添加自动应答文件ks.cfg的位置;
[root@clr ~]# vim /var/lib/tftpboot/pxelinux.cfg/default default auto prompt 0 label auto kernel vmlinuz append initrd=initrd.img method=ftp://172.16.100.100/centos7 ks=ftp://172.16.100.100/ks.cfg label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://172.16.100.100/centos7 label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://172.16.100.100/centos7
(8)验证一键自动化装机是否成功;
server1
(1)安装http并启动http服务;
[root@clr ~]# yum install -y httpd
[root@clr ~]# systemctl start httpd
[root@clr ~]# systemctl enable httpd
(2)安装并修改DNS的主配置文件;
[root@clr ~]# yum install -y bind #同时安装DNS服务(软件名叫bind)
已加载插件:fastestmirror, langpacks
[root@clr ~]# vim /etc/named.conf #修改主配置文件
options {
listen-on port 53 { 172.16.100.100; }; #监听53号端口,并使用172.16.100.100(也就是本机server1的ip地址)提供DNS域名解析服务
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; #允许所有网段使用本服务器的DNS解析服务
(3)修改区域配置文件,添加正反向区域配置;
[root@clr ~]# vim /etc/named.rfc1912.zones
zone "kgc.com" IN {
type master;
file "kgc.com.zone";
};
zone "100.16.172.in-addr.arpa" IN {
type master;
file "kgc.com.zone.local";
};
(4)配置正反向区域数据文件;
[root@clr ~]# cd /var/named [root@clr /var/named]# ls data dynamic named.ca named.empty named.localhost named. [root@clr /var/named]# cp -a named.localhost kgc.com.zone #配置正向区域数据文件,并保留源文件的权限和属主的属性复制 [root@clr /var/named]# cp -a named.localhost kgc.com.zone.local #配置反向区域数据文件,并保留源文件的权限和属主的属性复制 [root@clr /var/named]# ls data dynamic kgc.com.zone kgc.com.zone.local named.ca named.empty named.localhost named. [root@clr /var/named]# vim kgc.com.zone #修改并配置正向区域数据文件 $TTL 1D @ IN SOA @ admin.kgc.com. ( #“@”符号表示当前的DNS区域名,末尾的‘.’是根域的意思,切记不可省略 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 172.16.100.100 #记录主机IP地址 www IN A 172.16.100.100 #记录正向解析www.kgc.com对应的IP为172.16.100.100 ayu IN A 172.16.100.201 #记录正向解析ayu.kgc.com对应的IP为172.16.100.201 [root@clr /var/named]# vim kgc.com.zone.local #修改并配置反向区域数据文件 $TTL 1D @ IN SOA kgc.com admin.kgc.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS kgc.com. #记录当前区域的DNS服务器名称 A 172.16.100.100 #记录主机IP地址 100 IN PTR www.kgc.com. #记录反向解析172.16.100.100对应的域名为www.kgc.com 201 IN PTR ayu.kgc.com. #记录反向解析172.16.100.201对应的域名为ayu.kgc.com
[root@clr /var/named]# systemctl start named #启动DNS服务
[root@clr /var/named]# systemctl enable named #设置DNS服务开机自启动
客户端win10
(1)关闭客户端NAT模式中的使用本地DHCP服务将IP地址分配给虚拟机;
(2)更改网络连接设置,选择自动获取IP地址和DNS服务器地址;
(3)验证DHCP和DNS服务器是否生效;
server2
(1)安装软件,启动服务
服务端安装并启动nfs-utils、rpcbind软件包;
[root@clr ~]#yum -y install nfs-utils rpcbind
[root@clr ~]#systemctl start rpcbind #切记一定要先启动rpcbind服务,再启动nfs服务
[root@clr ~]#systemctl start nfs
[root@clr ~]#systemctl enable rpcbind #将rpcbind服务和nfs服务设为开机启动
[root@clr ~]#systemctl enable nfs
(2)准备共享目录
修设配置文件,设置共享目录;
[root@clr ~]#mkdir -p /opt/share
[root@clr ~]#echo 234 >> /opt/share/index.html #在共享目录/opt/share/index.html中写入自定义内容234
[root@clr ~]#vim /etc/exports
/opt/share 172.168.100.0/24(rw,sync,no_root_squahs)
[root@clr ~]# systemctl restart nfs #重新启动nfs服务
[root@clr ~]# showmount -e 172.16.100.110
Export list for 172.16.100.110:
/opt/share 172.16.100.0/24
server1
(1)安装软件,启动服务
客户端安装并启动rpcbind软件包;
[root@clr ~]#yum -y install rpcbind
[root@clr ~]#systemctl start rpcbind #启动rpcbind服务
[root@clr ~]#systemctl enable rpcbind #将rpcbind服务设为开机启动
(2)在客户端创建指定挂载目录,并将172.16.100.100:/opt/sharel挂载到server1的/var/www/html目录下;
[root@clr ~]# showmount -e 172.16.100.110 #查看nfs服务端是否已经成功将指定目录共享出来
Export list for 172.16.100.110:
/opt/share 172.16.100.0/24
[root@clr ~]# mkdir /opt/mydata
[root@clr ~]# mount 172.16.100.100:/opt/share /var/www/html #将172.16.100.100:/opt/sharel共享目录挂载到server1的/var/www/html目录下
客户端win10
至此,该实验已圆满完成!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。