Launch a VM Migration with Ansible Automation Platform
Configuring AAP to Launch a Migration
Creating Credentials
-
From the navigation panel, go to Automation Execution → Infrastructure → Credentials.
-
Click Create Credentials and set the following parameters:
-
Name: Bastion key
-
Credential Type: Machine
-
Username: cloud-user
-
SSH Private Key: File content from
/home/lab-user/.ssh/my-guidkey.pemon the bastion
-
-
Click Create Credential
Creating an Inventory
-
From the navigation panel, go to Automation Execution → Infrastructure → Inventories.
-
Click Create Inventory → Create Inventory and set the following parameters:
-
Name: Conversion Host Inventory
-
Organization: Default
-
-
Click Create Inventory.
Creating Hosts
Conversion Host
-
From the navigation panel, go to Automation Execution → Infrastructure → Hosts.
-
Click Create Host and set the following parameters:
-
Name: conversion_host
-
Inventory: Conversion Host Inventory
-
Variables:
-
ansible_host: {rhoso_conversion_host_ip}
ansible_ssh_user: cloud-user
Click Create Host.
Migrator Host
-
From the navigation panel, go to Automation Execution → Infrastructure → Hosts.
-
Click Create Host and set the following parameters:
-
Name: migrator
-
Inventory: Conversion Host Inventory
-
Variables:
-
ansible_connection: local
ansible_python_interpreter: '{{ ansible_playbook_python }}'
Click Create Host.
Creating an Execution Environment
If using OCP container registry:
-
From the navigation panel, go to Automation Execution → Infrastructure → Execution Environments.
-
Click Create Execution Environment and set the following parameters:
-
Name: VMware Migration toolkit execution environment
-
Image:
default-route-openshift-image-registry.apps.cluster-my-guid.dynamic.redhatworkshops.io/aap/rhospvmt-ee:latest
-
-
Click Create Execution Environment.
Creating a Project
-
From the navigation panel, go to Automation Execution → Projects.
-
Click Create Project and set the following parameters:
-
Name: vmware migration toolkit project
-
Source Control Type: Git
-
Source Control URL:
https://github.com/pnavarro/vmware-migration-kit -
Source Control Branch/tag/commit:
pnavarro-stable
-
-
Click Create Project.
Creating the Job Template
Preparing the Bastion
In the bastion, create the folder to store the ansible variables:
cd
mkdir -p /home/lab-user/os-migrate-env
Run the following commands to configure OpenStack CLI access:
oc project openstack
alias openstack="oc exec -t openstackclient -- openstack"
Retrieve necessary OpenStack parameters:
SECURITY_GROUP_ID=$(openstack security group list | awk '/ basic / {print $2}')
PROJECT_ID=$(openstack project list | grep ' admin ' | awk '{print $2}')
AUTH_URL=$(openstack endpoint list --service identity --interface public -c URL -f value)
Create the /home/lab-user/os-migrate-env/os_migrate_for_aap.yaml file:
cat << EOF > /home/lab-user/os-migrate-env/os_migrate_for_aap.yaml
os_migrate_tear_down: false
# osm working directory:
runner_from_aee: true
os_migrate_vmw_data_dir: /tmp/os-migrate
copy_openstack_credentials_to_conv_host: false
# Re-use an already deployed conversion host:
already_deploy_conversion_host: true
# If no mapped network, set the OpenStack network:
openstack_private_network: private
# Security groups for the instance:
security_groups: ${SECURITY_GROUP_ID}
use_existing_flavor: false
# Network settings for OpenStack:
os_migrate_create_network_port: true
copy_metadata_to_conv_host: true
used_mapped_networks: false
os_migrate_configure_network: true
vms_list:
- haproxy-my-guid
# VMware parameters:
vcenter_hostname: {vcenter_console}
vcenter_username: {vcenter_full_user}
vcenter_password: {vcenter_password}
vcenter_datacenter: RS01
os_cloud_environ: demo.redhat.com
dst_cloud:
auth:
auth_url: ${AUTH_URL}
username: admin
project_id: ${PROJECT_ID}
project_name: admin
user_domain_name: Default
password: openstack
region_name: regionOne
interface: public
insecure: true
identity_api_version: 3
EOF
Configuring the Job Template
-
From the navigation panel, go to Automation Execution → Templates.
-
Click Create Template → Create Job Template and set the following parameters:
-
Name: HAProxy VM Migration
-
Inventory: Conversion Host Inventory
-
Project: vmware migration toolkit project
-
Playbook:
playbooks/migration.yml -
Execution Environment: VMware Migration toolkit execution environment
-
Credentials: Bastion key
-
Extra Variables: Copy the content of
/home/lab-user/os-migrate-env/os_migrate_for_aap.yamlfrom the bastion
-
-
Click Create Job Template.
Running the Migration
-
From the navigation panel, go to Automation Execution → Templates.
-
Locate the HAProxy VM Migration template.
-
Click the rocket icon to launch the migration.
Note: The migration would take around 20 minutes. In the meantime, you can continue with the next lab and come back later to check the migration status.
Ping to the migrated VM
From the bastion, attach a floating IP to the migrated virtual machine:
openstack floating ip create public
openstack server add floating ip haproxy_{guid} {FLOATING_IP}
From the bastion, ping to the migrated virtual machine:
ping {FLOATING_IP}
Delete the VM in the RHOSO environment before the next lab
openstack server delete haproxy_my-guid
openstack volume delete haproxy_my-guid-2000
openstack port delete haproxy_my-guid-NIC-0-VLAN-private
Troubleshooting the Migration
If the migration fails, or you want to troubleshoot the migration, you can access the logs by logging into the conversion host using the following command:
ssh -i /home/lab-user/.ssh/{guid}key.pem cloud-user@{rhoso_conversion_host_ip}
Then, you can access the logs of the migration using the following command:
sudo -i
less /tmp/osm-nbdkit-haproxy_{guid}-*.log