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.
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...)
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
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
cd docker/domain; docker compose up
- Auto-boot is disabled, so, on each reboot of the base host, start the base VM with:
virsh pool-start devanet && virsh start devanet
- Get a VNC connection to
localhost:9090
and opt accordingly (reinstall orctrl+alt+delete
-> ESC -> 2 to start the installed system.)
- 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...)
- Login on either
default
ordevanet
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 domaindevanet
.
To have fun by examining configurations of the following (to some possible extend, at least):
- libvirt
- Openstack
- Kubernetes
- Openstack Cloud Controller Manager
- Microk8s & K3s
- Service Mesh & Dapr
- Observability: distributed tracing, metrics, logging - with the Grafana stack, Prometheus, NetData, Jaeger & OpenTelemetry
- CI/CD and various pipelines for various jobs and for applications based on Python, Java, Nodejs, and Ruby on Rails, including:
- Software-defined networking and NFV with OpenDaylight & Open vSwitch