This is an old revision of the document!
Table of Contents
VirtualBox Linux Lab
The mission is this Lab is to create genuine hands-on experience for hands-on learnings who want to learn to use Ansible to create auto-installing Ubuntu ISOs and use them to stand up a server lab in Oracle VirtualBox.
Mission:
- Install Ansible and other required packages on a new Ubuntu system
- Prepare ssh keys for managing the Ansible servers
- Install VirtualBox using Ansible
- Customize the user-data for unattended installation
- Create a custom Ubuntu server ISO that automatically installs
- Deploy our first Ubuntu VM to OracleBox
- Test our first Ubuntu VM
- Delete our first Ubuntu VM
- Deploy our first fleet of VMs
- Deploy an application to our fleet of VMs
Materials:
- NUC
- Recommend a more powerful NUC with 16GB RAM and 500GB disk space
References:
Project Overview
Before starting the Lab, you might review Preparing NUCs for Labs. The will help you prepare all the NUCs for use.
Initial Set Up of Your Host System
You will need to set up a large-ish Ubuntu system. This will be home to the Oracle VirtualBox virtual machines (VM's). I used a NUC but you can use any Ubuntu system. This system will also be the Ansible controller.
It's a good idea to use a minimal installation for this Lab.
Make sure virtualization is enabled in BIOS.
For example on a NUC: Advanced > Security > Security Features
- Intel® Virtualization Technology
- Intel® VT for Directed I/O
Install Packages and Create Keys for Ansible Management
- Add repository for Ansible
sudo apt-add-repository ppa:ansible/ansible
- Install required packages
sudo apt update && sudo apt upgrade -y
sudo apt install vim p7zip xorriso ansible -y
- Create the user
ansible
and switch to the user (learn more at this link)sudo useradd -m -s /bin/bash ansible
sudo passwd ansible
su - ansible
- Create the ssh key ansible will use to connect to your VMs
ssh-keygen -o
- accept default settings and do not enter a passphrase
- Use
cat ~/.ssh/id_rsa.pub
to get your public key- Looks like “ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDKwEYxgppj+um+/W8LLxRpwZ2887IJirfJjFBkE30UeCZ0D1JS2RTMn4QEK1EAphByGxnmCruTL36aLMTO0FNH4IW+017/7wNY4JjRzRssZSMqmdjH4nhYV22JDIWh428p93FLsgqM+ud0Mj06KgJfa4BQtSvnR/p/4AXYzFTwzE+kyussIiOi+uT20AXNEIxk4ps39xhLGc6XNFo1xhtGvTZ9+Jx7AanVht090HuRuxNmOTd260mbeBJUKRF57d9tzZ68YRQiokIunkNF2skfJOZEUaIOWUoGGIWPMlEUEC0RhyW+7Ljmp7RbIOZ45CV0MYZEpKx4KQ61/CoMY4wKBCM90SwxJQwM3CZCseqcVnpFYKpFd6dnn0v0XsmINCU+y1RXYLfsOHEhLTm5WK9ERi5yr/1OjKkId+xZrf7D/v2soQdHsc82d+otbTDXzHYPduc2DfstJg5QFCECNrsEPRishAh2Lm2GJ3h0Pj20loyYeKWlUJpbLjd5A5Mnk9E= ansible@labbox”
- Save this, you will use it when you create the custom Ubuntu ISO
Install Oracle VirtualBox using Ansible
Follow steps here: Install Oracle VirtualBox using Ansible
Note: There are many references out there if you don't want to use Ansible to install VirtualBox (e.g., https://linuxconfig.org/install-virtualbox-on-ubuntu-22-04-jammy-jellyfish-linux)
Customize the user-data File for Unattended Installation
Follow steps here: Customize user-data for Ubuntu Unattended Install
Generate Custom Unattended Ubuntu Install ISO
Follow steps here: Generate Custom Unattended Ubuntu Install ISO
Deploy our first Ubuntu VM to Oracle VirtualBox using Ansible
Follow steps here: Deploy Ubuntu unattended uninstall image to Oracle VirtualBox using Ansible
Test our first Ubuntu VM
- Log in directly using Ansible
- Update packages on the VM using Ansible playbook