...
This document describes steps required to deploy a sample environment for the Public Cloud Edge Interface (PCEI) Blueprint.
License
TBD
Deployment Architecture
The deployment architecture is shown below. All Addressing and naming shown are for example purposes only.
...
Requirement | Value |
---|
CPU | 18 Core / 36 vCPU |
RAM | 128 GB |
DISK | 500 GB |
NETWORK | 1Gbps 1 Gbps NIC Port |
Network Requirements
...
- Install CentOS on Host Server.
- Prepare Host Server for EMCO Deployment.
- Deploy EMCO.
- Deploy Edge Clusters.
Deployment Guide
Install CentOS on Host Server
...
Code Block |
---|
|
sudo -i
visudo
# Uncomment the line below
%wheel ALL=(ALL) NOPASSWD: ALL |
Step 2. Add sudo user to wheel group
...
Code Block |
---|
|
usermod –aG wheel onaplab |
...
Code Block |
---|
|
# Login as super user
sudo -i
# Check for the following parameter
cat /sys/module/kvm_intel/parameters/nested
N
# If it is Y, there is nothing else to be done. It is already enabled!
# If it is N, do the following:
# Edit /etc/default/grub file, and include kvm-intel.nested=1
GRUB_CMDLINE_LINUX parameter
GRUB_CMDLINE_LINUX="crashkernel=auto
console=ttyS0,38400n8,kvm-intel.nested=1"
# Rebuild your GRUB configuration
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# Enable nested KVM capabilities in /etc/modprobe.d/kvm.conf
# By uncommenting the below line
options kvm_intel nested=1
### Reboot the server
reboot
# Now, we should have the nested KVM capabilities enabled
cat /sys/module/kvm_intel/parameters/nested
Y |
Step 4. Install VNC Server (Optional)
Follow instructions at:
https://www.tecmint.com/install-and-configure-vnc-server-in-centos-7/
...
Code Block |
---|
|
cat <<\EOF >> netdefault.xml
<network>
<name>default</name>
<bridge name="vmbr0"/>
<forward mode='route' dev='eno24'/>
# <forward/>
<ip address="10.121.7.129" netmask="255.255.255.224">
<dhcp>
<range start="10.121.7.144" end="10.121.7.158"/>
</dhcp>
</ip>
</network>
EOF
sudo virsh net-list
sudo virsh net-destroy default
sudo virsh net-undefine default
sudo virsh net-define netdefault.xml
sudo virsh net-start default
sudo virsh net-autostart default |
...
Code Block |
---|
|
# Run commands below on the Host Server
ssh-keygen
cd ~/.ssh
chmod 600 id_rsa
chmod 600 id_rsa.pub
chmod 700 config
chmod 600 known_hosts
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
echo "# Increase the server timeout value" >> ~/.ssh/config
echo "ServerAliveInterval 120" >> ~/.ssh/config |
Step 2. Download software and install EMCO
...
Code Block |
---|
|
#### On the Host Server
sudo yum install -y git deltarpm
mkdir -p amcop_deploy
cd amcop_deploy
## Download the installation package zip file from
wget --load-cookies /tmp/cookies.txt "https://drivedocs.google.com/file/d/1aFtChA454uAMuoEyV4m-jWiRDrZGyYgx/view?usp=sharinguc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1NE6dfbt3l6u2D6MRocdL04_xMjPn06HZ' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1NE6dfbt3l6u2D6MRocdL04_xMjPn06HZ" -O amcop_install_v1.0.zip && rm -rf /tmp/cookies.txt
unzip amcop_install_v1.0.zip
sudo chown -R onaplab:onaplab ~/amcop_deploy/
cd ~/amcop_deploy/aarna-stream/util-scripts
./prep_baremetal_centos.sh
####### Install EMCO/AMCOP
# Edit inventory.ini file. Use IP address of Host Server and the username.
cd ~/amcop_deploy/aarna-stream/anod_lite/ansible/deployment
vi inventory.ini
[deployment_host]
10.121.1.12 ansible_user=onaplab
nohup ansible-playbook ./main.yml -i inventory.ini -e deployment_env=on-prem -e jump_host_user=onaplab --private-key=/home/onaplab/.ssh/id_rsa -e vm_user=onaplab & |
...
Code Block |
---|
|
# On the Host Server
cd /home/onaplab/amcop_deploy/aarna-stream/util-scripts
# Add "--cpu host" option to the end of the below line
vi create_qem_vm.sh
virt-install --connect qemu:///system --name $vm_name --ram $(($mem << 10)) --vcpus=$vCPU --os-type linux --os-variant $os_variant --disk path=/var/lib/libvirt/images/$vm_name/"$vm_name".qcow2,format=qcow2 --disk /var/lib/libvirt/images/$vm_name/$vm_name-cidata.iso,device=cdrom --import --network network=default --noautoconsole —cpu—-cpu host
# Save the file |
Step 2. Deploy two Edge Cluster VMs.
...
Code Block |
---|
|
# Find VM's IP addresses. On the Host Server run:
[onaplab@os12 ~]$ sudo virsh list --all
Id Name State
----------------------------------------------------
6 amcop-vm-01 running
9 edge_k8s-1 running
10 edge_k8s-2 running
[onaplab@os12 ~]$ sudo virsh domifaddr edge_k8s-1
Name MAC address Protocol Address
-------------------------------------------------------------------------------
vnet1 52:54:00:19:96:72 ipv4 10.121.7.152/27
[onaplab@os12 ~]$
[onaplab@os12 ~]$ sudo virsh domifaddr edge_k8s-2
Name MAC address Protocol Address
-------------------------------------------------------------------------------
vnet2 52:54:00:c0:47:8b ipv4 10.121.7.146/27
# ssh to each VM from the Host Server:
ssh -i ~/.ssh/id_rsa.pub onaplab@10.121.7.152
ssh -i ~/.ssh/id_rsa.pubssh onaplab@10.121.7.146
# Perform the following tasks in each VM:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install -y python-pip
git clone https://git.onap.org/multicloud/k8s/
# Run script to setup KUD clusters
nohup k8s/kud/hosting_providers/baremetal/aio.sh %
|
...
Code Block |
---|
|
### Cleanup
sudo virsh destroy edge_k8s-1
sudo virsh undefine edge_k8s-1
sudo virsh pool-destroy edge_k8s-1
sudo virsh pool-undefine edge_k8s-1
sudo rm /var/lib/libvirt/images/edge_k8s-1/edge_k8s-1-cidata.iso
sudo rm /var/lib/libvirt/images/edge_k8s-1/edge_k8s-1.qcow2
sudo virsh destroy edge_k8s-2
sudo virsh undefine edge_k8s-2
sudo virsh pool-destroy edge_k8s-2
sudo virsh pool-undefine edge_k8s-2
sudo rm /var/lib/libvirt/images/edge_k8s-2/edge_k8s-2-cidata.iso
sudo rm /var/lib/libvirt/images/edge_k8s-2/edge_k8s-2/edge_k8s-2.qcow22.qcow2 |
Modify sshd_config on VMs
To ensure that user onaplab can successfully ssh into EMCO and edge cluster VMs, add user onaplab to the sshd_config file.
Code Block |
---|
|
## ssh to each VM:
ssh onaplab@10.121.7.152
sudo -i
cd /etc/ssh
vi sshd_config
AllowUsers ubuntu onaplab
## Save the changes and exit the file |
Deployment Verification
EMCO Deployment Verification
...
Code Block |
---|
|
# Determine IP address of EMCO VM:
[onaplab@os12 ~]$ sudo virsh list --all
Id Name State
----------------------------------------------------
6 amcop-vm-01 running
9 edge_k8s-1 running
10 edge_k8s-2 running
[onaplab@os12 ~]$ sudo domifaddr amcop-vm-01
sudo: domifaddr: command not found
[onaplab@os12 ~]$ sudo virsh domifaddr amcop-vm-01
Name MAC address Protocol Address
-------------------------------------------------------------------------------
vnet0 52:54:00:1a:8e:8b ipv4 10.121.7.145/27
# ssh to EMCO VM. You should be able to ssh without specifying the key:
[onaplab@os12 ~]$ ssh onaplab@10.121.7.145
# Verify K8S pods:
onaplab@emco:~$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-6f954885fb-bb2mr 1/1 Running 0 28d
kube-system calico-node-ldcpv 1/1 Running 0 28d
kube-system coredns-6b968665c4-6558h 1/1 Running 0 28d
kube-system coredns-6b968665c4-rq6bf 0/1 Pending 0 28d
kube-system dns-autoscaler-5fc5fdbf6-njch7 1/1 Running 0 28d
kube-system kube-apiserver-node1 1/1 Running 0 28d
kube-system kube-controller-manager-node1 1/1 Running 0 28d
kube-system kube-proxy-gg95d 1/1 Running 0 28d
kube-system kube-scheduler-node1 1/1 Running 0 28d
kube-system kubernetes-dashboard-6c7466966c-cjpxm 1/1 Running 0 28d
kube-system nodelocaldns-7pxcs 1/1 Running 0 28d
kube-system tiller-deploy-8756df4d9-zq52m 1/1 Running 0 28d
onap dev-cassandra-0 1/1 Running 0 28d
onap dev-cassandra-1 1/1 Running 0 28d
onap dev-cassandra-2 1/1 Running 0 28d
onap dev-cds-blueprints-processor-6d697cc4d6-wzlfj 0/1 Init:1/3 0 28d
onap dev-cds-db-0 1/1 Running 0 28d
onap dev-cds-py-executor-7dcdc5f7f6-tpfmg 1/1 Running 0 28d
onap dev-cds-sdc-listener-f99d4588d-nt2tk 0/1 Init:0/1 4021 28d
onap dev-cds-ui-7768bb4b-cfbzd 1/1 Running 0 28d
onap dev-mariadb-galera-0 1/1 Running 0 28d
onap dev-mariadb-galera-1 1/1 Running 0 28d
onap dev-mariadb-galera-2 1/1 Running 0 28d
onap4k8s clm-668c45d96d-99gpb 1/1 Running 0 28d
onap4k8s emcoui-57846bd5df-c774f 1/1 Running 0 28d
onap4k8s etcd-768d5b6cc-ptmmr 1/1 Running 0 28d
onap4k8s middleend-6d67c9bf54-tvs7s 1/1 Running 0 28d
onap4k8s mongo-7988cb488b-kf29q 1/1 Running 0 28d
onap4k8s ncm-9f4b85787-nqnlm 1/1 Running 0 28d
onap4k8s orchestrator-5fd4845f8f-qsxlf 1/1 Running 0 28d
onap4k8s ovnaction-f794f65b6-w85ms 1/1 Running 0 28d
onap4k8s rsync-7d9f5fbd9b-r72sp 1/1 Running 0 28d
# Verify K8S services:
onaplab@emco:~$ kubectl get svc --all-namespaces
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes ClusterIP 10.233.0.1 <none> 443/TCP 28d
kube-system coredns ClusterIP 10.233.0.3 <none> 53/UDP,53/TCP,9153/TCP 28d
kube-system kubernetes-dashboard ClusterIP 10.233.35.188 <none> 443/TCP 28d
kube-system tiller-deploy ClusterIP 10.233.33.249 <none> 44134/TCP 28d
onap cassandra ClusterIP None <none> 7000/TCP,7001/TCP,7199/TCP,9042/TCP,9160/TCP,61621/TCP 28d
onap cds-blueprints-processor-cluster ClusterIP 10.233.4.219 <none> 5701/TCP 28d
onap cds-blueprints-processor-grpc ClusterIP 10.233.34.1 <none> 9111/TCP 28d
onap cds-blueprints-processor-http ClusterIP 10.233.31.74 <none> 8080/TCP 28d
onap cds-db ClusterIP None <none> 3306/TCP 28d
onap cds-py-executor ClusterIP 10.233.43.240 <none> 50052/TCP,50053/TCP 28d
onap cds-sdc-listener ClusterIP 10.233.2.48 <none> 8080/TCP 28d
onap cds-ui NodePort 10.233.55.19 <none> 3000:30497/TCP 28d
onap mariadb-galera ClusterIP None <none> 3306/TCP 28d
onap4k8s clm NodePort 10.233.59.50 <none> 9061:31856/TCP 28d
onap4k8s emcoui NodePort 10.233.2.5 <none> 9080:30480/TCP 28d
onap4k8s etcd ClusterIP 10.233.54.80 <none> 2379/TCP,2380/TCP 28d
onap4k8s middleend NodePort 10.233.11.225 <none> 9891:31289/TCP 28d
onap4k8s mongo ClusterIP 10.233.19.133 <none> 27017/TCP 28d
onap4k8s ncm NodePort 10.233.16.20 <none> 9031:32737/TCP 28d
onap4k8s orchestrator NodePort 10.233.23.25 <none> 9015:31298/TCP 28d
onap4k8s ovnaction NodePort 10.233.37.45 <none> 9053:32514/TCP,9051:31181/TCP 28d
onap4k8s rsync NodePort 10.233.60.47 <none> 9041:30555/TCP 28d
|
...
Code Block |
---|
|
sudo virsh destroy amcop-vm-01
sudo virsh undefine amcop-vm-01
sudo virsh pool-destroy amcop-vm-01
sudo virsh pool-undefine amcop-vm-01
sudo rm /var/lib/libvirt/images/amcop-vm-01/amcop-vm-01-cidata.iso
sudo rm /var/lib/libvirt/images/amcop-vm-01/amcop-vm-01.qcow2
sudo virsh destroy edge_k8s-1
sudo virsh undefine edge_k8s-1
sudo virsh pool-destroy edge_k8s-1
sudo virsh pool-undefine edge_k8s-1
sudo rm /var/lib/libvirt/images/edge_k8s-1/edge_k8s-1-cidata.iso
sudo rm /var/lib/libvirt/images/edge_k8s-1/edge_k8s-1.qcow2
sudo virsh destroy edge_k8s-2
sudo virsh undefine edge_k8s-2
sudo virsh pool-destroy edge_k8s-2
sudo virsh pool-undefine edge_k8s-2
sudo rm /var/lib/libvirt/images/edge_k8s-2/edge_k8s-2-cidata.iso
sudo rm /var/lib/libvirt/images/edge_k8s-2/edge_k8s-2.qcow2
sudo rm -rf ~/amcop_deploy
sudo rm -rf ~/aarna_stream
|
License
References
AMCOP Quickstart Guide (Bare Metal)—Use this to deploy AMCOP on a bare metal server
AMCOP QuickStart Guide (Cloud)—Use this to deploy AMCOP on GCP or Azure - EMCO Install Guide by Aarna Networks
AMCOP User Guide - EMCO Config Guide by Aarna Networks