4.5. 管理映像

Acronis Cyber Infrastructure 允许您上传可用于创建 VM 卷的 ISO 映像和模板。ISO 映像是典型的操作系统发行版,需要安装在磁盘上。反过来,模板是 QCOW2 格式的就绪卷,其中具有已安装的操作系统和应用程序以及已设置的最小大小。许多操作系统供应商以“云映像”的名义提供其操作系统的模板。有关虚拟机中支持的来宾操作系统的列表,请参阅 支持的来宾操作系统

注解

映像根据默认存储策略进行存储。

4.5.1. 上传、编辑和删除映像

要添加映像,请执行以下操作:

  1. COMPUTE > Virtual machines > IMAGES tab 上,单击添加映像

  2. 添加映像窗口中,请执行以下操作:

    1. 单击浏览,然后选择模板或 ISO 文件。

    2. 指定要在管理面板中显示的映像名称。

    3. 从下拉列表中选择正确的操作系统类型。

      重要

      操作系统类型会影响虚拟机监控程序设置等 VM 参数。基于操作系统类型错误的映像创建的 VM 可能无法正常运行,例如故障。

    ../_images/stor_image78_ac.png
  3. (可选)选中在所有项目之间共享复选框。在该选项已禁用的情况下,映像将仅在默认域的管理项目中可用。

  4. 单击添加以上传映像。

管理面板将显示上传进度。

重要

请勿在上传映像时重新加载页面,否则过程将失败。

要编辑映像,请选择它,然后单击需要更改的参数旁边的铅笔图标。

要删除映像,请单击它旁边的省略号按钮,然后单击删除

4.5.2. 从映像创建卷

可以从 ISO 映像和模板创建卷。请执行以下操作:

  1. 在映像面板上,单击创建卷

  2. 创建卷窗口中,指定卷名称、大小并选择存储策略。

    ../_images/stor_image161_ac.png
  3. 单击创建

新卷将显示在 COMPUTE > Storage > VOLUMES tab 上。

4.5.3. 加载 ISO 映像至虚拟机

注解

本功能仅支持用于 Linux 虚拟机。但可以通过 vinfra 工具将 ISO 映像加载至 Windows VM。使用 Installing Guest Tools in Existing VMs 中提供的说明。将示例中的来宾工具映像替换为您的映像。

要将 ISO 映像加载至 Linux VM,请执行以下操作:

  1. 从 ISO 映像创建卷,如 从映像创建卷 中所述。

  2. 将生成的卷附加至所需的 VM,如 附加和拆离卷 中所述。

加载的磁盘将显示在 Linux VM 中。

4.5.4. 准备模板

为了能够通过 SSH 连接至虚拟机或执行某些初始配置任务,需要先准备 VM 模板(或用于 Windows VM 的启动卷),然后才能基于该模板创建 VM。准备 VM 模板所需执行的步骤取决于来宾操作系统,将在以下各部分中进行介绍。

4.5.4.1. 准备 Linux 模板

由于所有 Linux 来宾默认都已预安装 OpenSSH Server,因此只需确保 Linux 模板已安装 cloud-init。

获取安装有 cloud-init 的 Linux 模板的最简单方法是从官方存储库中获取它,或使用 diskimage-builder 工具构建一个模板。(有关详细信息,请参阅 Creating Linux Templates。)

4.5.4.2. 准备 Windows 模板

Windows 来宾默认没有预安装 Cloudbase-Init 或 OpenSSH Server。需要手动安装和配置它们,如下所示:

注解

如果只需配置 Cloudbase-Init,请跳过步骤 4。

  1. 基于 Windows 映像创建 VM,如 创建虚拟机 中所述。

  2. 登录到 VM 并使用内置的 VNC 中控台安装来宾操作系统。

  3. 创建一个将用于 SSH 连接的新管理员帐户,然后使用该帐户登录。

  4. 如下安装和配置 OpenSSH Server:

    1. 使用管理员权限运行 Windows PowerShell,然后将执行策略设置为不受限制才能运行脚本:

      > Set-ExecutionPolicy Unrestricted
      
    2. 下载 OpenSSH Server(例如,从 GitHub 存储库)、将存档提取至 C:\Program Files 目录,然后运行以下命令进行安装:

      > & 'C:\Program Files\OpenSSH-Win64\install-sshd.ps1'
      
    3. 启动 sshd 服务,然后将其启动类型设置为“自动”:

      > net start sshd
      > Set-Service sshd -StartupType Automatic
      
    4. 在 Windows 防火墙中,为 OpenSSH 服务打开 TCP 端口 22:

      • 在 Windows 8.1、Windows Server 2012 及更高版本上,运行

        > New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound \
        -Action Allow -DisplayName OpenSSH
        
      • 在 Windows 7、Windows Server 2008 和 Windows Server 2008 R2 上,运行

        > netsh advfirewall firewall add rule name=sshd dir=in action=allow \
        protocol=TCP localport=22
        
    5. 打开 C:\ProgramData\ssh\sshd_config 文件:

      > notepad 'C:\ProgramData\ssh\sshd_config'
      

      在文件末尾注释掉以下几行:

      #Match Group administrators
      #AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
      

      然后保存更改。

    6. C:\Users\<current_user> 中创建 .ssh 目录,然后在该目录中创建空的 authorized_keys 文件:

      > cd C:\Users\<current_user>
      > mkdir .ssh
      > notepad .\.ssh\authorized_keys
      

      从创建的文件中删除 .txt 扩展名:

      > move .\.ssh\authorized_keys.txt .\.ssh\authorized_keys
      
    7. 修改已创建文件的权限以禁用继承,如下所示:

      > icacls .\.ssh\authorized_keys /inheritance:r
      
  5. 下载 Cloudbase-Init(例如,从官方网站)、启动安装,然后按照屏幕上的说明进行操作:

    1. 配置选项窗口中,在用户名字段中输入当前用户名:

      重要

      用户帐户密码将在下次 VM 启动时进行重置。将可以在使用密钥身份验证方法时使用此帐户登录,也可以使用自定义脚本设置新密码(请参阅 创建虚拟机)。

      ../_images/win_guests_ssh1.png
    2. 安装完成后,请勿运行 Sysprep 并单击完成

      ../_images/win_guests_ssh2.png
    3. 以管理员权限运行 Windows PowerShell,然后打开文件 C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf

      > notepad 'C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf'
      

      在两行中添加 metadata_servicesplugins

      metadata_services=cloudbaseinit.metadata.services.configdrive.ConfigDriveService,\
      cloudbaseinit.metadata.services.httpservice.HttpService
      plugins=cloudbaseinit.plugins.common.mtu.MTUPlugin,\
      cloudbaseinit.plugins.windows.ntpclient.NTPClientPlugin,\
      cloudbaseinit.plugins.common.sethostname.SetHostNamePlugin,\
      cloudbaseinit.plugins.windows.createuser.CreateUserPlugin,\
      cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin,\
      cloudbaseinit.plugins.windows.licensing.WindowsLicensingPlugin,\
      cloudbaseinit.plugins.common.sshpublickeys.SetUserSSHPublicKeysPlugin,\
      cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin,\
      cloudbaseinit.plugins.common.setuserpassword.SetUserPasswordPlugin,\
      cloudbaseinit.plugins.common.userdata.UserDataPlugin,\
      cloudbaseinit.plugins.windows.winrmlistener.ConfigWinRMListenerPlugin,\
      cloudbaseinit.plugins.windows.winrmcertificateauth.ConfigWinRMCertificateAuthPlugin,\
      cloudbaseinit.plugins.common.localscripts.LocalScriptsPlugin
      

      注解

      确保删除上述行中的所有反斜杠。

      然后保存更改。

  6. 停止 VM。

VM 关闭后,可以

  • 删除它以使其启动卷可用于创建新的 VM,或者

  • 将 VM 启动卷转换为模板(请参阅 基于卷创建映像)。