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
On the control plane and all edge nodes, upgrade the following packages:
sudo pip install pyopenssl --upgrade
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 forroot
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 asroot
.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 forroot
: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.
Note
This step is required in multi-node deployment only.
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.