...
Contents
Table of Contents | ||
---|---|---|
|
Introduction
This document describes the steps to create a single and multi-node edge sites.
Info |
---|
Unicycle (Three-Node Cluster) - Supported in the future release |
Akraino Portal Operations
Login
Visit the portal URL http://REGIONAL_NODE_IP:8080/AECPortalMgmt/
where REGIONAL_NODE_IP
is the Portal IP.
Use the following credentials:
- Username: akadmin
- Password: akraino
Upon successful login, the Akraino Portal home page will appear.
Build or Deploy an Edge Site
From the Portal home page:
...
Click on Browse button, select the input file for Blueprint - Rover (Single-Node Cluster).
The input file is a property file that stores information in key-value
format. Sample input file used for ‘Rover’ deploy:
Info |
---|
Copy and paste the below contents in to a file, and save it as rover.txt. Use this file for uploading as mentioned in step 4.d above. Verify the configuration details as applicable to your environment. For more details refer to Appendix - Edge Site Configuration |
Code Block | ||||
---|---|---|---|---|
| ||||
# Copyright 2018 AT&T Intellectual Property. All other rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# host name for server
SRV_NAME=aknode42
# out of band interface information for server (idrac/ilo/etc)
SRV_OOB_IP=192.168.41.42
SRV_OOB_USR=root
SRV_OOB_PWD=calvin
# server oem - Dell or HPE (case sensitive)
SRV_OEM=Dell
# name of network interface used during build when "ipxe efi" file is booted and when OS is booted
# ipxe numbers interfaces from 0-n in pci bus order.
# the netX value will depend on how many nics are in the server
# and which pci device number is assigned to the slot
SRV_IPXE_INF=net4
SRV_BLD_INF=enp94s0f0
SRV_BOOT_DEVICE=sdg
# ipxe script to use - based on the os version and kernel to install
# valid options are script-hwe-16.04.5-amd64.ipxe or script-16.04.5-amd64.ipxe
SRV_BLD_SCRIPT=script-hwe-16.04.5-amd64.ipxe
# template xml file to set bios and raid configuration settings
SRV_BIOS_TEMPLATE=dell_r740_g14_uefi_base.xml.template
SRV_BOOT_TEMPLATE=dell_r740_g14_uefi_httpboot.xml.template
SRV_HTTP_BOOT_DEV=NIC.Slot.7-1-1
# tempalte to run to configure OS after first boot
# current options are: firstboot.sh.template, firstboot-genesis.sh.template or firstboot-airship-iab.sh.template
SRV_FIRSTBOOT_TEMPLATE=firstboot-airship-iab.sh.template
# VLAN to use during build and for final network configuration
SRV_VLAN=41
# basic network information for dhcp config and final server network settings
SRV_MTU=9000
SRV_IP=192.168.2.42
SRV_SUBNET=192.168.2.0
SRV_NETMASK=255.255.255.0
SRV_GATEWAY=192.168.2.200
SRV_DNS=192.168.2.85
SRV_DOMAIN=lab.akraino.org
SRV_DNSSEARCH=lab.akraino.org
SRV_NTP=ntp.ubuntu.org
# root password for server being built
SRV_PWD=akraino,d
# network bond information
SRV_BOND=bond0
SRV_SLAVE1=enp94s0f0
SRV_SLAVE2=enp94s0f1 |
5. Click on Submit. This will upload the input file and the site details into the portal.
6. User will see the file uploaded successfully message in the sites column then Deploy button is enabled.
a. Click on Deploy to begin the deploy process.
b. This process takes about an hour.
c. User can click on Refresh (link) to update the status of the deploy on the portal.
d. The deploy status changes from ‘Not started’ to ‘In progress’ to ‘Complete’
7. User can additionally check the log files to track the progress of edge site installation, by logging into the regional_node_ip via ssh, and running this command: tail -f /var/log/scriptexecutor.log
Tempest Tests
Prerequisites
Specifics around OpenStack are beyond the scope of this guide.
- Validate all OpenStack settings as needed.
- Ensure all necessary OpenStack services are up and running for a particular site.
- Use appropriate values for the OpenStack username, password, region, and desired timeout.
Running Tempest
- Navigate to ETE testing page using the left navigation menu in the portal.
- Select a deployed edge site in the Run Tests page, by clicking the radio button in the GUI table displayed. This will enable the "Run Tempest" button.
- Click on "Run Tempest" to trigger the tempest test on the deployed edge site.
- Test status shows "In Progress" upon successful invocation.
- Test status gets updated to 'Complete', once the job gets completed.
Installing ONAP
Prerequisites
Specifics around ONAP are beyond the scope of this guide.
- Verify that a VLAN is created and can be used for OpenStack tenant VM
- The VLAN ID
- An IP (or a range of IP) that can be accessed from this VLAN
- Gateway, DNS, for the IP
- A public private key pair for accessing ONAP VM
- If the Edge Node is behind proxy, the proxy URL
- Obtain the OpenStack keystone admin password
Installation
...
Contents
Table of Contents | ||
---|---|---|
|
Introduction
This document describes the steps to create a single and multi-node edge sites.
Info |
---|
Unicycle (Three-Node Cluster) - Supported in the future release |
Akraino Portal Operations
Login
Visit the portal URL http://REGIONAL_NODE_IP:8080/AECPortalMgmt/
where REGIONAL_NODE_IP
is the Portal IP.
Use the following credentials:
- Username: akadmin
- Password: akraino
Upon successful login, the Akraino Portal home page will appear.
Deploy a Multi-Node Edge Site
From the Portal home page:
- Select an Edge Site - MTN1 or MTN2 (these are the two default lab sites hosted in middle town NJ) by clicking on radio button provided in the first column of the table.
- For the selected Edge Site, select the Unicycle Blueprint from the drop-down menu.
- Click on Upload button (in the Site column), this will open a pop-up dialogClick on Browse button, select the input file for ONAP (parameters.env file).
The input
Provide the edge site-specific details such as:
- Host IP address
- Host username
Host password.
Example: DELL Cluster:
- Host IP address: 192.168.2.40
Host username: root
Host password: XXXXXX
Example: HP Cluster
- Host IP address: 192.168.2.30
Host username: root
Host password: XXXXXX
4. Click on Browse button, select the input file for Blueprint - Unicycle (Multi-Node Cluster).
The input file is a property file that stores information in key
...
-value
format. Sample input file used for
...
‘Unicycle’ deploy:
Info |
---|
Copy and paste the below contents in to a file, and save it as |
...
unicycle. |
...
yaml. Use this file for uploading as mentioned in step 4.d above. If using Dell Gen10, use the sample YAML input file shown in #1 below. If using HP Gen10, use the sample YAML file in #2 below. Verify the configuration details as applicable to your environment. For more details refer to Appendix - |
...
Edge Site Configuration |
Code Block | |||
---|---|---|---|
|
...
# Parameters that will be populated by camunda engine
parameters:
public_net_name: public
public_physical_net_provider_name: bond0
provider_segmentation_id: 50
public_physical_net_type: vlan
public_subnet_name: public
public_subnet_cidr: 172.24.8.0/24
public_subnet_allocation_start: 172.24.8.221
public_subnet_allocation_end: 172.24.8.225
public_subnet_dns_nameserver: 8.8.8.8
public_subnet_gateway_ip: 172.24.8.1
flavor_name: m1.onap
onap_vm_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCWcbAk6SJxvYf4CM75JGWsQ38149Fhu4dUXUmnmASFWuvPJ6sCpoGyMPQdEMEt3wITCFGfS4gw6eQO39NUaS4JqWYjNN6sejernldwyqGwz42H/rn7CL0xhbCql9upWF+2bm5X46UgSwZBYcLxW0BrOh+0lxkON+2qOGZFbtEcOUeOVmRSJdBuxczyGD5i6zusITJ00scqfNTCyRLm8JiHlW9SY43iyj3Lq0cDxYQ97fKX2F+0D/JfnWPu/2v+HaJWDpfpNG/Mo/SVzNAwE997DMY1ZD9jJsoYPr8UWypQQJUMldn3P+ERaswNTXnGbmCnwRGlj7IANnmGCc7koi6t root@csoaiclab01-85
http_proxy:
https_proxy:
no_proxy:
keystone_admin_password: password
onap_tenant_password: amsterdam
onap_artifacts_http_repo:
...
Onboarding a Sample VNF
- Navigate to the Akraino Sites page via the left navigation menu.
- Select a deployed edge site in the GUI table displayed. The VNF Onboard button becomes enabled.
- Click VNF Onboard This will open a Pop up dialog. Choose VNF as vCDN (Sample VNF) from the drop-down
- Verify all the default entries as applicable to your environment.
- Click Onboard to begin the sample VNF installation. This process may take few minutes to complete.
- The VNF Onboard status changes from ‘Not started’ to ‘In progress’ to ‘Complete’.
The Sample VNF creates an Apache Traffic Server cache instance and a Locust load generator client instance in the OpenStack environment for the selected site. By default, the Sample VNF will create a heat stack name ats-demo. The heat stack will contain two instances named ats-demo-client and ats-demo-server. The default configuration of the server instance is to cache the Big Buck Bunny videos from the internet server and then serve the video to the client from its ramdisk. The heat stack will output the client and server URLs. The client URL will display the Locust load generator dashboard. The server URL will allow you to play the video in a browser.
OpenStack stack output show ats-demo --all
...
Field
...
Value
...
{
"output_value": "http://192.168.48.223:8089/",
"output_key": "client_url",
"description": "URL for client"
}
...
{
"output_value": "192.168.48.223",
"output_key": "client_ip",
"description": "IP of the client"
}
...
{
"output_value": "http://192.168.48.226:8080/bbb_sunflower_1080p_30fps_normal.mp4",
"output_key": "server_url",
"description": "URL for server"
}
...
{
"output_value": "192.168.48.226",
"output_key": "server_ip",
"description": "IP of the server"
}
Info |
---|
VNF can also be on-boarded using ONAP. Refer the documentation. |
Appendix
Edge Site Configuration - Rover (Single-Node Cluster)
This configuration file is written as a series of shell key/value assignments.
Sample input file template with all required parameters are provided in the ‘Build or Deploy an Edge Node' section.
...
Key Name(s)
...
Notes
...
Example
...
SRV_NAME
...
SRV_NAME=aknode42
...
SRV_OOB_IP
SRV_OOB_USR
SRV_OOB_PWD
...
SRV_OOB_IP=192.168.41.42
SRV_OOB_USR=root
SRV_OOB_PWD=XXXXXXXX
...
SRV_MAC
...
SRV_MAC=3c:fd:fe:b8:02:90
...
SRV_OEM
...
SRV_OEM=Dell
...
SRV_IPXE_INF
SRV_BLD_INF
SRV_BOOT_DEVICE
...
SRV_IPXE_INF=net4
SRV_BLD_INF=enp94s0f0
SRV_BOOT_DEVICE=sdg
...
SRV_BLD_SCRIPT
...
ipxe script based on the OS version and target kernel. Valid values are script-hwe-16.04.4-amd64.ipxe
or script-16.04.4-amd64.ipxe
...
SRV_BLD_SCRIPT=script-hwe-16.04.4-amd64.ipxe
...
SRV_BIOS_TEMPLATE
SRV_BOOT_TEMPLATE
SRV_HTTP_BOOT_DEV
...
SRV_BIOS_TEMPLATE=dell_r740_g14_uefi_base.xml.template
SRV_BOOT_TEMPLATE=dell_r740_g14_uefi_httpboot.xml.template
SRV_HTTP_BOOT_DEV=NIC.Slot.7-1-1
...
Template for script to run on first boot to setup the server. Current options are:
firstboot.sh.template
firstboot-genesis.sh.template
firstboot-airship-iab.sh.template
...
SRV_FIRSTBOOT_TEMPLATE=firstboot-airship-iab.sh.template
...
SRV_VLAN
...
SRV_VLAN=41
...
SRV_MTU
SRV_IP
SRV_SUBNET
SRV_NETMASK
SRV_GATEWAY
SRV_DNS
SRV_DOMAIN
SRV_DNSSEARCH
SRV_NTP
...
SRV_MTU=9000
SRV_IP=192.168.2.42
SRV_SUBNET=192.168.2.0
SRV_NETMASK=255.255.255.0
SRV_GATEWAY=192.168.2.200
SRV_DNS=192.168.2.85
SRV_DOMAIN=lab.akraino.org
SRV_DNSSEARCH=lab.akraino.org
SRV_NTP=ntp.ubuntu.org
...
SRV_PWD
...
SRV_PWD=XXXXXXXX
...
SRV_BOND
SRV_SLAVE1
SRV_SLAVE2
...
SRV_BOND=bond0
SRV_SLAVE1=enp94s0f0
SRV_SLAVE2=enp94s0f1
...
Info |
---|
The Akraino seed code comes with default two sites: MTN1, MTN2 representing two lab sites in Middletown, NJ. This step of connecting to the database and creating edge_site records are only required if the user wishes to deploy on other sites. |
To deploy a Rover (Single-Node Cluster) Edge Node, perform the following steps:
- Check if the Akraino (Docker Containers) packages are stood up.
- Connect to PostgreSQL database providing the host IP (name).
Code Block | ||
---|---|---|
| ||
jdbc:postgresql://<IP-address-of-DB-host>:6432/postgres
user name = admin
password = abc123 |
Info |
---|
use ‘pgAdmin |||’ Postgres client tool or connect to Postgres DB using SQL interface |
- Execute the following SQL insert, bearing in mind these value substitutions:
...
Code Block | ||
---|---|---|
| ||
> insert into akraino.edge_site(edge_site_id, edge_site_name, crt_login_id, crt_dt, upd_login_id, upd_dt, region_id)
values( 1, 'Atlanta', user, now(), user, now(),1); |
ONAP Configuration
This configuration file is written as a YAML dictionary named parameters
.
This dictionary will be selectively inserted into the ONAP VM environment file, depending on overall configuration.
...
Key Name
...
Notes
...
Example
...
public_net_name: public
...
# Assume vlan50 is the VLAN created
# for the OpenStack Project (tenant)
public_physical_net_provider_name: vlan50
...
# Assume vlan50
provider_segmentation_id: 50
...
public_physical_net_type: vlan
...
public_subnet_name: public-subnet
...
public_subnet_cidr: 192.168.102.0/24
...
public_subnet_allocation_start: 192.168.102.100
...
public_subnet_allocation_end: 192.168.102.200
...
public_subnet_dns_nameserver: 8.8.8.8
...
public_subnet_gateway_ip: 192.168.102.1
...
flavor_name: x1.onap
...
onap_vm_public_key: PUBLIC_KEY
...
http_proxy: http://proxy.yourdomain.com:8888
...
https_proxy: https://proxy.yourdomain.com:8888
...
no_proxy: 127.0.0.1
...
keystone_admin_password: XXXXXXXX
...
onap_tenant_password: XXXXXXXX
...
| |
---
##############################################################################
# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. #
# #
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
# not use this file except in compliance with the License. #
# #
# You may obtain a copy of the License at #
# http://www.apache.org/licenses/LICENSE-2.0 #
# #
# Unless required by applicable law or agreed to in writing, software #
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT #
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
# See the License for the specific language governing permissions and #
# limitations under the License. #
##############################################################################
site_name: dellgen10
ipmi_admin:
username: root
password: calvin
networks:
bonded: yes
primary: bond0
slaves:
- name: enp94s0f0
- name: enp94s0f1
oob:
vlan: 40
interface:
cidr: 192.168.41.0/24
routes:
gateway: 192.168.41.1
ranges:
reserved:
start: 192.168.41.2
end: 192.168.41.12
static:
start: 192.168.41.13
end: 192.168.41.254
host:
vlan: 41
interface: bond0.41
cidr: 192.168.2.0/24
routes:
gateway: 192.168.2.200
ranges:
reserved:
start: 192.168.2.84
end: 192.168.2.86
static:
start: 192.168.2.40
end: 192.168.2.45
dns:
domain: lab.akraino.org
servers: '192.168.2.85 8.8.8.8 8.8.4.4'
storage:
vlan: 42
interface: bond0.42
cidr: 172.31.2.0/24
ranges:
reserved:
start: 172.31.2.1
end: 172.31.2.10
static:
start: 172.31.2.11
end: 172.31.2.254
pxe:
vlan: 43
interface: eno3
cidr: 172.30.2.0/24
gateway: 172.30.2.1
routes:
gateway: 172.30.2.40
ranges:
reserved:
start: 172.30.2.2
end: 172.30.2.10
static:
start: 172.30.2.11
end: 172.30.2.200
dhcp:
start: 172.30.2.201
end: 172.30.2.254
dns:
domain: lab.akraino.org
servers: '192.168.2.85 8.8.8.8 8.8.4.4'
ksn:
vlan: 44
interface: bond0.44
cidr: 172.29.1.0/24
local_asnumber: 65531
ranges:
static:
start: 172.29.1.5
end: 172.29.1.254
additional_cidrs:
- 172.29.1.128/29
ingress_cidr: 172.29.1.129/32
peers:
- ip: 172.29.1.1
scope: global
asnumber: 65001
vrrp_ip: 172.29.1.1 # keep peers ip address in case of only peer.
neutron:
vlan: 45
interface: bond0.45
cidr: 10.0.102.0/24
ranges:
reserved:
start: 10.0.102.1
end: 10.0.102.10
static:
start: 10.0.102.11
end: 10.0.102.254
dns:
upstream_servers:
- 192.168.2.85
- 8.8.8.8
- 8.8.8.8
upstream_servers_joined: '192.168.2.85,8.8.8.8'
ingress_domain: dellgen10.akraino.org
sriovnets:
- physical: sriovnet1
interface: enp135s0f0
vlan_start: 2001
vlan_end: 3000
whitelists:
- "address": "0000:87:02.0"
- "address": "0000:87:02.1"
- "address": "0000:87:03.2"
- "address": "0000:87:03.3"
- "address": "0000:87:03.4"
- "address": "0000:87:03.5"
- "address": "0000:87:03.6"
- "address": "0000:87:03.7"
- "address": "0000:87:04.0"
- "address": "0000:87:04.1"
- "address": "0000:87:04.2"
- "address": "0000:87:04.3"
- "address": "0000:87:02.2"
- "address": "0000:87:04.4"
- "address": "0000:87:04.5"
- "address": "0000:87:04.6"
- "address": "0000:87:04.7"
- "address": "0000:87:05.0"
- "address": "0000:87:05.1"
- "address": "0000:87:05.2"
- "address": "0000:87:05.3"
- "address": "0000:87:05.4"
- "address": "0000:87:05.5"
- "address": "0000:87:02.3"
- "address": "0000:87:05.6"
- "address": "0000:87:05.7"
- "address": "0000:87:02.4"
- "address": "0000:87:02.5"
- "address": "0000:87:02.6"
- "address": "0000:87:02.7"
- "address": "0000:87:03.0"
- "address": "0000:87:03.1"
- physical: sriovnet2
interface: enp135s0f1
vlan_start: 2001
vlan_end: 3000
whitelists:
- "address": "0000:87:0a.0"
- "address": "0000:87:0a.1"
- "address": "0000:87:0b.2"
- "address": "0000:87:0b.3"
- "address": "0000:87:0b.4"
- "address": "0000:87:0b.5"
- "address": "0000:87:0b.6"
- "address": "0000:87:0b.7"
- "address": "0000:87:0c.0"
- "address": "0000:87:0c.1"
- "address": "0000:87:0c.2"
- "address": "0000:87:0c.3"
- "address": "0000:87:0a.2"
- "address": "0000:87:0c.4"
- "address": "0000:87:0c.5"
- "address": "0000:87:0c.6"
- "address": "0000:87:0c.7"
- "address": "0000:87:0d.0"
- "address": "0000:87:0d.1"
- "address": "0000:87:0d.2"
- "address": "0000:87:0d.3"
- "address": "0000:87:0d.4"
- "address": "0000:87:0d.5"
- "address": "0000:87:0a.3"
- "address": "0000:87:0d.6"
- "address": "0000:87:0d.7"
- "address": "0000:87:0a.4"
- "address": "0000:87:0a.5"
- "address": "0000:87:0a.6"
- "address": "0000:87:0a.7"
- "address": "0000:87:0b.0"
- "address": "0000:87:0b.1"
storage:
osds:
- data: /dev/sda
journal: /var/lib/ceph/journal/journal-sda
- data: /dev/sdb
journal: /var/lib/ceph/journal/journal-sdb
- data: /dev/sdc
journal: /var/lib/ceph/journal/journal-sdc
- data: /dev/sdd
journal: /var/lib/ceph/journal/journal-sdd
- data: /dev/sde
journal: /var/lib/ceph/journal/journal-sde
- data: /dev/sdf
journal: /var/lib/ceph/journal/journal-sdf
osd_count: 6
total_osd_count: 18
genesis:
name: aknode40
oob: 192.168.41.40
host: 192.168.2.40
storage: 172.31.2.40
pxe: 172.30.2.40
ksn: 172.29.1.40
neutron: 10.0.102.40
masters:
- name : aknode41
oob: 192.168.41.41
host: 192.168.2.41
storage: 172.31.2.41
pxe: 172.30.2.41
ksn: 172.29.1.41
neutron: 10.0.102.41
- name : aknode42
oob: 192.168.41.42
host: 192.168.2.42
storage: 172.31.2.42
pxe: 172.30.2.42
ksn: 172.29.1.42
neutron: 10.0.102.42
#workers:
# - name : aknode43
# oob: 192.168.41.43
# host: 192.168.2.43
# storage: 172.31.2.43
# pxe: 172.30.2.43
# ksn: 172.29.1.43
# neutron: 10.0.102.43
# - name : aknode44
# oob: 192.168.41.44
# host: 192.168.2.44
# storage: 172.31.2.44
# pxe: 172.30.2.44
# ksn: 172.29.1.44
# neutron: 10.0.102.44
hardware:
vendor: DELL
generation: '10'
hw_version: '3'
bios_version: '2.8'
disks:
- name : sdg
labels:
bootdrive: 'true'
partitions:
- name: root
size: 20g
mountpoint: /
- name: boot
size: 1g
mountpoint: /boot
- name: var
size: 100g
mountpoint: /var
- name : sdh
partitions:
- name: ceph
size: 300g
mountpoint: /var/lib/ceph/journal
disks_compute:
- name : sdg
labels:
bootdrive: 'true'
partitions:
- name: root
size: 20g
mountpoint: /
- name: boot
size: 1g
mountpoint: /boot
- name: var
size: '>300g'
mountpoint: /var
- name : sdh
partitions:
- name: nova
size: '99%'
mountpoint: /var/lib/nova
genesis_ssh_public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/n4mNLAj3XKG2fcm+8eVe0NUlNH0g8DA8KJ53rSLKccm8gm4UgLmGOJyBfUloQZMuOpU6a+hexN4ECCliqI7+KUmgJgsvLkJ3OUMNTEVu9tDX5mdXeffsufaqFkAdmbJ/9PMPiPQ3/UqbbtyEcqoZAwUWf4ggAWSp00SGE1Okg+skPSbDzPVHb4810eXZT1yoIg29HAenJNNrsVxvnMT2kw2OYmLfxgEUh1Ev4c5LnUog4GXBDHQtHAwaIoTu9s/q8VIvGav62RJVFn3U1D0jkiwDLSIFn8ezORQ4YkSidwdSrtqsqa2TJ0E5w/n5h5IVGO9neY8YlXrgynLd4Y+7 root@pocnjrsv132"
kubernetes:
api_service_ip: 10.96.0.1
etcd_service_ip: 10.96.0.2
pod_cidr: 10.98.0.0/16
service_cidr: 10.96.0.0/15
regional_server:
ip: 135.16.101.85
...
|
Code Block | ||||
---|---|---|---|---|
| ||||
---
##############################################################################
# Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. #
# #
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
# not use this file except in compliance with the License. #
# #
# You may obtain a copy of the License at #
# http://www.apache.org/licenses/LICENSE-2.0 #
# #
# Unless required by applicable law or agreed to in writing, software #
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT #
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
# See the License for the specific language governing permissions and #
# limitations under the License. #
##############################################################################
site_name: hpgen10
ipmi_admin:
username: Administrator
password: Admin123
networks:
bonded: yes
primary: bond0
slaves:
- name: ens3f0
- name: ens3f1
oob:
vlan: 40
interface:
cidr: 192.168.41.0/24
routes:
gateway: 192.168.41.1
ranges:
reserved:
start: 192.168.41.2
end: 192.168.41.4
static:
start: 192.168.41.5
end: 192.168.41.254
host:
vlan: 41
interface: bond0.41
cidr: 192.168.2.0/24
subnet: 192.168.2.0
netmask: 255.255.255.0
routes:
gateway: 192.168.2.200
ranges:
reserved:
start: 192.168.2.84
end: 192.168.2.86
static:
start: 192.168.2.1
end: 192.168.2.83
dns:
domain: lab.akraino.org
servers: '192.168.2.85 8.8.8.8 8.8.4.4'
storage:
vlan: 42
interface: bond0.42
cidr: 172.31.1.0/24
ranges:
static:
start: 172.31.1.2
end: 172.31.1.254
pxe:
vlan:
interface: eno1
cidr: 172.30.1.0/24
gateway: 172.30.1.1
routes:
gateway: 172.30.1.30
ranges:
reserved:
start: 172.30.1.1
end: 172.30.1.10
static:
start: 172.30.1.11
end: 172.30.1.200
dhcp:
start: 172.30.1.201
end: 172.30.1.254
dns:
domain: lab.akraino.org
servers: '192.168.2.85 8.8.8.8 8.8.4.4'
inf: net4
ksn:
vlan: 44
interface: bond0.44
cidr: 172.29.1.0/24
local_asnumber: 65531
ranges:
static:
start: 172.29.1.5
end: 172.29.1.254
additional_cidrs:
- 172.29.1.136/29
ingress_cidr: 172.29.1.137/32
peers:
- ip: 172.29.1.1
scope: global
asnumber: 65001
vrrp_ip: 172.29.1.1 # keep peers ip address in case of only peer.
neutron:
vlan: 45
interface: bond0.45
cidr: 10.0.101.0/24
ranges:
static:
start: 10.0.101.2
end: 10.0.101.254
dns:
upstream_servers:
- 192.168.2.85
- 8.8.8.8
- 8.8.8.8
upstream_servers_joined: '192.168.2.85,8.8.8.8'
ingress_domain: hpgen10.akraino.org
sriovnets:
- physical: sriovnet1
interface: ens6f0
vlan_start: 2001
vlan_end: 3000
whitelists:
- "address": "0000:af:02.0"
- "address": "0000:af:02.1"
- "address": "0000:af:02.2"
- "address": "0000:af:02.3"
- "address": "0000:af:02.4"
- "address": "0000:af:02.5"
- "address": "0000:af:02.6"
- "address": "0000:af:02.7"
- "address": "0000:af:03.0"
- "address": "0000:af:03.1"
- "address": "0000:af:03.2"
- "address": "0000:af:03.3"
- "address": "0000:af:03.4"
- "address": "0000:af:03.5"
- "address": "0000:af:03.6"
- "address": "0000:af:03.7"
- "address": "0000:af:04.0"
- "address": "0000:af:04.1"
- "address": "0000:af:04.2"
- "address": "0000:af:04.3"
- "address": "0000:af:04.4"
- "address": "0000:af:04.5"
- "address": "0000:af:04.6"
- "address": "0000:af:04.7"
- "address": "0000:af:05.0"
- "address": "0000:af:05.1"
- "address": "0000:af:05.2"
- "address": "0000:af:05.3"
- "address": "0000:af:05.4"
- "address": "0000:af:05.5"
- "address": "0000:af:05.6"
- "address": "0000:af:05.7"
- physical: sriovnet2
interface: ens6f1
vlan_start: 2001
vlan_end: 3000
whitelists:
- "address": "0000:af:0a.0"
- "address": "0000:af:0a.1"
- "address": "0000:af:0a.2"
- "address": "0000:af:0a.3"
- "address": "0000:af:0a.4"
- "address": "0000:af:0a.5"
- "address": "0000:af:0a.6"
- "address": "0000:af:0a.7"
- "address": "0000:af:0b.0"
- "address": "0000:af:0b.1"
- "address": "0000:af:0b.2"
- "address": "0000:af:0b.3"
- "address": "0000:af:0b.4"
- "address": "0000:af:0b.5"
- "address": "0000:af:0b.6"
- "address": "0000:af:0b.7"
- "address": "0000:af:0c.0"
- "address": "0000:af:0c.1"
- "address": "0000:af:0c.2"
- "address": "0000:af:0c.3"
- "address": "0000:af:0c.4"
- "address": "0000:af:0c.5"
- "address": "0000:af:0c.6"
- "address": "0000:af:0c.7"
- "address": "0000:af:0d.0"
- "address": "0000:af:0d.1"
- "address": "0000:af:0d.2"
- "address": "0000:af:0d.3"
- "address": "0000:af:0d.4"
- "address": "0000:af:0d.5"
- "address": "0000:af:0d.6"
- "address": "0000:af:0d.7"
storage:
osds:
- data: /dev/sdb
journal: /var/lib/ceph/journal/journal-sdb
- data: /dev/sdc
journal: /var/lib/ceph/journal/journal-sdc
- data: /dev/sdd
journal: /var/lib/ceph/journal/journal-sdd
- data: /dev/sde
journal: /var/lib/ceph/journal/journal-sde
- data: /dev/sdf
journal: /var/lib/ceph/journal/journal-sdf
- data: /dev/sdg
journal: /var/lib/ceph/journal/journal-sdg
- data: /dev/sdh
journal: /var/lib/ceph/journal/journal-sdh
- data: /dev/sdi
journal: /var/lib/ceph/journal/journal-sdi
osd_count: 8
total_osd_count: 24
genesis:
name: aknode30
oob: 192.168.41.130
host: 192.168.2.30
storage: 172.31.1.30
pxe: 172.30.1.30
ksn: 172.29.1.30
neutron: 10.0.101.30
root_password: akraino,d
oem: HPE
mac_address: 3c:fd:fe:aa:90:b0
bios_template: hpe_dl380_g10_uefi_base.json.template
boot_template: hpe_dl380_g10_uefi_httpboot.json.template
http_boot_device: NIC.Slot.3-1-1
masters:
- name : aknode31
oob: 192.168.41.131
host: 192.168.2.31
storage: 172.31.1.31
pxe: 172.30.1.31
ksn: 172.29.1.31
neutron: 10.0.101.31
oob_user: Administrator
oob_password: Admin123
- name : aknode32
oob: 192.168.41.132
host: 192.168.2.32
storage: 172.31.1.32
pxe: 172.30.1.32
ksn: 172.29.1.32
neutron: 10.0.101.32
oob_user: Administrator
oob_password: Admin123
workers:
- name : aknode33
oob: 192.168.41.133
host: 192.168.2.33
storage: 172.31.1.33
pxe: 172.30.1.33
ksn: 172.29.1.33
neutron: 10.0.101.33
oob_user: Administrator
oob_password: Admin123
# - name : aknode34
# oob: 192.168.41.134
# host: 192.168.2.34
# storage: 172.31.1.34
# pxe: 172.30.1.34
# ksn: 172.29.1.34
# neutron: 10.0.101.34
hardware:
vendor: HP
generation: '10'
hw_version: '3'
bios_version: '2.8'
disks:
- name : sdj
labels:
bootdrive: 'true'
partitions:
- name: root
size: 20g
mountpoint: /
- name: boot
size: 1g
mountpoint: /boot
- name: var
size: '>300g'
mountpoint: /var
- name : sdk
partitions:
- name: cephj
size: 300g
mountpoint: /var/lib/ceph/journal
disks_compute:
- name : sdj
labels:
bootdrive: 'true'
partitions:
- name: root
size: 20g
mountpoint: /
- name: boot
size: 1g
mountpoint: /boot
- name: var
size: '>300g'
mountpoint: /var
- name : sdk
partitions:
- name: nova
size: '99%'
mountpoint: /var/lib/nova
genesis_ssh_public_key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/n4mNLAj3XKG2fcm+8eVe0NUlNH0g8DA8KJ53rSLKccm8gm4UgLmGOJyBfUloQZMuOpU6a+hexN4ECCliqI7+KUmgJgsvLkJ3OUMNTEVu9tDX5mdXeffsufaqFkAdmbJ/9PMPiPQ3/UqbbtyEcqoZAwUWf4ggAWSp00SGE1Okg+skPSbDzPVHb4810eXZT1yoIg29HAenJNNrsVxvnMT2kw2OYmLfxgEUh1Ev4c5LnUog4GXBDHQtHAwaIoTu9s/q8VIvGav62RJVFn3U1D0jkiwDLSIFn8ezORQ4YkSidwdSrtqsqa2TJ0E5w/n5h5IVGO9neY8YlXrgynLd4Y+7 root@pocnjrsv132"
kubernetes:
api_service_ip: 10.96.0.1
etcd_service_ip: 10.96.0.2
pod_cidr: 10.99.0.0/16
service_cidr: 10.96.0.0/14
regional_server:
ip: 135.16.101.85
... |
5. Click on Submit. This will upload the input file and the site details into the portal.
6. User will see the file uploaded successfully message in the sites column then Build button is enabled.
a. Click on Build to begin the build process.
b. User can click on Refresh (link) to update the status of the build on the portal.
c. The build status changes from ‘Not started’ to ‘In progress’ to ‘Completed’.
d. The build process will generate all the required yaml files with site details. User can view the generated yaml files by clicking ‘view yaml build file’ provided in Build status column.
7. User will see the ‘Completed’ status in build status column then Deploy button is enabled.
a. Click on Deploy to begin the deploy process.
b. User can click on Refresh (link) to update the status of the build on the portal.
Note: In portal when the overall status of the Deploy is success, login to each node and check deploy site logs under var/log/deploy_site_yyyymmddhhmm.log file by using the command tail -f /var/log/deploy_site_yyyymmddhhmm.log file
Check the deployment process logs under “tail –f /var/log/scriptexecutor.log” or “/var/log/yaml_builds/” on regional_controller node.
Once the deploy status got “completed” on the portal, then
This is to check the status of deploy_site.
Following is the snippet from root@aknode44:/var/log# vi scriptexecutor.log
2018-10-02 17:28:58.464 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : + deploy_site
2018-10-02 17:28:58.464 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : + sudo docker run -e OS_AUTH_URL=http://keystone-api.ucp.svc.cluster.local:80/v3 -e OS_PASSWORD=86db58e20de93ef55477 -e OS_PROJECT_DOMAIN_NAME=default -e OS_PROJECT_NAME=service -e OS_USERNAME=shipyard -e OS_USER_DOMAIN_NAME=default -e OS_IDENTITY_API_VERSION=3 --rm --net=host quay.io/airshipit/shipyard:165c845e3e7459d2a4892ed4ca910b00675e7561 create action deploy_site
2018-10-02 17:29:02.273 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : Name Action Lifecycle Execution Time Step Succ/Fail/Oth
2018-10-02 17:29:02.274 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : deploy_site action/01CRTX8CTJ8VHMSNVC2NHGWKCY None 2018-10-02T17:29:53 0/0/0
2018-10-02 17:29:02.546 DEBUG 12751 --- [SimpleAsyncTaskExecutor-2] a.b.s.i.RemoteScriptExecutionServiceImpl : Script exit code :0
Based on the above snippet you can frame a command like following(just concatenate highlighted partes and add describe in the middle) and run it on aknode40 to see the status deploy_site,
root@aknode40:~# docker run -e OS_AUTH_URL=http://keystone-api.ucp.svc.cluster.local:80/v3 -e OS_PASSWORD=86db58e20de93ef55477 -e OS_PROJECT_DOMAIN_NAME=default -e OS_PROJECT_NAME=service -e OS_USERNAME=shipyard -e OS_USER_DOMAIN_NAME=default -e OS_IDENTITY_API_VERSION=3 --rm --net=host quay.io/airshipit/shipyard:165c845e3e7459d2a4892ed4ca910b00675e7561 describe action/01CRTX8CTJ8VHMSNVC2NHGWKCY
Appendix
Edge Site Configuration - Unicycle (Multi-Node Cluster)
This configuration file is written as a series of shell key/value assignments.
Sample input file template with all required parameters are provided in the ‘Build or Deploy an Edge Node' section.
Key Name(s) | Notes | Example |
---|---|---|
| Server hostname | SRV_NAME=aknode42 |
| Out-of-band interface information for the server (iDRAC, ilo, etc.) | SRV_OOB_IP=192.168.41.42 |
| MAC address of the server used during the build | SRV_MAC=3c:fd:fe:b8:02:90 |
| Server OEM: Dell or HPE (case sensitive) | SRV_OEM=Dell |
| Network interface used during the build when ipxe.efi and the OS are booted | SRV_IPXE_INF=net4 |
| ipxe script based on the OS version and target kernel. Valid values are | SRV_BLD_SCRIPT=script-hwe-16.04.4-amd64.ipxe |
| XML template used to set BIOS and RAID configuration. | SRV_BIOS_TEMPLATE=dell_r740_g14_uefi_base.xml.template |
SRV_FIRSTBOOT_TEMPLATE | Template for script to run on first boot to setup the server. Current options are:
| SRV_FIRSTBOOT_TEMPLATE=firstboot-airship-iab.sh.template |
| VLAN to use during the build and final network configuration | SRV_VLAN=41 |
| Basic network information for DHCP configuration and final server network settings | SRV_MTU=9000 |
| Root password for the server being built | SRV_PWD=XXXXXXXX |
| Network bond information | SRV_BOND=bond0 |
Create New Edge Site locations
Info |
---|
The Akraino seed code comes with default two sites: MTN1, MTN2 representing two lab sites in Middletown, NJ. This step of connecting to the database and creating edge_site records are only required if the user wishes to deploy on other sites. |
To deploy a Unicycle (Multi-Node Cluster) Edge Node, perform the following steps:
- Check if the Akraino (Docker Containers) packages are stood up.
- Connect to PostgreSQL database providing the host IP (name).
Code Block | ||
---|---|---|
| ||
jdbc:postgresql://<IP-address-of-DB-host>:6432/postgres
user name = admin
password = abc123 |
Info |
---|
use ‘pgAdmin |||’ Postgres client tool or connect to Postgres DB using SQL interface |
- Execute the following SQL insert, bearing in mind these value substitutions:
edge_site_id
: Any unique increment value. This is usually 1 but does not have to be.edge_site_name
: Human-readable Edge Node name.region_id
: Edge Node region number. Useselect * from akraino.Region;
to determine the appropriate value. Observe the region number associations returned from the query: Use 1 for US East, 2 for US West, and so on.
Code Block | ||
---|---|---|
| ||
> insert into akraino.edge_site(edge_site_id, edge_site_name, crt_login_id, crt_dt, upd_login_id, upd_dt, region_id)
values( 1, 'Atlanta', user, now(), user, now(),1); |