UncleNUC Wiki

Second chance for NUCs

User Tools

Site Tools


lab:ansible_virtualbox_autoboot_linux:start

This is an old revision of the document!


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.

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

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.

See Tutorial: Install Ubuntu Desktop

It's a good idea to use a minimal installation for this Lab. 16GB RAM and 500GB+ storage will allow you create a number of VMs.

Follow best practice to upgrade software packages on the system. Open Terminal and enter the commands below.

sudo apt update
sudo apt upgrade -y

Optionally, enable ssh so you can SSH to this system. Open Terminal and enter the commands below.

sudo apt update
sudo apt install openssh-server -y

See Tutorial: Enable SSH

Install Packages and Create Keys for Ansible Management

  1. Add repository for Ansible
    • sudo apt-add-repository ppa:ansible/ansible
  2. Install required packages
    • sudo apt update && sudo apt upgrade -y
    • sudo apt install vim p7zip xorriso ansible -y
  3. 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
  4. Create the ssh key ansible will use to connect to your VMs
    • ssh-keygen -o
    • accept default settings and do not enter a passphrase
  5. 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

Generate Custom Unattended Ubuntu Install ISO

Deploy our first Ubuntu VM to Oracle VirtualBox using Ansible

Test our first Ubuntu VM

  1. Log in directly using Ansible
  2. Update packages on the VM using Ansible playbook

Delete our first Ubuntu VM

Deploy our first fleet of VMs

Deploy an application to our fleet of VMs

lab/ansible_virtualbox_autoboot_linux/start.1705462500.txt.gz · Last modified: 2024/01/17 03:35 by user