The reporitory contains configuration files needed to spawn OpenStack in a single Vagrant box. OpenStack services are started in docker containers via kolla-ansible.
- Vagrant >= 2.2.19
- VirtualBox (run
VBoxManage --version
to ensure it works) - 32GB of memory for virtual machines
- VirtualBox allows the box IP address configured in Vagrantfile. For example to allow all addresses the following commands can be executed:
sudo mkdir /etc/vbox/
sudo chmod 644 /etc/vbox/networks.conf
sudo echo '* 0.0.0.0/0 ::/0' > /etc/vbox/networks.conf
vagrant up
or if you have several providers or not sure what provider is default:
vagrant up --provider=virtualbox
vagrant halt
vagrant destroy
vagrant reload
vagrant ssh
cd /home/vagrant/sync
openstack stack create -e heat-environment -t stack-example.yaml test
- For development setup (from scratch):
sudo mkdir /opt/swm
sudo chown $(id -u) /opt/swm
make cr
cd swm-core
make worker
make release
SWM_VERSION=0.2.0
./scripts/setup-skyport-dev.linux
cp _build/packages/swm-${SWM_VERSION}-worker.tar.gz ../openstack-box/swm-worker.tar.gz
- For development setup (update):
make worker
- For regular setup replace the last command from above to:
cp /opt/swm/swm-${SWM_VERSION}-worker.tar.gz openstack-box/swm-worker.tar.gz
vagrant ssh
sudo bash
cd /home/vagrant/sync
./fetch-image.sh -i ubuntu-22.04-server-cloudimg-amd64
vagrant ssh
sudo bash
cd /home/vagrant/sync
IMAGE=ubuntu-22.04-server-cloudimg-amd64
./image-provision.sh -i ${IMAGE}.img -a swm-worker.tar.gz
vagrant ssh
/home/vagrant/sync/update-swm-worker.sh -i ubuntu-22.04-server-cloudimg-amd64 -v 0.2.0
sudo bash
cd /home/vagrant/sync
IMAGE=ubuntu-22.04-server-cloudimg-amd64
./image-mount.sh -i ${IMAGE}.img
mkdir /mnt/${IMAGE}/root/.ssh
chmod 700 /mnt/${IMAGE}/root/.ssh
vim /mnt/${IMAGE}/root/.ssh/authorized_keys # add public key
chmod 600 /mnt/${IMAGE}/root/.ssh/authorized_keys
./image-umount.sh -i ${IMAGE}.img
cd /home/vagrant/sync
IMAGE=ubuntu-22.04-server-cloudimg-amd64
openstack image create --public --disk-format qcow2 --container-format bare --file ${IMAGE}.img ubuntu-22.04