TranslateProject/translated/tech/20210126 Automate setup and delivery for virtual machines in the cloud.md
北梦南歌 01ca251700
Translated
翻译完成
2022-04-20 23:37:14 +08:00

6.6 KiB
Raw Blame History

在云上自动化设置和交付虚拟机

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

Looking at a map

如果你是一个在云上使用 Fedora qcow2 镜像 的开发者或者爱好者,在一个镜像准备使用之前,你总是不得不做一大堆初始化设置。我太清楚了,并且我渴望找到一种使设置过程更加简单的方法。碰巧,整个 Fedora 质量保证团队有同感,所以我们开发了 Testcloud

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

Testcloud:

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

安装 Testcloud

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

`$ sudo dnf install testcloud -y`

一旦安装完成,添加你要添加的用户到 testcloud 用户组,协助 Testcloud 完成设置过程的剩余部分。执行这两个命令添加你的用户到 testcloud 用户组,并通过提升组权限重启会话:

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

添加用户到 testcloud 组

(Sumantro Mukherjee, CC BY-SA 4.0)

像老手一样玩转云镜像

一旦你的用户获得了组权限,创建一个实例:

`$ 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`

这将返回你的 VM 的 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
\------------------------------------------------------------

你可以使用密码为 passw0rd (注意这个 0 ) 用户名为 fedora 的默认用户来登录。你可以使用 ssh 协议登录到 VM 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 选题:lujun9972 译者:hwlife 校对:校对者ID

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