在云端自动化设置和交付虚拟机
通过使用 Testcloud 自动化设置过程并交付一个准备运行的虚拟机，在几分钟之内准备好一个云镜像。
虚拟机
通过使用 Testcloud 自动化设置过程并交付一个准备运行的虚拟机，在几分钟之内准备好一个云镜像。

> 
> 通过使用 Testcloud 自动化设置过程并交付一个准备运行的虚拟机，在几分钟之内准备好一个云镜像。
> 
> 
> 


![](/data/attachment/album/202204/30/130336l2l1a77p7m8hwp28.jpg "Looking at a map")


如果你是一个在云端使用 Fedora [qcow2 镜像](https://en.wikipedia.org/wiki/Qcow) 的开发者或者爱好者，在一个镜像准备使用之前，你总是不得不做一大堆初始化设置。我对此深有体会，所以我很想找到一种使设置过程更加简单的方法。碰巧，整个 Fedora 质量保证团队也有同感，所以我们开发了 [Testcloud](https://pagure.io/testcloud) 。


Testcloud 是一个可以轻松的在几分钟之内准备云镜像测试的工具。它用几个命令就可以在云端自动化设置并交付准备运行的虚拟机（VM）。


Testcloud：


1. 下载 qcow2 镜像
2. 用你选择的名称创建实例
3. 创建一个密码为 `passw0rd`，用户名为 `fedora` 的用户
4. 分配一个 IP 地址，以便于你之后用 SSH 登录到云端
5. 启动、停止、删除和列出一个实例


### 安装 Testcloud


要开始你的旅程，首先你必须安装 Testcloud 软件包。你可以通过终端或者“软件”应用来安装它。在这两种情况下，软件包的名字都是 `testcloud` 。用以下命令安装：



```
$ sudo dnf install testcloud -y

```

一旦安装完成，将你所需要的用户添加到 `testcloud` 用户组，这有助于 Testcloud 自动完成设置过程的剩余部分。执行这两个命令，添加你的用户到 `testcloud` 用户组，并通过提升组权限重启会话：



```
$ sudo usermod -a -G testcloud $USER
$ su - $USER

```

![添加用户到 testcloud 组](/data/attachment/album/202204/30/130342f3lllvviqmevze44.png "Add user to testcloud group")


### 像老手一样玩转云镜像


一旦你的用户获得了所需的组权限，创建一个实例：



```
$ testcloud instance create <instance name> -u <url for qcow2 image>

```

或者，你可以使用 `fedora:latest/fedora:XX`（`XX` 是你的 Fedora 发行版本）来代替 完整的 URL 地址：



```
$ testcloud instance create <instance name> -u fedora:latest

```

这将返回你的虚拟机的 IP 地址：



```
$ testcloud instance create testcloud272593 -u https://download.fedoraproject.org/pub/fedora/linux/releases/33/Cloud/x86_64/images/Fedora-Cloud-Base-33-1.2.x86_64.qcow2  
[...]
INFO:Successfully booted instance testcloud272593
The IP of vm testcloud272593:  192.168.122.202
------------------------------------------------------------
To connect to the VM, use the following command (password is 'passw0rd'):
ssh fedora@192.168.122.202

```

你可以用默认用户 `fedora` 登录，密码是 `passw0rd`（注意是零）。你可以使用 `ssh`、`virt-manager` 或者支持连接到 libvirt 虚拟机方式来连接到它。


另一种创建 Fedora 云的方式是：



```
$ testcloud instance create testcloud193 -u fedora:33
 
WARNING:Not proceeding with backingstore cleanup because there are some testcloud instances running.
You can fix this by following command(s):
testcloud instance stop testcloud272593

DEBUG:Local downloads will be stored in /var/lib/testcloud/backingstores.
DEBUG:successfully changed SELinux context for image /var/lib/testcloud/backingstores/Fedora-Cloud-Base-33-1.2.x86_64.qcow2
DEBUG:Creating instance directories
DEBUG:creating seed image /var/lib/testcloud/instances/testcloud193/testcloud193-seed.img
INFO:Seed image generated successfully
INFO:Successfully booted instance testcloud193
The IP of vm testcloud193:  192.168.122.225
------------------------------------------------------------
To connect to the VM, use the following command (password is 'passw0rd'):
ssh fedora@192.168.122.225
------------------------------------------------------------

```

### 玩转实例


Testcloud 可以用来管理实例。这包括像列出镜像或者停止和启动一个实例等活动。


要列出实例，使用 `list` 子命令：



```
$ testcloud instance list                
Name                            IP                      State    
------------------------------------------------------------
testcloud272593                 192.168.122.202         running    
testcloud193                    192.168.122.225         running    
testcloud252793                 192.168.122.146         shutoff    
testcloud93                     192.168.122.152         shutoff

```

要停止一个运行的实例：



```
$ testcloud instance stop testcloud193  
DEBUG:stop instance: testcloud193
DEBUG:stopping instance testcloud193.

```

要删除一个实例：



```
$ testcloud instance destroy testcloud193  
DEBUG:remove instance: testcloud193
DEBUG:removing instance testcloud193 from libvirt.
DEBUG:Unregistering instance from libvirt.
DEBUG:removing instance /var/lib/testcloud/instances/testcloud193 from disk

```

要重启一个运行中的实例：



```
$ testcloud instance reboot testcloud93                                                                                        
DEBUG:stop instance: testcloud93
[...]
INFO:Successfully booted instance testcloud93
The IP of vm testcloud93:  192.168.122.152
usage: testcloud [-h] {instance,image} ...

```

尝试一下 Testcloud ，在评论中让我知道你的想法。




---


via: <https://opensource.com/article/21/1/testcloud-virtual-machines>


作者：[Sumantro Mukherjee](https://opensource.com/users/sumantro) 选题：[lujun9972](https://github.com/lujun9972) 译者：[hwlife](https://github.com/hwlife) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

