KVM创建Win10虚拟机

作者: oldboy 分类: IDC,Openstack 发布时间: 2023-01-04 09:23

1、在物理机上安装CentOS7.9系统

测速(可以忽略)

cd ~
wget --http-user=qwe --http-password=qwe http://61.160.213.184/dl/Testspeed.py
chmod +x Testspeed.py
./Testspeed.py

2、优化系统

#hostnamectl set-hostname kvm-`hostname -I|awk -F. '{print $3$4}'`
#重命名主机名后执行bash命令可以看到效果
bash
yum install -y wget vim bash-completion lrzsz net-tools nfs-utils yum-utils rdate ntpdate
#rdate -s time.nist.gov
ntpdate 61.160.213.184
clock -w
#echo "0 */1 * * * /usr/bin/rdate -s time.nist.gov &> /dev/null" /var/spool/cron/root
echo "0 */1 * * * /usr/sbin/ntpdate &> /dev/null" /var/spool/cron/root
PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"
echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' >>/etc/profile
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >>/etc/bashrc
echo -e "ClientAliveInterval 30 \nClientAliveCountMax 86400" >>/etc/ssh/sshd_config
sed -i '/#Port 22/a Port 52113' /etc/ssh/sshd_config
service sshd restart
#export DISPLAY=61.160.202.235:0.0
#export LANG=en_US.UTF-8
#echo -e "export DISPLAY=61.160.202.235:0.0\nexport LANG=en_US.UTF-8" >> /etc/profile
yum install -y wget
mkdir /etc/yum.repos.d/bak
\mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak  
wget -O /etc/yum.repos.d/CentOS-Base.repo   http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo   http://mirrors.aliyun.com/repo/epel-7.repo
sed -ri 's@(.*aliyuncs)@#\1@g' /etc/yum.repos.d/CentOS-Base.repo
yum clean all
yum makecache 
#yum update -y --exclude=kernel* --exclude=centos-release* --skip-broken
yum install -y vim net-tools lrzsz bash-completion nfs-utils
echo 'LANG="en_US.UTF-8"' >/etc/locale.conf
. /etc/locale.conf
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
sysctl -p
sed -i '/UseDNS/a UseDNS no' /etc/ssh/sshd_config
systemctl restart  sshd
systemctl stop firewalld.service
systemctl disable firewalld.servic
sed -ri 's#^(SELINUX=).*$#\1disabled#g' /etc/selinux/config
setenforce 0
systemctl stop NetworkManager
systemctl disable NetworkManager

3、安装KVM虚拟化环境

yum install -y qemu-kvm libvirt libvirt-daemon libvirt-client libvirt-daemon-driver-qemu virt-manager virt-install 
systemctl enable --now libvirtd

4、创建桥接网络

网卡名为:enp6s0f0,只需修改IP地址相关信息。

cp /etc/sysconfig/network-scripts/ifcfg-enp6s0f0{,.bak}
cat >/etc/sysconfig/network-scripts/ifcfg-br0<<EOF
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=static
IPADDR=61.160.195.198
NETMASK=255.255.255.0
GATEWAY=61.160.195.1
DNS1=218.2.2.2
DEFROUTE=yes
EOF
cat >/etc/sysconfig/network-scripts/ifcfg-enp6s0f0<<EOF
DEVICE="enp6s0f0"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=static
BRIDGE="br0"
EOF
systemctl restart network

网卡名为:em1,只需修改IP地址相关信息。

cp /etc/sysconfig/network-scripts/ifcfg-em1{,.bak}
cat >/etc/sysconfig/network-scripts/ifcfg-br0<<EOF
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO=static
IPADDR=61.160.195.198
NETMASK=255.255.255.0
GATEWAY=61.160.195.1
DNS1=218.2.2.2
DEFROUTE=yes
EOF
cat >/etc/sysconfig/network-scripts/ifcfg-em1<<EOF
DEVICE="em1"
ONBOOT="yes"
TYPE=Ethernet
BOOTPROTO=static
BRIDGE="br0"
EOF
systemctl restart network

5、拷贝模板镜像

从有模板镜像的服务器上拷贝,前提允许密钥访问,只需修改IP地址相关信息。

cd ~
scp -P 52113 clone-host.sh 61.160.236.32:/root
scp -P 52113 /etc/libvirt/qemu/template-win10-enterprise.xml 61.160.236.32:/etc/libvirt/qemu/
scp -P 52113 /var/lib/libvirt/images/template-win10-enterprise.qcow2 61.160.236.32:/var/lib/libvirt/images/

6、创建win10虚拟机

virsh define /etc/libvirt/qemu/template-win10-enterprise.xml
cd ~
bash clone-host.sh

说明:创建第一个虚拟机使用node1命令,创建第二个虚拟机使用node2命令

同样执行:bash clone-host.sh 再创建node2虚拟机

查看已经创建并运行的虚拟机:

virsh list

7、图形化管理虚拟机(推荐方式2)

1、使用MobaXterm软件映射窗口

输入:

virt-manager

选中某个虚拟机右击,可以进行重启、关机操作,上面的一个三角是开机,双击是查看系统(相当是接显)

2、Linux服务器管理神器cockpit

参考:Linux服务器管理神器cockpit – 笔记本

yum -y install cockpit cockpit-machines cockpit-dashboard
systemctl start cockpit.socket
systemctl enable cockpit.socket

访问(系统的用户名和密码登录)

http://host:9090

管理:

查看管理系统

登录系统,配置IP网络,再使用远程桌面工具测试是否可以远程并修改密码,同步好订单交付。

8、zabbix监控母机

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-1.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com/zabbix/#https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/#g' /etc/yum.repos.d/zabbix.repo 
yum install -y zabbix-agent2
mv /etc/yum.repos.d/zabbix.repo /etc/yum.repos.d/bak/
cp /etc/zabbix/zabbix_agent2.conf{,.bak}
cat >/etc/zabbix/zabbix_agent2.conf<<EOF
PidFile=/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=61.160.195.52
ServerActive=61.160.195.52
HostnameItem=system.hostname
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
Include=./zabbix_agent2.d/plugins.d/*.conf
EOF
systemctl start zabbix-agent2.service
systemctl enable zabbix-agent2.service

一键运行

hostnamectl set-hostname kvm-`hostname -I|awk -F. '{print $3$4}'`
yum install -y rdate
rdate -s time.nist.gov
echo "* */1 * * * rdate -s time.nist.gov &>/dev/null" >>/var/spool/cron/root
PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"
echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' >>/etc/profile
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >>/etc/bashrc
echo -e "ClientAliveInterval 30 \nClientAliveCountMax 86400" >>/etc/ssh/sshd_config
sed -i '/#Port 22/a Port 52113' /etc/ssh/sshd_config
service sshd restart
#export DISPLAY=61.160.202.235:0.0
#export LANG=en_US.UTF-8
#echo -e "export DISPLAY=61.160.202.235:0.0\nexport LANG=en_US.UTF-8" >> /etc/profile
yum install -y wget
mkdir /etc/yum.repos.d/bak
\mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak  
wget -O /etc/yum.repos.d/CentOS-Base.repo   http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo   http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache 
#yum update -y --exclude=kernel* --exclude=centos-release* --skip-broken
yum install -y vim net-tools lrzsz bash-completion nfs-utils
echo 'LANG="en_US.UTF-8"' >/etc/locale.conf
. /etc/locale.conf
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
sysctl -p
sed -i '/UseDNS/a UseDNS no' /etc/ssh/sshd_config
systemctl restart  sshd
systemctl stop firewalld.service
systemctl disable firewalld.servic
sed -ri 's#^(SELINUX=).*$#\1disabled#g' /etc/selinux/config
setenforce 0
systemctl stop NetworkManager
systemctl disable NetworkManager
yum install -y qemu-kvm libvirt libvirt-daemon libvirt-client libvirt-daemon-driver-qemu virt-manager virt-install 
systemctl enable --now libvirtd
yum -y install cockpit cockpit-machines cockpit-dashboard
systemctl start cockpit.socket
systemctl enable cockpit.socket
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-1.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com/zabbix/#https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/#g' /etc/yum.repos.d/zabbix.repo 
yum install -y zabbix-agent2
mv /etc/yum.repos.d/zabbix.repo /etc/yum.repos.d/bak/
cp /etc/zabbix/zabbix_agent2.conf{,.bak}
cat >/etc/zabbix/zabbix_agent2.conf<<EOF
PidFile=/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=61.160.195.52
ServerActive=61.160.195.52
HostnameItem=system.hostname
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
Include=./zabbix_agent2.d/plugins.d/*.conf
EOF
systemctl start zabbix-agent2.service
systemctl enable zabbix-agent2.service

还需要单独执行4、5、6的步骤

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

标签云