自从涉及Kubernetes、CI/CD、DevOps等起,发现我单台物理主机完全不满足需求,就算架设了VMware,还是发现单台物理机下内存很吃紧。面对如此现状,我思考着购买云主机,但云主机一台年均好几千,对于我这种小资小本的,自然没办法承受。后面决定,再花个几千块,再加台物理机,虽然很是心痛,但谁让我是搞技术的呢。这样的话,加上Ngrok网络穿透技术,我K8S集群内的内容就可以在外网访问,从而夯实我下面的整个架构想法。
但是还面临一个问题,也是我想写这篇拙作的意图,即在物理机上安装的是CentOS Server,怎样在没有界面的情况下操作VMware?
一、准备工作
1、下载VMware for linux:
https://my.vmware.com/cn/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation_pro/15_0
2、下载CentOS镜像:
http://mirror.jdcloud.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso
3、开启Bios对VT-X的支持,即对虚拟化技术的支持。
4、yum -y install perl gcc kernel-devel libX11 libXinerama libXcursor libXtst
二、开始安装
1、安装VMware,本来默认VMware是以图形界面安装的,但由于我们的是Server的系统,没有界面支持,所以选择命令的形式安装。
./VMware-Workstation-Full-15.1.0-13591040.x86_64.bundle \
--console \
--eulas-agreed \
--required \
-s vmware-workstation serialNumber UG5J2-0ME12-M89WY-NPWXX-WQH88
2、参数解释
--console #命令行模式安装
--eulas-agreed #自动同意安装协议
--required #显示安装协议,并自动安装
-s vmware-workstation serialNumber #输入系列号
3、重启服务器
4、关闭防火墙,由于目前还没找到用命令的方式创建虚拟机,需要用装有VMware图形界面的机器连接上来,创建虚拟机。
4.1、service firewalld stop
4.2、图示
5、实例,只是想证明本人是创建成功的。
6、在服务器命令行下查看当前有哪些虚拟机
[root@localhost ~]# vmrun list
三、命令操作虚拟机
1、虚拟机创建后就可以命令操作虚拟机了,可以不用再借住远程图形界面操作了。
2、命令
# vmrun -T ws start "/var/lib/vmware/Shared VMs/k8s01/k8s01.vmx" nogui #启动无图形界面虚拟机 (-T是区分宿主机的类型,ws|server|server1|fusion|esx|vc|player,可能比较常用的是ws、esx和player,不过没有加-T在Workstation也能正常运行,
可能esx和server就需要了)
# vmrun start "/var/lib/vmware/Shared VMs/k8s01/k8s01.vmx" gui启动带图形界面虚拟机
# vmrun stop "/var/lib/vmware/Shared VMs/k8s01/k8s01.vmx" hard | soft强制关闭虚拟机(相当于直接关电源) | 正常关闭虚拟机
# vmrun reset "/var/lib/vmware/Shared VMs/k8s01/k8s01.vmx" hard | soft冷重启虚拟机 | 热重启虚拟机
# vmrun suspend "/var/lib/vmware/Shared VMs/k8s01/k8s01.vmx" hard | soft挂起虚拟机(可能相当于休眠)
# vmrun pause "/var/lib/vmware/Shared VMs/k8s01/k8s01.vmx"暂停虚拟机
# vmrun unpause "/var/lib/vmware/Shared VMs/k8s01/k8s01.vmx"停止暂停虚拟机
# vmrun list列出正在运行的虚拟机
# ps aux | grep vmx另一种查看正在运行虚拟机的方法
# vmrun -T ws snapshot "/var/lib/vmware/Shared VMs/k8s01/k8s01.vmx" snapshotName创建一个快照
# vmrun -T ws reverToSnapshot "/var/lib/vmware/Shared VMs/k8s01/k8s01.vmx" snapshotName从一个快照中恢复虚拟机
# vmrun -T ws listSnapshots "/var/lib/vmware/Shared VMs/k8s01/k8s01.vmx"列出虚拟机快照数量及名称
# vmrun -T ws deleteSnapshot "/var/lib/vmware/Shared VMs/k8s01/k8s01.vmx" snapshotName删除一个快照