Skip to content

eosantigen/devanet

Repository files navigation

DevaNet: A Mini Cloud in a PC

Intro

The mini cloud is all nested inside a single but large VM which is managed by libvirtd and which hosts an Openstack all-in-one deployment.

Requirements and specs

First of all, it is imperative to check some hardware specs here, and also, the VM/domain specification here, because the whole VM is taking up the whole of a second attached disk to the PC, /dev/sdb, which is used only for this purpose. (executing the following step simply means erasing everything in this disk...)

Setup the whole VM ecosystem

If all is ok with your specs, setup libvirt and with it create the base VM with the Ansible playbook (run this playbook only once, or if you want to start full from scratch, as it re-creates the VM each time!)

ansible-playbook libvirtd.yaml -e node=DevaPC

Install OpenStack

After a clean Ubuntu Server installation, with the given specs and options, this command will take roughly 60' : ansible-playbook -i inventory/devanet.ini openstack-aio.yaml --ask-pass -K

How to start the ecosystem

  1. cd docker/domain; docker compose up
  2. Auto-boot is disabled, so, on each reboot of the base host, start the base VM with: virsh pool-start devanet && virsh start devanet
  3. Get a VNC connection to localhost:9090 and opt accordingly (reinstall or ctrl+alt+delete -> ESC -> 2 to start the installed system.)

Login

  1. Launch https://os.devanet (or https://192.168.122.2 if the DNS container fails... however, if DNS fails, the login will fail as well...)
  2. Login on either default or devanet domain:
  • either as admin with password found with:
ssh-keygen -f ~/.ssh/known_hosts -R "os.devanet"; ssh-keygen -f ~/.ssh/known_hosts -R "os"; cd ansible; ansible os.devanet -b -K --ask-pass -m ansible.builtin.shell -a 'grep keystone_auth_admin_password /etc/openstack_deploy/user_secrets.yml'
  • or as eos.antigen with password set on the LDAP instance as described here, on ideally domain devanet.

Aim of this project

To have fun by examining configurations of the following (to some possible extend, at least):