diff --git a/doc/deployment_guide/deployment_guide.md b/doc/deployment_guide/deployment_guide.md index 5899275c45a865b45c72c5fea18ea15e256165a6..8db3bfad65d2de358f99fbdb24aa239ca0d13c12 100644 --- a/doc/deployment_guide/deployment_guide.md +++ b/doc/deployment_guide/deployment_guide.md @@ -7,34 +7,34 @@ controller. In this section, we describe how to configure a machine (physical or virtual) to be used as the deployment, execution, and development environment for the ETSI TeraFlowSDN controller. Choose your preferred environment below and follow the instructions provided. -**NOTE**: If you already have a remote physical server fitting the requirements specified in this section feel free to use it instead of deploying a local VM. Check [1.1.1. Physical Server](#1-1-1-physical-server) for further details. +**NOTE**: If you already have a remote physical server fitting the requirements specified in this section feel free to use it instead of deploying a local VM. Check [1.1.1. Physical Server](#111-physical-server) for further details. Virtualization platforms tested are: - [Physical Server](#111-physical-server) - [Oracle Virtual Box](#112-oracle-virtual-box) - [VMWare Fusion](#1-1-3-vmware-fusion) -- ['1.1.4. OpenStack'](#1-1-4-openstack) -- [1.1.5. Vagrant Box](#1-1-5-vagrant-box) +- [OpenStack'](#1-1-4-openstack) +- [Vagrant Box](#1-1-5-vagrant-box) ## 1.1.1. Physical Server This page describes how to configure a physical server for running ETSI TeraFlowSDN(TFS) controller. ### Server Specifications -#### Minimum Server Specifications for development and basic deployment +** Minimum Server Specifications for development and basic deployment ** - CPU: 4 cores - RAM: 8 GB - Disk: 60 GB - 1 GbE NIC -#### Recommended Server Specifications for development and basic deployment +** Recommended Server Specifications for development and basic deployment ** - CPU: 6 cores - RAM: 12 GB - Disk: 80 GB - 1 GbE NIC -#### Server Specifications for best development and deployment experience +** Server Specifications for best development and deployment experience ** - CPU: 8 cores - RAM: 32 GB - Disk: 120 GB @@ -108,6 +108,102 @@ sudo apt-get dist-upgrade -y ## 1.1.2. Oracle Virtual Box +This page describes how to configure a VM for running ETSI TeraFlowSDN(TFS) controller using [Oracle VirtualBox](https://www.virtualbox.org/). It has been tested with VirtualBox up to version 6.1.40 r154048. + +### Create a NAT Network in VirtualBox +In "Oracle VM VirtualBox Manager", Menu "File > Preferences... > Network", create a NAT +network with the following specifications: + +|Name |CIDR |DHCP |IPv6 | +|-----------|-----------|--------|--------| +|TFS-NAT-Net|10.0.2.0/24|Disabled|Disabled| + +Within the newly created "TFS-NAT-Net" NAT network, configure the following IPv4 +forwarding rules: + +|Name|Protocol|Host IP |Host Port|Guest IP |Guest Port| +|----|--------|---------|---------|---------|----------| +|SSH |TCP |127.0.0.1|2200 |10.0.2.10|22 | +|HTTP|TCP |127.0.0.1|8080 |10.0.2.10|80 | + +__Note__: IP address 10.0.2.10 is the one that will be assigned to the VM. + +### Create VM in VirtualBox: + +- Name: TFS-VM +- Type/Version: Linux / Ubuntu (64-bit) +- CPU (*): 4 vCPUs @ 100% execution capacity +- RAM: 8 GB +- Disk: 60 GB, Virtual Disk Image (VDI), Dynamically allocated +- Optical Drive ISO Image: "ubuntu-22.04.X-live-server-amd64.iso" + - Download the latest Long Term Support (LTS) version of the *Ubuntu Server* image from [Ubuntu 22.04 LTS](https://releases.ubuntu.com/22.04/), e.g., "ubuntu-22.04.X-live-server-amd64.iso". + - __Note__: use Ubuntu Server image instead of Ubuntu Desktop to create a lightweight VM. +- Network Adapter 1 (*): enabled, attached to NAT Network "TFS-NAT-Net" +- Minor adjustments (*): + - Audio: disabled + - Boot order: disable "Floppy" + +__Note__: (*) settings to be editing after the VM is created. + +### Install Ubuntu 22.04 LTS Operating System +In "Oracle VM VirtualBox Manager", start the VM in normal mode, and follow the +installation procedure. +Below we provide some installation guidelines: +- Installation Language: English +- Autodetect your keyboard +- If asked, select "Ubuntu Server" (do not select "Ubuntu Server (minimized)"). +- Configure static network specifications: + +|Interface|IPv4 Method|Subnet |Address |Gateway |Name servers |Search domains| +|---------|-----------|-----------|---------|--------|---------------|--------------| +|enp0s3 |Manual |10.0.2.0/24|10.0.2.10|10.0.2.1|8.8.8.8,8.8.4.4|<empty> | + +- Leave proxy and mirror addresses as they are +- Let the installer self-upgrade (if asked). +- Use an entire disk for the installation + - Disable setup of the disk as LVM group + - Double check that NO swap space is allocated in the partition table. Kubernetes does not work properly with SWAP. +- Configure your user and system names: + - User name: TeraFlowSDN + - Server's name: tfs-vm + - Username: tfs + - Password: tfs123 +- Install Open SSH Server + - Import SSH keys, if any. +- Featured Server Snaps + - Do not install featured server snaps. It will be done manually later to illustrate how to uninstall and reinstall them in case of trouble with. +- Let the system install and upgrade the packages. + - This operation might take some minutes depending on how old is the Optical Drive ISO image you use and your Internet connection speed. +- Restart the VM when the installation is completed. + +#### Upgrade the Ubuntu distribution +```bash +sudo apt-get update -y +sudo apt-get dist-upgrade -y +``` +- If asked to restart services, restart the default ones proposed. +- Restart the VM when the installation is completed. + + +#### Install VirtualBox Guest Additions +On VirtualBox Manager, open the VM main screen. If you are running the VM in headless +mode, right click over the VM in the VirtualBox Manager window and click "Show". +If a dialog informing about how to leave the interface of the VM is shown, confirm +pressing "Switch" button. The interface of the VM should appear. + +Click menu "Device > Insert Guest Additions CD image..." + +On the VM terminal, type: +```bash +sudo apt-get install -y linux-headers-$(uname -r) build-essential dkms + # This command might take some minutes depending on your VM specs and your Internet access speed. +sudo mount /dev/cdrom /mnt/ +cd /mnt/ +sudo ./VBoxLinuxAdditions.run + # This command might take some minutes depending on your VM specs. +sudo reboot +``` + ## 1.1.3. VMWare Fusion ## 1.1.4. OpenStack