近期,有同学们准备在Mac电脑组装一个vm虚拟机,用于学习培训K8S。今日就先共享一篇陌溪的文章内容。
说到vm虚拟机,大家最先想起的是Vmware和ParallelsDesktop,浏览器打开找了找,发觉都只给予付钱版本号,仅有ParallelsDesktop给予了14天的免费使用。
随后,逐渐试着应用完全免费VirtualBox,可是在组装CentOS的情况下,好像由于macOS最新版的缘故,一直出错,耗费了好几天的時间,试过各种各样计划方案,最后处理未果,就放弃了。。
就在陌溪要舍弃的情况下,忽然在Ubuntu官方网站开展游泳的情况下,发觉了一款叫Multipass的物品。
它可以迅速在电脑上迅速构建一个轻量的vm虚拟机,而且对比于Vmware更为轻巧,只需一行命令迅速创建Ubuntuvm虚拟机。
Multipass是一个轻巧vm虚拟机管理工具,是由Ubuntu运营方Canonical所发布的开源软件。软件环境适用Linux、Windows、macOS。在不一样的电脑操作系统上,应用的是不一样的虚拟技术。在Linux上应用的是KVM、Window上应用Hyper-V、macOS中应用HyperKit以最少花销运作VM,适用在笔记本电脑仿真模拟中小型云。
与此同时,Multipass给予了一个命令行页面来运行和管理方法Linux实例。下载一个全新升级的镜像文件必须几秒的時间,而且在数分钟内就可以运行并运作VM。(大呼好家伙,大幅度降低的大家安装虚拟机的成本费了)
Multipass官方网站:https://multipass.run/
Multipass官方网站
逐渐应用
在应用Multipass以前,最先必须组装Multipass专用工具,可以打开官网开展下载
https://multipass.run/
挑选相对应的电脑操作系统,由于我的是Mac电脑上,因此挑选MacOS,点一下Download逐渐下载
挑选相匹配版本号组装
假如电脑上装了brew可以立即命令行下载组装:
brewcaskinstallmultipass
下载组装完成后,实行下列命令可以检查当今软件版本:
multipass--version
组装完成后,点一下运作,就可以开启Multipass客户端,这儿可以更快的根据OpenShell创建和运行一个vm虚拟机
Multipass客户端
下边,大家来详细介绍怎样根据命令的方法,创建一台vm虚拟机
创建Ubuntuvm虚拟机
最先,根据下列命令查询可供下载的Ubuntu镜像文件
multipassfind
运作取得成功后,能够看见下边的这种镜像文件目录,包括各种各样版本号的
ImageAliasesVersionDescriptioncorecore1620200818UbuntuCore16core1820200812UbuntuCore1818.04bionic20211109Ubuntu18.04LTS20.04focal,lts20211118Ubuntu20.04LTS21.04hirsute20211119Ubuntu21.0421.10impish20211103Ubuntu21.10appliance:adguard-home20200812UbuntuAdGuardHomeApplianceappliance:mosquitto20200812UbuntuMosquittoApplianceappliance:nextcloud20200812UbuntuNextcloudApplianceappliance:openhab20200812UbuntuopenHABHomeApplianceappliance:plexmediaserver20200812UbuntuPlexMediaServerApplianceanbox-cloud-appliancelatestAnboxCloudApplianceminikubelatestminikubeislocalKubernetes
下载最新版本的Ubuntu镜像文件并运作,首次创建时必须下载Ubuntu镜像文件,互联网通畅的情形下,稍等一下就可以。
multipasslaunch-nvm01-c1-m1G-d10G
自定配备创建可以参照如下所示方法:
-n,--name:名字-c,--cpus:cpu核心数,默认设置:1-m,--mem:内存空间,默认设置:1G-d,--disk:硬盘大小,默认设置:5G实际操作vm虚拟机查询vm虚拟机目录
vm虚拟机创建进行后,可以应用multipasslist命令开展查询vm虚拟机目录
%multipasslistNameStateIPv4Imagevm01Running192.168.64.2Ubuntu20.04LTS
能够看见现阶段已经运作一台Ubuntu20.04版本号的vm虚拟机,而且相匹配的IP地址为192.168.64.2
外界实际操作vm虚拟机
根据multipassexec命令在实例内实行给出的命令。第一个主要参数是运作命令的实例,也就是vm01
大家根据exec命令,就可以在外界实际操作刚创建的vm虚拟机,比如查询內部所在的文件目录,实行pwd命令
#multipassexecvm01pwd/home/ubuntu查询vm虚拟机信息内容
根据multipassinfo命令,就可以查询当今运作的vm虚拟机信息内容
#multipassinfovm01Name:vm01State:RunningIPv4:192.168.64.2Release:Ubuntu20.04.3LTSImagehash:91740d72ffff(Ubuntu20.04LTS)Load:0.000.000.00Diskusage:1.3Goutof9.5GMemoryusage:170.9Moutof1.9GMounts:--进到vm虚拟机
根据multipassshell命令,就可以进到到vm虚拟机內部
multipassshellvm01
运作后的結果如下所示所显示,能够看见现阶段vm虚拟机的一些系统设置信息内容,及其运行内存和硬盘的运用状况
进到vm虚拟机內部
与此同时会打开一个新的Ubuntu系统软件,这时便进到到了Ubuntu自然环境中,在里面可以实行有关的linux命令
自然假如不愿进到系统软件內部,还可以利用上面提及的multipassexce命令,来实际操作Ubuntu系统软件
最先实行下边命令,给系统配置一个root登陆密码,设定好登陆密码后,应用suroot转换到root客户
#密码设置sudopasswd#转换rootsuroot
ubuntu是应用apt-get来开展包管理方法的,最先升级一下apt-get,随后组装nginx
#更新aptapt-getupdate#组装nginxapt-getinstallnginx
组装好nginx后,可以到/etc/nginx文件目录就可以见到刚的nginx配备信息内容
root@vm01:/lost found#cd/etc/nginx/root@vm01:/etc/nginx#lsconf.dfastcgi_paramskoi-winmodules-availablenginx.confscgi_paramssites-enableduwsgi_paramsfastcgi.confkoi-utfmime.typesmodules-enabledproxy_paramssites-availablesnippetswin-utf
下边我们可以测试一下,nginx是不是组装取得成功,在mac上浏览器打开,键入vm虚拟机的ip详细地址192.168.64.2
nginx组装取得成功
可以看得出,现阶段nginx早已取得成功运作了,后面得话,很有可能会考虑到在上面布署大量的运用,有兴趣的小伙伴们热烈欢迎关心~
挂载数据信息卷
multipass还给予和docker一样的挂载数据信息卷的作用,可以与外界宿主机的文档维持同歩。
#挂载文件格式multipassmount宿主机文件目录实例名:vm虚拟机文件目录
下边,我还在客户的文件目录下,创建一个hello文件目录
#创建hello文件目录mkdirhello#挂载multipassmount/Users/moxi/hellovm01:/hello
挂载进行后,大家返回实例vm01中,可以看得出多了一个hello文件夹名称,表明早已取得成功挂载~
挂载取得成功
因而,之后在vm01的hello文件夹名称中创建的文档,都是会在的宿主机的hello文件夹名称同歩表明
卸载掉数据信息卷
假如之后不用使用挂载了,可以使用unmount命令卸载掉
#卸载掉数据信息卷multipassumount器皿名传输文件
除开服用以上的mount挂载卷的方法完成文档的互动,与此同时还能根据transfer命令,将宿主机的文档,发送至vm虚拟机內部
multipasstransfer服务器文档器皿名:器皿文件目录
比如,将hello.txt发送至
multipasstransferhello.txtvm01:/home/ubuntu/删掉和释放出来实例
应用下边的命令,可以打开、终止、删掉和释放出来实例
#运行实例multipassstartvm01#终止实例multipassstopvm01#删掉实例(删掉后,还会继续存有)multipassdeletevm01#释放出来实例(彻底删除)multipasspurgevm01器皿配备自动化技术
为了更好地维持开发工具和网上自然环境一致性与此同时节约布署時间multipass给大家带来了--cloud-init选择项开展器皿运行复位配备:
multipasslaunch--nameubuntu--cloud-initconfig.yaml
上边config.yaml则是器皿的复位配置文件,比如,大家想在复位器皿的情况下,全自动下载组装Node.js,具体内容如下所示:
#cloud-configruncmd:-curl-sLhttps://deb.nodesource.com/setup_12.x|sudo-Ebash--sudoapt-getinstall-ynodejs
runcmd可以特定器皿初次运作时运作的命令
只要是客户自定的cloud-init的配置文件,务必以#cloud-config开头,这也是cloud-init鉴别它的方法。
yaml配置文件可以参照下边的文章内容
https://cloudinit.readthedocs.io/en/latest/topics/examples.html?highlight=lock-passwd#including-users-and-groups
大量有关multipass的高级的方法,欢迎访问multipass官方网文本文档
https://multipass.run/docs/
好啦,当期有关Multipass的入门学习就到这儿了,有兴趣的小伙伴们自然环境下载亲自动手学习培训呢~
我是陌溪,大家下次再见了~
汇总
陌溪应用了一阵子后,Multipass在运用的时候很简洁明了形象化,在总体工作上和docker相近,假如想在自身电脑迅速构建一个Linux系统软件用以学习培训得话,挑选应用Multipass或是十分便捷的。
唯一欠缺的区域便是,Multipass是由Ubuntu身后的Canonical企业研发的,因而Multipass所运用的镜像文件也全是Ubuntu镜像文件(这也能了解,终究适用自己的商品),但是针对习惯应用CentOS的业主而言,或是用些许不太习惯性。但是不经之谈,Multipass我认为或是一款非常棒的APP~