在 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 HubBuilder 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 帮助中心