在 Oracle Linux Automation Manager 中使用 virt-v2v 实现自动化

简介

Oracle Linux Virtualization Manager 是一个服务器虚拟化管理平台,您可以轻松部署该平台来配置、监视和管理基于 Oracle Linux 内核的虚拟机 (KVM) 环境。如果您已经在使用其他虚拟化解决方案(如 VMware),并且有兴趣将现有虚拟机从 VMware 环境迁移到 Oracle Linux Virtualization Manager,则可以使用名为 virt-v2v 的工具。

您可以将 virt-v2v 工具与 Oracle 自动化解决方案 Oracle Linux Automation Manager 结合使用。它有助于尽可能减少迁移期间的人为干预需求。

下面介绍如何使用 Oracle Linux Automation Manager 自动将 VMware 环境中运行的现有 VM 迁移到 Oracle Linux Virtualization Manager。

目标

在本教程中,您将学习如何:

先决条件

设置资源

身份证明

创建包括对播放簿运行 virt-v2v 的 KVM 主机的 root 访问权限的计算机身份证明。

计算机身份证明

输入 VMware VCenter 的管理级别凭证,以允许在 VMware 环境中关闭 VM。

VMware 身份证明

产品清单

定位至资源、库存,然后在单击添加按钮后选择添加库存选项。创建清单后,添加包含 KVM 主机的 FQDN 或 IP 地址的主机。

项目

创建新项目或使用现有手动项目或基于 SCM 的项目。编写以下手册并将其添加到项目中。


- name: Migrating VMs
  hosts: all
  vars:
    vcenter_hostname: '{{ lookup("env","VMWARE_HOST") }}'
    vcenter_username: '{{ lookup("env","VMWARE_USER") }}'
    vcenter_password: '{{ lookup("env","VMWARE_PASSWORD") }}'
  tasks:  
    - name: Set the state of a virtual machine to poweroff
      community.vmware.vmware_guest_powerstate:
         hostname: "{{ vcenter_hostname }}"
         username: "{{ vcenter_username }}"
         password: "{{ vcenter_password }}"
         folder: "/{{ vmware_dc  }}/vm/"
         name: "{{ item }}"
         state: powered-off
      delegate_to: localhost
      register: deploy
      loop: "{{ vm_name.split(',') }}"

    - name: Save OLVM Admin  password
      copy:
        content: "{{ olvm_password }}"
        dest: /tmp/olvm-admin-password
    - name: Save VMware Admin password
      copy:
        content: "{{ vmware_password }}"
        dest: /tmp/vmware-admin-password

    - name: Ensure virt-v2v is installed
      dnf:
       name: virt-v2v
       state: present
       
    - name: Gathering Fingerprint
      shell: "openssl s_client -connect {{ vcenter_host }}:443 2> /dev/null | openssl x509 -in /dev/stdin - fingerprint -shal -noout | grep -oP  '(?<=SHA1 Fingerprint=).*'"
      register: vcenter_thumbprint


    - name: Migrating
      command: "virt-v2v -ic vpx://VSPHERE.LOCAL%5c{{ vcenter_user }}@{{ vcenter_hostname }}/{{ vmware_dc }}/{{ vmware_cl }}/{{ esx_host }}?no_verify=1 -ip /tmp/vmware-admin-password {{ item  }} -io vddk-libdir=/usr/local/vmware-vix-disklib-distrib -it vddk -io vddk-thumbprint={{ vcenter_thumbprint.stdout }} -o rhv-upload -oc https://{{ olvm_fqdn }}/ovirt-engine/api -op /tmp/olvm-admin-password -os {{ olvm_storagedomain }} -of qcow2 -oo rhv-cafile=/root/v2v/ca.pem -oo rhv-direct -oo rhv-cluster={{ olvm_cluster}} --verbose --network {{ olvm_network }}"
      loop: "{{ vm_name.split(',') }}"
      async: 0
      poll: 5
      environment:
          LIBGUESTFS_BACKEND: "direct" 

执行环境

手册的一部分涉及与 VMware 环境交互。因此,需要构建定制的执行环境,包括 VMware 集合。

有关详细信息,请参阅 Private Automation Hub 和 Builder Utility 教程。

模板

接下来,我们需要使用上面创建的所有资源创建一个模板。选择 KVM 主机清单、KVM 主机计算机和 VMware VCenter 身份证明、包含 VMware 集合的新执行环境以及迁移手册。

通过增加模板详细程度设置,可以在迁移过程中获得更详细的输出。

详细程度

调查

调查为剧本设置了额外的变量,类似于“Prompt for Extra Variables”的作用,但以用户友好的问答方式,同时还允许用户输入验证。

从 Template(模板)面板中,单击 Survey(调查)选项卡。然后单击添加按钮以创建新调查。

此时将显示一个类似的对话框,您可以在其中填写必需参数。

调查问题

同样,为剧本中使用的每个额外变量创建调查。

问题 答案变量名称 解答类型
要迁移的 VM 的名称是什么 vm_name Text
输入 Vsphere 用户的名称 vcenter_user Text
输入 VMware Adnin 密码 vmware_password 密码
源数据中心名称,来自 VMware vmware_dc Text
VMware 中的集群名称 vmware_cl Text
运行 VM 的 ESX 主机的 IP/FQDN esx_host Text
VCenter 的 IP/FQDN vcenter_host Text
输入 OLVM 的 FQDN olvm_fqdn Text
从 OLVM 输入目标存储域 olvm_storagedomain Text
从 OLVM 输入集群名称 olvm_cluster Text
从 OLVM 输入网络名称 olvm_network Text
输入 OLVM 的管理员口令 olvm_password 密码

创建调查后,单击启动图标,将显示一个对话框,其中包含已创建的问题。

调查

使用有关环境的特定详细信息填充调查后,单击“下一步”并启动模板。

后续步骤

此 blog 帖子详细介绍了如何将 VM 从 VMware 迁移到 Oracle Linux Virtualization Manager。上面的教程有助于用户不必登录到 KVM 主机,并为每次迁移手动输入值,从而减少错误并节省时间。virt-v2v 工具在单独运行时是半自动的,但在此处,我们显示可以使用 Oracle Linux Automation Manager 实现完全自动化的。

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。

有关产品文档,请访问 Oracle 帮助中心。