RHEL——制作母盘

发布时间:2026/6/27 14:32:17

RHEL——制作母盘 # 制作一个红帽 Linux 系统的虚拟机作为母盘然后通过母盘克隆出 n 个虚拟机来做实验或项目1. 下载红帽的镜像# 建议下载 rhel9.6 版本https://access.redhat.com/downloads2. 设置网络环境# 右击 VMwara——属性——快捷方式——高级——勾选用管理员身份运行——依次点击确定# 点击导航栏——编辑——虚拟网络编辑器如果虚拟机的网络有问题可点击左下角的还原默认设置# 注意自己 NAT 的网关之后的 NAT 网卡的主机都要配好自己的网关否则虚拟机远程连接不了点击 VMnet8 NAT···——NAT设置——查看网关# 按win键R键出现运行窗口输入 cmd按Ctrl键Shift键Enter键可以管理员身份运行命令提示符直接回车进入命令提示符在命令提示符输入 ipconfig 查看网络观察虚拟机的 IP 网段是否与 Windows 查看的虚拟机的 IP 网段一致C:\Users\Forgetipconfig# 如果虚拟机的 IP 网段与 Windows 查看的不一致可直接修改虚拟机的 IP 网段# 如果不想修改虚拟机的 IP 网段则可以修改 Windows 的 VMwara 的 IP 网段按Win键S键输入控制面板点击控制面板——网络和 Internet——网络和共享中心——更改适配器设置——又击 VMnet1/VMnet8——属性——双击 Internet 协议版本4——修改 IP 网段3. 创建一个新的虚拟机1创建虚拟机# 点击创建新的虚拟机依次点击下一步# 输入自己的虚拟机名称# 处理器的内核数量增加到4个如果内存资源有限将内核数量减少到1-2个# 磁盘类型建议选择 SATA 或 NVMe# 最大磁盘大小调到100G2修改虚拟机设置点击编辑虚拟机设置点击硬件——CD/DVD——连接使用 ISO 映像文件一定要选择好自己的镜像文件点击硬件——显示取消加速3D图形指定监视器数量为1最大分辨率为1024x768勾选拉伸模式点击选项——高级——固件类型勾选 BIOS然后点击确定3安装虚拟机# 点击开启虚拟机然后选择虚拟机语言# 设置虚拟机的磁盘分区点击 Installation Destination——编辑安装位置选择 Custom然后点击左上角的 Done选择 Standard Partition——Click··· 然后删除 /home 分区设置 /boot——1G/swap——4G/——95GUpdate Settings——更新设置点击左上角的 Done然后点击 Accept Changes# 选择软件点击 Softwara Selection然后选择 Server服务器再点击 Done#注意如果需要图形化的虚拟机就默认选择 Server with GUI可做两台母盘一台图形化一台无图形化图形化虚拟机一般只用来做测试因为耗内存较大# 设置虚拟机密码点击 Root Password——输入密码勾选 Allow···再点击 Done# 启动虚拟机点击右下角的 Begin Installation 进行启动进度条跑完后点击 Reboot System4. 配置虚拟机环境1创建本地仓库# 输入用户root和密码然后给主机重命名 RHEL9.6_db然后点击导航栏上的虚拟机——可移动设备——CD/DVD——连接或者点击右下角倒数第二个圆圈图标——连接都是连接镜像的[rootRHEL9 ~]# hostnamectl hostname RHEL9.6_db# 创建要挂在镜像的目录 /rhel9.6_cd将 /dev/sr0 挂载到 /rhel9.6_cd 下用 cat 来写本地仓库 cd.repo[rootRHEL9 ~]# mkdir /rhel9.6_cd [rootRHEL9 ~]# mount /dev/sr0 /rhel9.6_cd/ [rootRHEL9 ~]# cat /etc/yum.repos.d/cd.repo EOF [BaseOS] name cd_BaseOS baseurl file:///rhel9.6_cd/BaseOS gpgcheck 0 [AppStream] name cd_AppStream baseurl file:///rhel9.6_cd/AppStream gpgcheck 0 EOF2设置 vim 编辑器属性# 可以用 vim 编辑~/.vimrc设置属性也可以直接用 cat 写入将mount /dev/sr0 /rhel9.6_cd这条命令写到/etc/rc.local下然后给/etc/rc.local添加可执行权限实现开启自动挂载镜像用 reboot 重启虚拟机[rootRHEL9 ~]# vim ~/.vimrc 1 set nu 2 set autoindent 3 set tabstop4 [rootRHEL9 ~]# vim /etc/rc.local 15 mount /dev/sr0 /rhel9_cd [rootRHEL9 ~]# chmod x /etc/rc.local3远程连接虚拟机# 查看挂载目录 /rhel9.6_cd 是否成功自动挂载镜像然后再查看 ip用 MobaXterm 来远程连接虚拟机方便敲代码# 点击左上角的 Session——SSH然后输入 IP 地址、root 用户5. 创建网络脚本1创建脚本# 可通过:set nonu这条命令来取消行号创建好脚本后许给脚本授权能方便使用脚本[rootRHBASE ~]# vim /bin/ip.sh #!/bin/bash [ $# -lt 3 ] { echo error!! exit } CONNECTIONnmcli connection show | awk /$1/{print $1}|grep $1 [ $? -ne 0 ] { echo $1 is in used !! nmcli connection delete $CONNECTION } [ $4 noroute ] { cat /etc/NetworkManager/system-connections/$1.nmconnnection EOF [connection] id$1 typeethernet interface-name$1 [ipv4] methodmanual address1$2/24 EOF }||{ cat /etc/NetworkManager/system-connections/$1.nmconnection EOF [connection] id$1 typeethernet interface-name$1 [ipv4] methodmanual address1$2/24 gateway${2%.*}.2 dns8.8.8.8; EOF } chmod 600 /etc/NetworkManager/system-connections/$1.nmconnection nmcli connection reload nmcli connection up $1 hostnamectl hostname $3 cat /etc/hosts EOF 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 $2 $3 EOF ip a s $1 hostname [rootlocalhost ~]# chmod x /bin/ip.sh2脚本分析[rootRHEL9 ~]# chmod x /bin/ip.sh# 给 ip.sh 添加执行权限之后可直接用 ip.sh 来改网络# 我写的脚本的第一个参数是网卡第二个参数是 ip第三个参数是主机名第四个参数没有或者 noroute这段代码的意思是判断传参数的个数$#是否小于(-lt)3如果小于3回复 error 并直接退出脚本即不执行之后的命令[ $# -lt 3 ] { echo error!! exit }CONNECTIONnmcli connection show | awk /$1/{print $1}|grep $1将nmcli connection show的结果网卡信息传给 awk/$1/——执行脚本传的第一个参数awk $1——匹配第一个参数的行{print $1}——打印每行的第一列grep $1——再次过滤第一个参数将得到的最后结果传给 CONNECTION即网卡名称[ $? -ne 0 ] { echo $1 is in used !! nmcli connection delete $CONNECTION }$?——上一条命令得到的结果-ne——不等于则该命令的意思是如果 CONNECTION 这个参数的结果等于0即没有该网卡就不执行这条命令继续执行下一条如果 CONNECTION 这个参数的结果不等于0即已经有该网卡就继续执行这条命令说明该网卡以使用删除掉这个网卡[ $4 noroute ] { cat /etc/NetworkManager/system-connections/$1.nmconnection EOF [connection] id$1 typeethernet interface-name$1 [ipv4] methodmanual address1$2/24 EOF }$1——第一个参数即网卡$2——第二个参数即 ip$4——第四个参数即有无 noroute有网关则不行第四个参数没有网关则写 noroutecat ——覆盖cat ——追加/etc/NetworkManager/system-connections/$1.nmconnection——某网卡的配置信息 EOF——代码结束语id$1——连接时的网卡名称typeethernet——有线连接类型lo 网卡loopback 是回环接口类型interface-name——物理网卡名称methodmanual——手动设置address1$2/24——第一个ip为第二个参数一个网卡可以有多个ip即address2···则这条命令的意思是如果第四个参数等于 noroute 就继续执行这条命令将以下的代码直接覆盖原来的网卡配置文件中的代码||{ cat /etc/NetworkManager/system-connections/$1.nmconnection EOF [connection] id$1 typeethernet interface-name$1 [ipv4] methodmanual address1$2/24, gateway${2%.*}.2 dns8.8.8.8; EOF }||——或的意思即上面没有第四个参数就执行这条命令gateway${2%.*}.2——截取第二个参数“%”最懒模式从右边开始删除“.”以点为标识符即删到标识符停止包括标识符本身“*”无论是什么全都删除“.2”是 NAT 网络的默认网关回看第2章虚拟网络环境dns8.8.8.8——设置 dnschmod 600 /etc/NetworkManager/system-connections/$1.nmconnection nmcli connection reload nmcli connection up $1 hostnamectl hostname $3chmod 600——给该网络配置文件设置可读可写权限刷新网络配置激活网卡设置主机名称cat /etc/hosts EOF 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 $2 $3 EOF覆盖源解析文件的内容给 ip 和主机名添加解析ip a s $1 hostnameip a s $1——ip address show $1查看网络信息输出主机名6.配置网络环境1设置新网络# 编辑内核文件/boot/loader/entries/xxx···xxx.x86_64.conf系统启动时加载的信息文件在 options内核启动参数最后面添加net.ifnames0即关闭可预测命名网卡顺序从0开始然后重启虚拟机[rootRHEL9 ~]# vim /boot/loader/entries/f6cd27ec49f440e9b4301e0c2c22bdcc-5.14.0-570.12.1.el9_6.x86_64.conf# 然后删除 ens33 网卡通过网络脚本来添加新的 ip[rootRHEL9 ~]# nmcli connection show [rootRHEL9 ~]# nmcli connection delete ens33 [rootRHEL9 ~]# nmcli connection delete Wired\ connection\ 1 [rootRHEL9 ~]# ip.sh eth0 192.168.153.137 RHEL92关闭防火墙# 在做运维管理和测试环境时避免性能损耗和网络冲突需要关闭防火墙# 关闭 firewalld 和 selinux立即关闭 firewalld 并锁住然后修改 selinux 的数据库文件/etc/sysconfig/selinux将第22行修改为 disabled再重启就能生效了[rootRHEL9 ~]# systemctl disable --now firewalld.service Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [rootRHEL9 ~]# systemctl mask firewalld.service Created symlink /etc/systemd/system/firewalld.service → /dev/null. [rootRHEL9 ~]# vim /etc/sysconfig/selinux7.设置ssh无密登录1设置无密登录[rootRHEL9 ~]# ssh-keygen -f /root/.ssh/id_rsa -P [rootRHEL9 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub rootlocalhost [rootRHEL9 ~]# vim /etc/ssh/ssh_confi 20 Host * 21 StrictHostKeyChecking no [rootRHEL9 ~]# cp -rp /root/.ssh/* /etc/skel/ [rootRH9gui ~]# ls /etc/skel/ authorized_keys id_rsa id_rsa.pub known_hosts known_hosts.old# 上面四条命令操作后母盘就做好了以下是无密登录的解析和测试2分析和测试# 设置无密登录# 生成无密码的公钥和私钥[rootRHEL9 ~]# ssh-keygen -f /root/.ssh/id_rsa -P Generating public/private rsa key pair. Your identification has been saved in /root/.ssh/id_rsa Your public key has been saved in /root/.ssh/id_rsa.pub The key fingerprint is: SHA256:lwLgxPKatmPMP4oEb2B/QqZV84HjortMkji0H16TLY rootRHEL9 The keys randomart image is: ---[RSA 3072]---- | .o | | .o.. | | o. . | | . . . | |o.o S o | |oX.. o | |.*.. | |B*oooE | |*oo. | ----[SHA256]----- [rootRHEL9 ~]# ls /root/.ssh/ id_rsa id_rsa.pub# 上锁[rootRHEL9 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub rootlocalhost /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: /root/.ssh/id_rsa.pub /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys rootlocalhosts password: Number of key(s) added: 1 Now try logging into the machine, with: ssh rootlocalhost and check to make sure that only the key(s) you wanted were added.# 然后关闭虚拟机克隆两台该虚拟机右击 RHEL9.6_db——管理——克隆依次下一步分别起名 node1、node2分别通过网络脚本设置 ip# 在 node1 主机上远程联连接 node2在 node2 远程连接 node1# 优化关闭响应# 远程连接成功后但每次远程连接都需要输入 yes所以开启母盘 RHEL9.6_db远程连接一下设置关闭响应[rootRHEL9 ~]# man ssh#查看 ssh 能用什么命令多回车几行输入/-o找到StrictHostKeyChecking参数### 冷知识在远程虚拟机中光标选中后即复制可通过此操作来快速复制粘贴[rootRHEL9 ~]# vim /etc/ssh/ssh_confi 20 Host * 21 StrictHostKeyChecking no# 关闭虚拟机后删除之前克隆出来的 node1、node2两台虚拟机右击该虚拟机——管理——从磁盘中删除再次通过母盘 RHEL9.6_db 克隆出两台虚拟机设置 ip测试远程登录# 在两台主机上都执行 exit 退出登录在 node1 上创建一个新用户 haha在 node2 上远程连接 haha 用户# 设置建立新用户能无密登录# 通过测试可看到新建立的用户是不能无密登录的所以再次回到母盘上设置用过/etc/skel 用户的母文件新建用户时系统会把母文件下的所有文件和目录复制到新用户的家目录下来实现新建用户的无密登录即将/root/.ssh公钥和私钥文件复制到用户的母文件/etc/skel[rootRHEL9 ~]# cp -rp /root/.ssh/* /etc/skel/# 关闭虚拟机再次克隆测试新建用户是否能无密登录### 至此母盘就做好了然后给母盘做一个快照点击导航栏中间的“时钟”克隆是建议用链接克隆可以节省空间。链接克隆后此时母盘相当于应该容器当链接出来的主机不要后不仅要在虚拟机上删除还要在母盘的快照里删除链接8. 扩展优化

相关新闻