Skip to content

Instantly share code, notes, and snippets.

@ccamacho
Last active April 1, 2020 12:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ccamacho/965115d97d29fa58f31f637ee8d2701f to your computer and use it in GitHub Desktop.
Save ccamacho/965115d97d29fa58f31f637ee8d2701f to your computer and use it in GitHub Desktop.
os-migrate dev env

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment