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: [email protected]
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.ymlprovide following entry toprofiles(providegit_usernameandgit_tokenif 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.ymlfile.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.shexecutespre.sh,profile.sh, andpost.shpre.shwill 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.shexecutes two files in order to provision the EK:provision_seo_common.sh- SSH key generation
- Pipenv installation
- Systemd service
seoinstallation and enabling - Cloning Experience Kits and installing dependencies
- Fetching
group_varsandhost_vars
provision_seo_sn.shorprovision_seo_mn.sh- Proper inventory file is downloaded
- SSH certs are created (for multinode)
post.shenables secure boot (if enabled by user) and reboots system
- System reboots into provisioned OS (Ubuntu).
seoservice 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.ymlwill be saved asinventory/default/group_vars/all/100-settings.ymleffectively 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_settingadd an entry:files["syscfg_package.zip"]="biosfw/syscfg_package.zip"syscfg_package.zipwill 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_settingfile.
.
├── 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