Step 1: Prepare Your Machines
Install a clean Ubuntu* OS on the control plane and, for Multi-Node deployments, on all edge nodes. This example uses Ubuntu* Server, but Ubuntu* Desktop is also supported. Here are the high-level steps.
Download the Ubuntu* Server ISO file to your developer workstation for the control plane and for the edge nodes. For the supported version, see Requirements.
Follow the prompts to install Ubuntu* with the default configurations.
For detailed instructions, see the Ubuntu* guide.
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>"
Apply the proxy settings:
source /etc/environment
On the control plane and all edge nodes, install the following packages:
sudo apt-get update sudo apt-get install ssh sudo apt-get install net-tools wget pipenv git ansible pip install sh
Configure the control plane with a static IP. This is needed to avoid IP changes during control plane reboots. For help on how to set a static IP, go to Troubleshooting.
NOTE:This step is needed because the deployment reboots the control plane multiple times, and the deployment assumes the control plane has the same IP every time.If the system does not have a host name, set hostname:
sudo hostname -b <hostname>
On the control plane and all edge nodes, make sure that password-less ssh access for root is set.
Edit /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
Add the following line at the end of the file:
PermitRootLogin yes
Restart the ssh service:
sudo service ssh restart
Log in as root. Do all of the remaining actions, after this point, in Step 1 as root.
sudo su -
On the control plane and all edge nodes, set a password for root.
If root does not already have a password, set a password for root:
passwd
Generate and add the ssh keys on the control plane.
For a Single-Node Deployment
Send the keys from the control plane to itself. This is needed because Intel® Smart Edge Open uses the ssh connection from the control plane to the worker node even though they are on the same machine.
ssh-keygen -f $HOME/.ssh/id_rsa -P "" ssh-copy-id root@<hostname of the control plane> chmod -R 700 ~/.ssh
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 a Multi-Node Deployment
Generate the ssh key.
ssh-keygen -f $HOME/.ssh/id_rsa -P ""
On the control plane and all edge nodes, send the keys from the control plane to all edge nodes and from the control plane to itself:
ssh-copy-id root@<hostname of the control plane or edge node>
On the control plane and all edge nodes, set the correct permissions for the ~/.ssh directory:
chmod -R 700 ~/.ssh
On the control plane and all edge nodes, 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
Verify that all systems have the same date and time.
date
If the date and time are not identical on all systems, synchronize the date and time between the control plane and edge nodes by running this command from the control plane to each edge node:
date +%Y%m%d%T -s "`ssh root@<hostname of the edge node> 'date "+%Y%m%d %T"'`"
NOTE:- This synchronizes the date and time between systems for this boot.
A reboot may de-synchronize the systems.
The systems should be configured to reflect the real world date and time.
See Ubuntu’s time synchronization for detailed instructions.