虚拟机A
1. 将防火墙状态设置为trusted
2.SELinux当前修改为permissive
3.SELinux永久状态修改为permissive
4.清空Yum缓存,检查Yum是否可用
虚拟机B
1. 将防火墙状态设置为trusted
2.SELinux当前修改为permissive
3.SELinux永久状态修改为permissive
4.清空Yum缓存,检查Yum是否可用
/etc/selinux/config (永久状态配置文件)
------------------------------------------------------------------------------------------
完成虚拟机访问外网
1.在真机实现,桥设备的创建(br0)
[root@room9pc14 /]# systemctl status NetworkManager(图形的)
[root@room9pc14 /]# systemctl status network (命令行)
[root@room9pc14 /]# systemctl stop NetworkManager(图形的)
[root@room9pc14 /]# systemctl status network (命令行)
vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0 #设备名
TYPE=Bridge #设备类型
BOOTPROTO=none #手工配置IP地址
ONBOOT=yes #开机自起动
IPADDR=172.40.50.114
NETMASK=255.255.255.0
GATEWAY=172.40.50.1
2.让真机的enp2s0真实网卡,连接br0,追加写入
vim /etc/sysconfig/network-scripts/ifcfg-enp2s0
BRIDGE=br0
3.重起network
4.虚拟机有一张网卡,选择br0桥设备
-----------------------------------------------------------------------------------------
部署DHCP服务器
一个局域网只能有一个DHCP服务器,否则会造成网络瘫痪
Dynamic Host Configuration Protocol
– 动态主机配置协议,由 IETF(Internet 网络工程师任务小组)组织制定,用来简化主机地址分配管理
主要分配以下入网参数
–IP地址/子网掩码/广播地址
– 默认网关地址、DNS服务器地址
DHCP地址分配的四次会话
– DISCOVERY --> OFFER --> REQUEST -->ACK
前提,虚拟机不要桥接真实网络
虚拟机A:
1.装软件包 dhcp
2.配置文件 /etc/dhcp/dhcpd.conf
[root@svr7 /]# vim /etc/dhcp/dhcpd.conf
末行:r /usr/share/doc/dhcp*/dhcpd.conf.example #读入其他文件
subnet 192.168.4.0 netmask 255.255.255.0 { #分配的网段
range 192.168.4.100 192.168.4.200; #分配的IP地址范围
option domain-name-servers 8.8.8.8; #分配DNS
option routers 192.168.4.254; #分配网关
default-lease-time 600; #IP地址默认租用时间
max-lease-time 7200; #IP地址租用最大时间
}
3.起服务 dhcpd
[root@svr7 /]# systemctl restart dhcpd
[root@svr7 /]# systemctl enable dhcpd
[root@svr7 ~]# nmcli connection modify eth0 ipv4.method auto #将IP设为自动获取
[root@svr7 ~]# nmcli connection up eth0 #激活
成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/111)
补充:route -n 查看网关
----------------------------------------------------------------------------------------
虚拟机A上:
杀死KVM虚拟化中的dnsmasq,dnsmasq会提供DHCP服务,会有冲突
[root@svr7 /]# netstat -anptu | grep :67
udp 0 0 0.0.0.0:67 0.0.0.0:* 8051/dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 2392/dnsmasq
[root@svr7 /]# killall dnsmasq
[root@svr7 /]# netstat -anptu | grep :67
----------------------------------------------------------------------------------------
PXE,Pre-boot eXecution Environment
– 预启动执行环境,在操作系统之前运行
– 可用于远程安装
工作模式
– PXE client 集成在网卡的启动芯片中
– 当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置、显示菜单,根据用户选择将远程引导程序下载到本机运行
----------------------------------------------------------------------------------------
PXE网络装机服务器
DHCP:提供IP地址
TFTP(简单的文本传输协议):提供众多的引导文件,硬件
FTP:提供众多的RPM包
DHCP、TFTP、FTP都搭建在一个服务器上
一、构建DHCP服务
1.指定下一个服务器IP的地址
[root@svr7 /]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.200;
option domain-name-servers 8.8.8.8;
option routers 192.168.4.254;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.4.7; #指定下一个服务器IP地址
filename "pxelinux.0"; #指定网卡引导文件,文件名称
}
2.重起dhcpd服务
pxelinux.0:网卡引导文件(安装说明书),二进制文件
需要安装一个软件,就可以生成pxelinux.0
-------------------------------------------------------------------------------------------
二、搭建TFTP服务
TFTP:简单的文件传输协议 端口:69
服务端程序:tftp-server 提供tftp服务的软件包
服务名:tftp
默认共享路径: /var/lib/tftpboot
1.安装tftp-server
2.启动tftp服务,并设置为开机自起
3.部署pxelinux.0文件
# yum provides */pxelinux.0 #查询仓库中哪一个包产生该文件
# yum -y install syslinux
# rpm -ql syslinux #查询软件包的安装清单
# rpm -ql syslinux | grep pxelinux.0 #找到pxelinux.0的路径
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #复制到共享目录下
# ls /var/lib/tftpboot/
-------------------------------------------------------------------------------------------
加载菜单文件default
pxelinux.0-------------》/var/lib/tftpboot/pxelinux.cfg/default
4.部署default默认的菜单文件
# mkdir /var/lib/tftpboot/pxelinux.cfg #创建放置default文件的目录
# mount /dev/cdrom /mnt/ #先确认虚拟机是否放入光盘文件
# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #“isolinux.cfg”为光盘的菜单文件
# ls -l /var/lib/tftpboot/pxelinux.cfg/default
# chmod 644 /var/lib/tftpboot/pxelinux.cfg/default #修改权限,方便修改内容,给这个目录的所有者附加写的文件
# ls -l /var/lib/tftpboot/pxelinux.cfg/default
5.部署 图形的模块 vesamenu.c32
# ls /mnt/isolinux/
# cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/
# ls /var/lib/tftpboot/
6.修改菜单文件/var/lib/tftpboot/pxelinux.cfg/default
# vim /var/lib/tftpboot/pxelinux.cfg/default
......
11 menu title NSD1709 PXE Server !
......
61 label linux
62 menu label ^Install RHEL7 #“^”表示快捷键I就可以跳转到此项,可以去掉
63 kernel vmlinuz #启动内核(不是Linux的内核),总管所有的硬件
64 append initrd=initrd.img #驱动程序
后面可以删除掉
7.部署启动内核与驱动程序
#cp /mnt/isolinux/initrd.img /mnt/isolinux/vmlinuz /var/lib/tftpboot/ #同时拷贝两个文件
# ls /var/lib/tftpboot/
initrd.img pxelinux.cfg vmlinuz
pxelinux.0 vesamenu.c32
---------------------------------------------------------------------------------------
pxelinux.0-------》/var/lib/tftpboot/pxelinux.cfg/default
default------》vesamenu.c32-----》vmlinuz、initrd.img
---------------------------------------------------------------------------------------
三、FTP服务,传输RPM包
1.搭建vsftpd服务,共享光盘所有内容
2.安装vsftpd软件
3.设置vsftpd服务启动,设置为开机自起动
4.共享光盘所有内容
[root@svr7 /]# mkdir /var/ftp/rhel7
[root@svr7 /]# mount /dev/cdrom /var/ftp/rhel7
[root@svr7 /]# ls /var/ftp/rhel7
[root@svr7 /]# firefox ftp://192.168.4.7/rhel7
--------------------------------------------------------------------------------
四、无人值守安装,生成应答文件
1.安装图形生成应答文件程序:system-config-kickstart
2.运行图形程序:system-config-kickstart
读取本地Yum仓库信息,要求Yum仓库客户端配置文件,仓库标识为
[development]
3.运行图形程序:system-config-kickstart 生成应答文件ks.cfg
[root@svr7 /]# ls /root/ks.cfg
[root@svr7 /]# vim /root/ks.cfg
4.搭建vsftpd服务,共享应答文件
[root@svr7 /]# cp /root/ks.cfg /var/ftp/
[root@svr7 /]# ls /var/ftp/
ks.cfg pub rhel7
-------------------------------------------------------------------------------------------
五、通过菜单指定ks.cfg应答文件
[root@svr7 /]# vim /var/lib/tftpboot/pxelinux.cfg/default
61 label linux
62 menu label Install RHEL7
63 kernel vmlinuz
64 append initrd=initrd.img ks=ftp://192.168.4.7/ks.cfg
----------------------------------------------------------------------------------------
总结:
DHCP------>IP地址、next-server、filename
tftp------>pxelinux.0、default
default---->vesamenu.c32、vmlinuz、initrd.img、ks.cfg
ks.cfg----> url="ftp://192.168.4.7/rhel7"