PROJECT NOT UNDER ACTIVE MANAGEMENT
This project will no longer be maintained by Intel.
Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.
Intel no longer accepts patches to this project.
If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.
Contact: webadmin@linux.intel.com
SPDX-License-Identifier: Apache-2.0
Copyright (c) 2019-2021 Intel Corporation
This directory contains profile for the Edge Software Provisioner required to provision a Developer Experience Kits on the Ubuntu 20.04 LTS.
This profile is based on intel/rni-profile-base-ubuntu's slim
and master
branches.
For more information regarding conventions and limitations please refer to intel/rni-profile-base-ubuntu's READMEs (both master
and slim
branch).
At least two hosts are required:
- Host of the ESP server - can be physical server, laptop or VM.
- Server to be provisioned.
On the provisioned server, hard drive/SSD should be a primary boot target.
USB should be one-time booted via boot menu.
This will ensure that when the live OS reboots, an Ubuntu will be booted into and the Experience Kits will be started.
- Clone the Edge Software Provisioner to separate Linux box that will host the ESP server.
- Customize the Edge Software Provisioner (ESP).
Inconf/config.yml
provide following entry toprofiles
(providegit_username
andgit_token
if needed):- git_remote_url: https://github.com/smart-edge-open/profiles profile_branch: main profile_base_branch: "" git_username: "" git_token: "" name: SEO_DEK custom_git_arguments: --depth=1
- Build the ESP (
build.sh
)
This will build artifacts needed for the ESP to work and clone the profiles. - (optional) Create USB (
makeusb.sh
,flashusb.sh
) - Customize profile on disk:
ESP/data/usr/share/nginx/html/profile/SEO_DEK/files/seo/provision_settings
This file contains GitHub token, URL to clone, branch to checkout on clone, and other settings.- Provide customizations to the DEK execution:
ESP/data/usr/share/nginx/html/profile/SEO_DEK/files/seo/group_vars
Most importantlyall.yml
file.ESP/data/usr/share/nginx/html/profile/SEO_DEK/files/seo/host_vars
- Run the ESP (
run.sh
) - Boot the live system (uOS) via PXE or from USB on destination machine.
Live system will prepare Ubuntu for deployment of the Experience Kits which will happen after machine reboot and boot into Ubuntu system.
- uOS starts, fetches and executes
bootstrap.sh
.bootstrap.sh
executespre.sh
,profile.sh
, andpost.sh
pre.sh
will executecreate_seo_partitions.sh
- Specify a device/disk (eg /dev/sda)
- Checks if a device/disk (if specified) is above the threshold (currently set to 500 GB)
- If it is below the threshold, creating LVM snapshots will not be available and the whole device/disk will be partitioned
- If it is above the threshold, half of the total capacity of the device/disk (specified or not) will be used for LVM snapshots
profile.sh
executes two files in order to provision the EK:provision_seo_common.sh
- SSH key generation
- Pipenv installation
- Systemd service
seo
installation and enabling - Cloning Experience Kits and installing dependencies
- Fetching
group_vars
andhost_vars
provision_seo_sn.sh
orprovision_seo_mn.sh
- Proper inventory file is downloaded
- SSH certs are created (for multinode)
post.sh
enables secure boot (if enabled by user) and reboots system
- System reboots into provisioned OS (Ubuntu).
seo
service starts on boot and runs Experience Kit.- To check the status of the deployment:
- A message will be shown when initializing connection to the server using SSH:
Smart Edge Open Deployment Status: ...
- When logged in, logs can be inspected using:
journalctl -xefu seo
, ortail -f /opt/seo/logs/seo_dek_...
- A message will be shown when initializing connection to the server using SSH:
- To restart the deployment, run a command:
$ systemctl restart seo
Inside files/seo
directory there are following directories used to customize the Experience Kit: group_vars
, host_vars
, and sideload
.
Files in these group_vars
and host_vars
directories will be downloaded into Experience Kit inventory in following manner:
files/seo/group_vars/GROUP.yml
->inventory/default/group_vars/GROUP/100-settings.yml
,
e.g.files/seo/group_vars/all.yml
will be saved asinventory/default/group_vars/all/100-settings.yml
effectively overriding other files in that directory.files/seo/host_vars/HOST.yml
->inventory/default/host_vars/HOST/100-settings.yml
To side-load a file (e.g. syscfg_package.zip
for BIOSFW):
- Place the file in
esp/data/usr/share/nginx/html/profile/SEO_DEK/files/seo/sideload/
directory. - In
esp/data/usr/share/nginx/html/profile/SEO_DEK/files/seo/provision_setting
add an entry:files["syscfg_package.zip"]="biosfw/syscfg_package.zip"
syscfg_package.zip
will be downloaded into/path-to-experience-kit/biosfw/syscfg_package.zip
Schema is:files["_NAME_OF_THE_FILE_IN_SIDELOAD_DIR"]="DESTINATION"
More examples inprovision_setting
file.
.
├── bootstrap.sh
├── files
│ └── seo
│ ├── group_vars
│ │ ├── all.yml
│ │ ├── controller_group.yml
│ │ └── edgenode_group.yml
│ ├── host_vars
│ │ ├── controller.yml
│ │ └── node01.yml
│ ├── inventories
│ │ ├── controller.yml
│ │ ├── node.yml
│ │ └── single_node.yml
│ ├── provision_seo_common.sh
│ ├── provision_seo_mn.sh
│ ├── provision_seo_sn.sh
│ ├── provision_settings
│ ├── sideload
│ └── systemd
│ ├── seo_deploy.sh
│ └── seo.service
├── post.sh
├── redfish.py
├── pre.sh
├── create_seo_partitions.sh
├── profile.sh
└── README.md