linux kvm百度云,容器与云|如何在 Ubuntu Linux 上使用 KVM 云镜像

如何下载并使用运行在 Ubuntu Linux 服务器上的 KVM 云镜像?如何在 Ubuntu Linux 16.04 LTS 服务器上无需完整安装即可创建虚拟机?如何在 Ubuntu Linux 上使用 KVM 云镜像?

基于内核的虚拟机(KVM)是 Linux 内核的虚拟化模块,可将其转变为虚拟机管理程序。你可以在命令行使用 Ubuntu 为 libvirt 和 KVM 提供的虚拟化前端通过 KVM 创建 Ubuntu 云镜像。

这个快速教程展示了如何安装和使用 uvtool,它为 Ubuntu 云镜像下载,libvirt 和 clout_int 提供了统一的集成虚拟机前端。

步骤 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][3]

$ sudo vi /etc/network/interfaces

$ sudo systemctl restart networking

$ sudo brctl show

参阅如何在 Ubuntu 16.04 LTS Headless 服务器上安装 KVM 以获得更多信息。(LCTT 译注:Headless 服务器是指没有本地接口的计算设备,专用于向其他计算机及其用户提供服务。)

步骤 2 - 安装 uvtool

$ sudo apt install uvtool

示例输出:

[sudo] password for vivek:

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following packages were automatically installed and are no longer required:

gksu libgksu2-0 libqt5designer5 libqt5help5 libqt5printsupport5 libqt5sql5 libqt5sql5-sqlite libqt5xml5 python3-dbus.mainloop.pyqt5 python3-notify2 python3-pyqt5 python3-sip

Use 'sudo apt autoremove' to remove them.

The following additional packages will be installed:

cloud-image-utils distro-info python-boto python-pyinotify python-simplestreams socat ubuntu-cloudimage-keyring uvtool-libvirt

Suggested packages:

cloud-utils-euca shunit2 python-pyinotify-doc

The following NEW packages will be installed:

cloud-image-utils distro-info python-boto python-pyinotify python-simplestreams socat ubuntu-cloudimage-keyring uvtool uvtool-libvirt

0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.

Need to get 1,211 kB of archives.

After this operation, 6,876 kB of additional disk space will be used.

Get:1 http://in.archive.ubuntu.com/ubuntu artful/main amd64 distro-info amd64 0.17 [20.3 kB]

Get:2 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 python-boto all 2.44.0-1ubuntu2 [740 kB]

Get:3 http://in.archive.ubuntu.com/ubuntu artful/main amd64 python-pyinotify all 0.9.6-1 [24.6 kB]

Get:4 http://in.archive.ubuntu.com/ubuntu artful/main amd64 ubuntu-cloudimage-keyring all 2013.11.11 [4,504 B]

Get:5 http://in.archive.ubuntu.com/ubuntu artful/main amd64 cloud-image-utils all 0.30-0ubuntu2 [17.2 kB]

Get:6 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 python-simplestreams all 0.1.0~bzr450-0ubuntu1 [29.7 kB]

Get:7 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 socat amd64 1.7.3.2-1 [342 kB]

Get:8 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 uvtool all 0~git122-0ubuntu1 [6,498 B]

Get:9 http://in.archive.ubuntu.com/ubuntu artful/universe amd64 uvtool-libvirt all 0~git122-0ubuntu1 [26.9 kB]

Fetched 1,211 kB in 3s (393 kB/s)

Selecting previously unselected package distro-info.

(Reading database ... 199933 files and directories currently installed.)

Preparing to unpack .../0-distro-info_0.17_amd64.deb ...

Unpacking distro-info (0.17) ...

Selecting previously unselected package python-boto.

Preparing to unpack .../1-python-boto_2.44.0-1ubuntu2_all.deb ...

Unpacking python-boto (2.44.0-1ubuntu2) ...

Selecting previously unselected package python-pyinotify.

Preparing to unpack .../2-python-pyinotify_0.9.6-1_all.deb ...

Unpacking python-pyinotify (0.9.6-1) ...

Selecting previously unselected package ubuntu-cloudimage-keyring.

Preparing to unpack .../3-ubuntu-cloudimage-keyring_2013.11.11_all.deb ...

Unpacking ubuntu-cloudimage-keyring (2013.11.11) ...

Selecting previously unselected package cloud-image-utils.

Preparing to unpack .../4-cloud-image-utils_0.30-0ubuntu2_all.deb ...

Unpacking cloud-image-utils (0.30-0ubuntu2) ...

Selecting previously unselected package python-simplestreams.

Preparing to unpack .../5-python-simplestreams_0.1.0~bzr450-0ubuntu1_all.deb ...

Unpacking python-simplestreams (0.1.0~bzr450-0ubuntu1) ...

Selecting previously unselected package socat.

Preparing to unpack .../6-socat_1.7.3.2-1_amd64.deb ...

Unpacking socat (1.7.3.2-1) ...

Selecting previously unselected package uvtool.

Preparing to unpack .../7-uvtool_0~git122-0ubuntu1_all.deb ...

Unpacking uvtool (0~git122-0ubuntu1) ...

Selecting previously unselected package uvtool-libvirt.

Preparing to unpack .../8-uvtool-libvirt_0~git122-0ubuntu1_all.deb ...

Unpacking uvtool-libvirt (0~git122-0ubuntu1) ...

Setting up distro-info (0.17) ...

Setting up ubuntu-cloudimage-keyring (2013.11.11) ...

Setting up cloud-image-utils (0.30-0ubuntu2) ...

Setting up socat (1.7.3.2-1) ...

Setting up python-pyinotify (0.9.6-1) ...

Setting up python-boto (2.44.0-1ubuntu2) ...

Setting up python-simplestreams (0.1.0~bzr450-0ubuntu1) ...

Processing triggers for doc-base (0.10.7) ...

Processing 1 added doc-base file...

Setting up uvtool (0~git122-0ubuntu1) ...

Processing triggers for man-db (2.7.6.1-2) ...

Setting up uvtool-libvirt (0~git122-0ubuntu1) ...

步骤 3 - 下载 Ubuntu 云镜像

你需要使用 uvt-simplestreams-libvirt 命令。它维护一个 libvirt 容量存储池,作为一个简单流simplestreams源的镜像子集的本地镜像,比如 Ubuntu 云镜像。要使用当前所有 amd64 镜像更新 uvtool 的 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 20171121.1

通过 query 选项查询本地镜像:

$ uvt-simplestreams-libvirt query

示例输出:

release=xenial arch=amd64 label=release (20171121.1)

现在,我为 Ubuntu xenial 创建了一个镜像,接下来我会创建虚拟机。

步骤 4 - 创建 SSH 密钥

你需要使用 SSH 密钥才能登录到 KVM 虚拟机。如果你根本没有任何密钥,请使用 ssh-keygen 命令创建一个新的密钥。

$ ssh-keygen

步骤 5 - 创建 VM

是时候创建虚拟机了,它叫 vm1,即创建一个 Ubuntu Linux 16.04 LTS 虚拟机:

$ uvt-kvm create vm1

默认情况下 vm1 使用以下配置创建:

内存:512M

磁盘大小:8GiB

CPU:1 vCPU core

要控制内存、磁盘、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 身份运行 RUN_SCRIPT_ONCE 脚本,但再也不会运行。这里给出完整的路径。这对于在虚拟机上运行自定义任务时非常有用,例如设置安全性或其他内容。

--packages PACKAGES1, PACKAGES2, .. : 在第一次启动时安装以逗号分隔的软件包。

要获取帮助,运行:

$ uvt-kvm -h

$ uvt-kvm create -h

如何删除虚拟机?

要销毁/删除名为 vm1 的虚拟机,运行(请小心使用以下命令,因为没有确认框):

$ 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 2017 from 192.168.122.1

另一个选择是从 macOS/Linux/Unix/Windows 客户端使用常规的 ssh 命令:

$ ssh ubuntu@192.168.122.52

$ ssh -i ~/.ssh/id_rsa ubuntu@192.168.122.52

示例输出:

17ba4419a5513f5cb3ce3d014805fce4.png

一旦创建了 vim,你可以照常使用 virsh 命令:

$ virsh list

本文由 LCTT 原创编译,Linux中国 荣誉推出 linisi.svg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/338660.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C 的16个大坑,你能躲过几个?

首先说下C 和C语言有什么区别?分享一个我在知乎上看见的回答:C ≈ C with classes, C with STLC:面向机器编程C :面向编译器编程C 有个很重要的特性叫RAII,个人认为可以多多使用,相当方便。言归…

python占位符怎么输入_python占位符怎么输入

占位符,顾名思义就是插在输出里站位的符号。占位符是绝大部分编程语言都存在的语法, 而且大部分都是相通的, 它是一种非常常用的字符串格式化的方式。1、常用占位符的含义s : 获取传入对象的__str__方法的返回值,并将其格式化到指…

java 性能调优_Java性能调优调查结果(第三部分)

java 性能调优这是本系列文章的第三篇,我们将分析2014年10月进行的调查的结果。如果您尚未这样做,我建议从本系列的前两篇文章开始: 问题严重性分析和监视域分析 。 这篇文章着重于故障排除/根本原因检测。 本调查部分的背景:意识…

不懂指针类型,7个例子给你讲明白

1. int va;这是一个整型变量,32位CPU的话,占有32个bite2. int *va;这是一个整型指针变量,用于存放一个整型变量的地址,3. int **va;这是一个整型的二级指针,用于存放一个内存的地址,该地址对应的内存中存放…

linux ffmpeg yum源,ffmpeg最新的yum源地址及视频去logo

一:ffmpeg 最新yum源cat /etc/yum.repo.d/atrpms.repo[atrpms]nameRed Hat Enterprise Linux $releasever - $basearch - ATrpmsfailovermethodprioritybaseurlhttp://dl.atrpms.net/el$releasever-$basearch/atrpms/stableenabled1gpgcheck0gpgkeyfile:///etc/pki/…

Tomcat与Netty比较

Tomcat介绍Tomcat支持的协议Tomcat的优缺点Netty介绍Netty支持的协议Netty的优点和缺点Tomcat和Netty的区别Tomcat和Netty的应用场Tomcat和Netty来处理大规模并发连接的优化Tomcat与Netty的网络模型的区别Tomcat与Netty架构设计拓展 Tomcat介绍 Tomcat是一个免费的、开放源代码…

spring 项目集成配置_Spring重试–与项目集成的方式

spring 项目集成配置如果您需要在代码中实现健壮的重试逻辑,一种行之有效的方法是使用spring重试库。 我的目的不是要展示如何使用spring retry项目本身,而是要演示将其集成到代码库中的不同方式。 考虑一种服务来调用外部系统: package re…

redis 内存不足 排查_排查redis占用内存达90%以上

帮别人排查一个问题,项目还没上线但redis占用内存很高。思路如下:1、登陆redis控制台,首先用 keys * 获取所有的key> keys *x:x:ax:x:bx:x:c发现key也就十来个,用 TYPE x:x:a 发现a是一个list数据类型用lrange命令查看list中指定索引的值用…

C或C 如何通过程序执行shell命令并获取命令执行结果?

1 应用场景最近在实际程序开发中,需要通过程序执行 shell 命令,并获取命令输出内容。但是系统自带的 system 只能返回命令执行成功与否,不能捕获命令输出。2 扩展性由于应用场景本就广泛,因此扩展性较好。此函数可以执行任意命令&…

linux centos7安装ngix,centos7 环境下安装nginx--Linux

本文将要为您介绍的是centos7 环境下安装nginx--Linux,具体完成步骤:一、安装前需要的编译环境准备1、安装makeyum install -y gcc automake autoconf libtool make2、安装gcc、gcc-cyum install -y gcc gcc-c3、关闭防火墙iptables -F4、关闭selinux#临时关闭:sete…

16进制数组转成10进制 qt_QT 十六进制字符串转化为十六进制编码

/*************************************************Function: hexStringtoByteArray()Description:十六进制字串转化为十六进制编码Calls: formatString()Called By:Input: hex->待转化的十六进制字串Output: NULLReturn: QByteArrayOthers: NULL************************…

primefaces_使用PrimeFaces开发数据导出实用程序

primefaces我的日常工作涉及大量使用数据。 我们使用关系数据库来存储所有内容,因为我们依赖于企业级的数据管理。 有时,具有将数据提取为简单格式(例如电子表格)的功能很有用,以便我们可以按需进行操作。 这篇文章概述…

如何优雅地实现判断一个值是否在一个集合中?

如何判断某变量是否在某个集合中&#xff1f;注意&#xff0c;这里的集合可能并不是指确定的常量&#xff0c;也可能是变量。版本0#include int main(){int a 5;if(a 1 || a 2 || a 3 || a 4 || a 5){std::cout<<"find it"<<std::endl;}return 0;…

c语言所有关键字作用,void_C语言void关键字详解

void类型修饰符(type specifier)表示“没有值可以获得”。因此&#xff0c;不可以采用这个类型声明变量或常量。void 类型可以用于下面各小节所描述的目的。void用于函数声明没有返回值的函数&#xff0c;其类型为 void。例如&#xff0c;标准库函数 perror() 被声明为以下原型…

jvmti_拥有您的堆:使用JVMTI迭代类实例

jvmti今天&#xff0c;我想谈一谈我们大多数人每天都不会看到和使用的另一种Java&#xff0c;更确切地说&#xff0c;是有关较低级别的绑定&#xff0c;一些本机代码以及如何执行一些小的魔术。 尽管我们不会在JVM上找到真正的魔力源&#xff0c;但是在单个帖子的范围内可以实现…

babylonjs 分部加载模型_BabylonJS加载OBJ或STL模型文件实例

JavaScript语言&#xff1a;JaveScriptBabelCoffeeScript确定var canvas document.getElementById("renderCanvas");var engine new BABYLON.Engine(canvas, true);var createScene function() {// This creates a basic Babylon Scene object (non-mesh)var scen…

骚操作:利用强弱符号制作插件库

当有强符号和弱符号时&#xff0c;选择使用强符号那么我们正可以利用这个原则做以下事情&#xff1a;定义为弱符号&#xff0c;如果是弱符号&#xff0c;使用默认行为如果链接了库&#xff0c;是强符号&#xff0c;则使用外部定义行为以此来实现一个类似插件的功能。通俗一点说…

c语言里 t是什么作用,c语言里的\t是什么意思

c语言里的&#xff3c;t是什么意思以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;c语言里的&#xff3c;t是什么意思正宗叫法是“水平制表符”&#xff0c;就是在输出媒体上水平跳过多个空格…

boot jersey_Jersey和Spring Boot入门

boot jersey除了许多新功能&#xff0c;Spring Boot 1.2还带来了Jersey支持。 这是吸引喜欢标准方法的开发人员的重要一步&#xff0c;因为他们现在可以使用JAX-RS规范构建RESTful API&#xff0c;并将其轻松部署到Tomcat或任何其他Springs Boot支持的容器中。 带有Spring平台的…

mime类型是什么 node_Node.js - 文件系统获取文件类型

我需要借助node.js来获取文件的文件类型以设置内容类型。我知道我可以很容易地检查文件扩展名&#xff0c;但我也有没有扩展名的文件&#xff0c;其内容类型应该是image/png,text/html aso。Node.js - 文件系统获取文件类型这是我的代码(我知道这并没有太大的意义&#xff0c;但…