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/environmentto 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.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, sethostname:sudo hostname -b <hostname>
- On the control plane and all edge nodes, make sure that password-lesssshaccess forrootis 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 thesshservice:sudo service ssh restart
- Log in asroot. 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 forroot.Ifrootdoes not already have a password, set a password forroot:passwd
- Generate and add thesshkeys 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 thesshconnection 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 thesshkey.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~/.sshdirectory: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.dateIf 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"'`"
- 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.