In this post im putting together the steps im following to work on os-migrate, this is setting up my development environment.
1- Start with a fresh deployed f30 machine.
2- Install the following prerequisites:
sudo mkdir -p /home/libvirt/
sudo ln -sf /home/libvirt/ /var/lib/libvirt
sudo yum groupinstall "Virtualization Host" -y
sudo yum install git lvm2 lvm2-devel -y
sudo yum install libvirt-python python-lxml libvirt -y
sudo yum install python36 -y
sudo yum install buildah podman -y
sudo yum install shyaml -y
sudo yum install git -y
sudo yum install nano vim -y
# git config --global user.name "Carlos Camacho"
# git config --global user.email "ccamacho@redhat.com"
3- Clone devstack source cloud.
cd
git clone https://github.com/openstack/devstack devstack
cd devstack
sudo ./tools/create-stack-user.sh
cd
mv devstack /opt/stack/
su - stack
sudo chown -R stack. /opt/stack/
sudo chmod -R 775 /opt/stack/
cd devstack
cat << EOF > local.conf
[[local|localrc]]
OS_PROJECT_NAME=devstack
USE_PYTHON3=True
SERVICE_PASSWORD=devstack
ADMIN_PASSWORD=devstack
SERVICE_TOKEN=devstack
DATABASE_PASSWORD=devstack
RABBIT_USERID=devstack
RABBIT_PASSWORD=devstack
EOF
FORCE=yes ./stack.sh
4- Source the stackrc file.
source ~/devstack/stackrc
5- Check that the thing works.
openstack --os-cloud devstack-admin --os-region RegionOne network list
openstack --os-cloud devstack-admin --os-region RegionOne router list
6- Install the prerequisites for os-migrate:
cd
git clone https://github.com/os-migrate/os-migrate
cd os-migrate
sudo make toolbox-build
cp /etc/openstack/clouds.yaml tests/func/clouds.yaml
sed -i -e "s/ devstack:/ testsrc:/" tests/func/clouds.yaml
sed -i -e "s/ devstack-alt:/ testdst:/" tests/func/clouds.yaml
pip install --upgrade pip
pip install --upgrade setuptools
pip install -r ./toolbox/build/venv-requirements.txt
7- Install the os_migrate collection:
cd
cd os-migrate
rm -rf releases
mkdir -p releases
ansible-galaxy collection build os_migrate -v --force --output-path releases/
cd releases
LATEST=$(ls os_migrate-os_migrate*.tar.gz | grep -v latest | sort -V | tail -n1)
ln -sf $LATEST os_migrate-os_migrate-latest.tar.gz
ansible-galaxy collection install --force os_migrate-os_migrate-latest.tar.gz
cd
8- Config prev run:
cd
export OS_MIGRATE="$HOME/.ansible/collections/ansible_collections/os_migrate/os_migrate"
export OS_MIGRATE_DATA="$HOME/os-migrate-data"
mkdir -p "$OS_MIGRATE_DATA"
~/os-migrate/scripts/auth-from-clouds.sh \
--config /etc/openstack/clouds.yaml \
--src devstack \
--dst devstack \
> ~/os-migrate-auth.yml
cat <<EOF > $HOME/os-migrate-vars.yml
# source and destination clouds, referring to names chosen in clouds.yml
os_migrate_src_cloud: devstack
os_migrate_dst_cloud: devstack
# where to put exported resources
os_migrate_data_dir: $HOME/os-migrate-data
ansible_python_interpreter: /usr/bin/python3
EOF
9- Run os_migrate
cd
ansible-playbook \
-i $OS_MIGRATE/localhost_inventory.yml \
-e @$HOME/os-migrate-vars.yml \
-e @$HOME/os-migrate-auth.yml \
$OS_MIGRATE/playbooks/export_security_groups.yml
cd
ansible-playbook \
-i $OS_MIGRATE/localhost_inventory.yml \
-e @$HOME/os-migrate-vars.yml \
-e @$HOME/os-migrate-auth.yml \
$OS_MIGRATE/playbooks/export_security_group_rules.yml
cd
ansible-playbook \
-i $OS_MIGRATE/localhost_inventory.yml \
-e @$HOME/os-migrate-vars.yml \
-e @$HOME/os-migrate-auth.yml \
$OS_MIGRATE/playbooks/import_security_groups.yml
cd
ansible-playbook \
-i $OS_MIGRATE/localhost_inventory.yml \
-e @$HOME/os-migrate-vars.yml \
-e @$HOME/os-migrate-auth.yml \
$OS_MIGRATE/playbooks/import_security_group_rules.yml
10- See the results
ls $OS_MIGRATE_DATA/
11- Sanity, unit and functional tests no Vagrant
cd
cd os-migrate
sudo ./toolbox/run make test-fast
cd
cd os-migrate
sudo ./toolbox/run make test-func
Iterate over 7 and 9 over and over