Step 1: Prepare Your Machines
Install a clean Ubuntu* OS on all machines. This example uses Ubuntu* Linux Server, but Ubuntu* Desktop is also supported.
Download the Ubuntu* Linux Server ISO file to your developer workstation for the control plane and for the worker nodes.
Create a bootable flash drive using an imaging application, such as Startup Disk Creator, available on Ubuntu*.
After flashing the USB drive, power off your target systems, insert the USB drive, and power on the target systems.
If the target systems do not boot from the USB drive, change the boot priority in the system BIOS.
Follow the prompts to install Ubuntu* with the default configurations. For detailed instructions, see the Ubuntu* guide.
Power down your target systems, and remove the USB drive.
Power up the target systems.
Expected result: Ubuntu* Server is successfully installed.
Verify that PATH is configured in /etc/environment to contain, at a minimum:
PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
If a proxy is required to connect to the Internet, add the proxy settings in /etc/environment:
export http_proxy="http://<http_proxy>:port" export https_proxy="http://<https_proxy>:port" export ftp_proxy="http://<ftp_proxy>:port" export no_proxy="<no_proxy>"
Source /etc/environment:
source /etc/environment
Install the following packages on all machines:
sudo apt-get update sudo apt-get install ssh sudo apt-get install net-tools wget pipenv git ansible pip install sh
Configure the server with a static IP. This is needed to avoid IP changes during server reboots. Use your IP addresses in the following example. For help on how to set a static IP, go to Troubleshooting.
NOTE:This step is needed because the deployment reboots your system multiple times, and the deployment assumes your system has the same IP every time.Set hostname if the system does not already have one:
sudo hostname -b <hostname>
Make sure that password-less ssh access for root is set on all machines:
sudo nano /etc/ssh/sshd_config
Add the following line at the end of the file:
PermitRootLogin yes
After the /etc/ssh/sshd_config is updated, restart the ssh service:
sudo service ssh restart
NOTE:Execute this step on all systems.On all machines, log in as root and, if it does not have one already, set a password for root:
sudo su - passwd
Generate, and add the ssh keys on the server:
ssh-keygen -f $HOME/.ssh/id_rsa -P "" # Repeat the following two commands for all the machines. # For Single-Node these steps still need to be done from Machine A to Machine A. ssh-copy-id root@<hostname of the machine> chmod -R 700 ~/.ssh
NOTE:For Multi-Node Deployment: The keys must be sent from the server (Machine A) to all nodes (Machine B, Machine C) and from server to server.For Single-Node Deployment: The keys must be sent from the machine to itself. This is needed because Intel® Smart Edge Open uses the ssh connection from the controller node to a worker node even though they are on the same machine.
For Multi-Node Deployment: Set the correct permissions for ~/.ssh directory on all worker nodes:
chmod -R 700 ~/.ssh
For all the machines, update /etc/hosts:
127.0.0.1 localhost <enter the system's hostname here> 127.0.1.1 <enter the system's hostname here> # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback <enter the system's hostname here> ff02::1 ip6-allnodes ff02::2 ip6-allrouters
For Multi-Node Deployment: Synchronize the date and time between the server and nodes:
date +%Y%m%d%T -s "`ssh root@node1 'date "+%Y%m%d %T"'`"
NOTE:Run the command from Machine A to Machine B and from Machine A to Machine C.