如何在Ubuntu Linux上使用KVM云镜像
如何在Ubuntu Linux服务器上运行kvm的情况下下载和使用云镜像?
如何在Ubuntu Linux 16.04 LTS服务器上完全安装而不需要创建虚拟机?
如何在Ubuntu上使用KVM云镜像?
基于内核的虚拟机(KVM)是Linux内核的虚拟化模块,可将其转变为虚拟机监控程序。
您可以使用libvirt和KVM的Ubuntu虚拟化前端从命令行使用KVM创建Ubuntu云镜像。
本快速教程说明如何安装和使用uvtool,该工具为Ubuntu云镜像下载,libvirt和cloud-init提供了统一且集成的VM前端。
步骤1安装KVM
您必须已安装并配置了kvm。
如下使用apt命令/apt-get命令:
$ sudo apt install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker $ kvm-ok ## configure bridged networking as described here $ sudo vi /etc/network/interfaces $ sudo systemctl restart networking $ sudo brctl show
步骤2安装uvtool
执行以下apt命令/apt-get命令:
$ sudo apt install uvtool
步骤3下载适用于KVM的Ubuntu云镜像
您需要使用uvt-simplestreams-libvirt命令。
它维护一个libvirt卷存储池,作为从Simplestreams源获得的镜像子集的本地镜像,例如Ubuntu云镜像。
要使用所有当前的amd64镜像更新uvtools libvirt卷存储池,请运行:
$ uvt-simplestreams-libvirt sync arch=amd64
要仅更新/获取Ubuntu 16.04 LTS(xenial/amd64)镜像,请运行:
$ uvt-simplestreams-libvirt --verbose sync release=xenial arch=amd64
输出示例:
Adding: com.ubuntu.cloud:server:16.04:amd64 20161121.1
Grab开发版本,即Bionic(18.04 LTS):
$ uvt-simplestreams-libvirt --verbose sync \ --source http://cloud-images.ubuntu.com/daily \ release=bionic arch=amd64
输出示例:
Adding: com.ubuntu.cloud.daily:server:18.04:amd64 20160124
传递query选项来查询本地镜像:
$ uvt-simplestreams-libvirt query
输出示例:
release=xenial arch=amd64 label=release (20161121.1)
现在,我有一个用于Ubuntu xenial的镜像,并创建了VM。
步骤4建立SSH金钥
您需要ssh密钥才能登录到KVM VM。
如果根本没有任何密钥,请使用ssh-keygen命令创建一个新密钥。
$ ssh-keygen
有关更多信息,请参见如何在Linux/Unix系统和Linux/UNIX上设置SSH密钥:生成SSH密钥。
步骤5使用云镜像创建Ubuntu VM
现在该创建名为vm1的VM了,即创建一个Ubuntu Linux 16.04 LTS VM:
$ uvt-kvm create vm1
默认情况下,vm1使用以下特征创建:
- 内存/内存:512M
- 磁盘大小:8GiB
- CPU:1个vCPU内核
要控制ram,disk,cpu和其他特征,请使用以下语法:
$ uvt-kvm create vm1 \ --memory MEMORY \ --cpu CPU \ --disk DISK \ --bridge BRIDGE \ --ssh-public-key-file /path/to/your/SSH_PUBLIC_KEY_FILE \ --packages PACKAGES1, PACKAGES2, .. \ --run-script-once RUN_SCRIPT_ONCE \ --password PASSWORD
其中:
- --password PASSWORD:设置ubuntu用户的密码,并允许使用ubuntu用户登录(不建议使用ssh键)。
--run-script-once RUN_SCRIPT_ONCE
:首次启动时,以root身份在VM上运行RUN_SCRIPT_ONCE脚本,但是再也不会启动。在这里给出完整的路径。这对于在VM上运行自定义任务(例如设置安全性或其他设置)很有用。--packages PACKAGES1,PACKAGES2,..
:在第一次启动时安装逗号分隔的软件包。
您还可以指定Ubuntu版本和arch:
$ uvt-kvm create bionic-server release=bionic arch=amd64 \ --memory 1024 \ --cpu 1 \ --disk 40 \ --ssh-public-key-file ~/.ssh/id_rsa.pub
要获取帮助,请运行:
$ uvt-kvm -h $ uvt-kvm create -h
如何删除虚拟机?
要销毁/删除名为vm1的VM,请运行(请小心使用以下命令,因为将没有确认框):
$ uvt-kvm destroy vm1
要查找vm1的IP地址,请运行:
$ uvt-kvm ip vm1
192.168.122.52
列出所有运行的虚拟机
$ uvt-kvm list
输出示例:
vm1 freebsd11.1
步骤6如何登录名为vm1的虚拟机
语法为:
$ uvt-kvm ssh vm1
输出示例:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-101-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage Get cloud support with Ubuntu Advantage Cloud Guest: http://www.ubuntu.com/business/services/cloud 0 packages can be updated. 0 updates are security updates. Last login: Thu Dec 7 09:55:06 2016 from 192.168.122.1
另一个选择是从macOS/Linux/Unix/Windows客户端使用常规ssh命令:
$ ssh [email protected] $ ssh -i ~/.ssh/id_rsa [email protected]
输出示例:创建vim后,您可以照常使用virsh命令:
$ virsh list