Prepare Hardware or Virtual Machine

Enable Nested Virtualization

Get Ubuntu 18.04 Cloud Image

Remove netplan & reboot

apt -y purge netplan.io
reboot

Config network

https://pnetlab.com/pages/documentation?slug=fix-name-resolution-error

  • /etc/network/interfaces
  • /etc/resolv.conf

Add repo

/etc/apt/sources.list.d/pnetlab.list
deb [trusted=yes] http://repo.pnetlab.com ./

Install PNETLab

apt update
apt -y install pnetlab

Install ishare2 Image Manager

https://github.com/ishare2-org/ishare2-cli

wget -O /usr/sbin/ishare2 https://raw.githubusercontent.com/ishare2-org/ishare2-cli/main/ishare2 && chmod +x /usr/sbin/ishare2 && ishare2

Install ishare2 Image Manager GUI

# cd /opt
# git clone https://github.com/ishare2-org/ishare2-web-gui.git
# cd ishare2-web-gui
# docker images
REPOSITORY          TAG           IMAGE ID       CREATED          SIZE
ishare              latest        b8d5dcdcbe12   10 minutes ago   87.6MB
python              3.11-alpine   a6fe4140edea   10 days ago      52.5MB

Patch A

https://pnetlab.com/pages/documentation?slug=fix-bug-file-get-contents

sed -i '/skip_ssl/d' /etc/mysql/mysql.conf.d/mysqld.cnf
echo "skip_ssl" >> /etc/mysql/mysql.conf.d/mysqld.cnf
sed -i 's/Update-Package-Lists "1"/Update-Package-Lists "0"/g' /etc/apt/apt.conf.d/20auto-upgrades

Patch B

(optional) enable offline mode as default, add offline account

# mysql -u pnetlab -p pnetlab_db
Enter password: pnetlab
Welcome to the MySQL monitor.  Commands end with ; or \g.
Server version: 5.7.42-0ubuntu0.18.04.1 (Ubuntu)
mysql> INSERT INTO `control` VALUES ('ctrl_default_mode','offline'),('ctrl_offline_mode','1'),('ctrl_online_mode','1');
mysql> INSERT INTO `users` VALUES (1,'admin',NULL,NULL,-1,NULL,'fcfcbba4e322bb69d53fe0f8a2b03d7f3c37ee3fb3d51864785c899aaeaaeb5d',NULL,NULL,'0',NULL,NULL,NULL,NULL,1723433636,NULL,1,NULL,NULL,1,NULL,NULL,NULL);

Patch C

(optional) disable boot screen and show boot logs

sed -i 's/quiet splash //g' /etc/default/grub
sed -i 's/quiet splash //g' /boot/grub/grub.cfg

Configure (reconfigure)

rm /opt/ovf/.configured
/bin/bash /opt/ovf/ovfconfig.sh

Configure Network and NTP server using setup script

Reboot

reboot

Firewall

(optional)

apt -y install ufw
systemctl enable --now ufw
ufw allow from 172.16.0.0/12 comment "Docker Internal"
ufw allow from 10.177.0.0/16 comment "Docker Internal"
ufw allow from 192.168.0.0/24 comment "MyNetwork"
ufw status numbered

Reference

https://pnetlab.com/pages/documentation?slug=install-bare-metal