diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/README.md b/Hackfest_Demos/OSM-MR13/Setup Scripts/README.md index 45d124ba8fb13598b85934c24c6eb1382fc64228..80e2b8ece22238c6b0ca13abcdac4da36c7a64cc 100644 --- a/Hackfest_Demos/OSM-MR13/Setup Scripts/README.md +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/README.md @@ -14,20 +14,13 @@ FLAVOR: the flavour of the new VM to launch. Must have at least 4 CPUs, 8 GB RA PROJECT: The project ID in which to launch the new VM SUBNET: the first three octets of the subnet to use. IP addresses will be allocated from this subnet, starting with .101 - .199 -### Creating ports -This script will create the ports in Openstack on the subnet specified -``` -./create-osm-vm-ports.sh -``` - -### Launching VM -This script will launch all the OSM VMs in a loop +### Creating Openstack Tenants +This script will create users and projects in Openstack for hackfest-1, -2, -3, etc. These projects are for deploying workloads to, OSM itself will be installed under the admin tenant. It also creates SGi, S1, Private and Management networks, and launches OSM, VyOS and Microk8s VMs in the tenant. ``` -./create-osm-vm-servers.sh +./run-create-openstack-user-and-project.sh ``` - ### Initial Configuration This script updates apt, upgrades the system to the latest 20.04 and installs remote desktop software @@ -35,6 +28,14 @@ This script updates apt, upgrades the system to the latest 20.04 and installs re ./run-vm-setup.sh ``` +### Install Microk8s + +This script will configure the Microk8s VM launched by the create-openstack-user-and-project script. +``` +./run-microk8s-setup.sh +``` + + ### Install OSM This script downloads the installer and runs it. It also sets the OSM admin password to `hackfest`. @@ -47,3 +48,14 @@ This script downloads the installer and runs it. It also sets the OSM admin pas ``` ./run-osm-vim-k8scluster-add.sh ``` + +## Full Flow + +``` +./run-create-openstack-user-and-project.sh 1 1 +./run-vm-setup.sh 1 1 +./run-microk8s-setup.sh 1 1 +./run-install-osm.sh 1 1 +./run-osm-vim-k8scluster-add.sh 1 1 +``` + diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/common-vars b/Hackfest_Demos/OSM-MR13/Setup Scripts/common-vars index 73c9c8f305b1fb10ecb1f65fb892be5ab70407d5..1d088dac0d18a66b1c134c8c8bbee07f1f9cc3d4 100644 --- a/Hackfest_Demos/OSM-MR13/Setup Scripts/common-vars +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/common-vars @@ -1,3 +1,7 @@ +if [ ! -z ${DEBUG} ]; then + set -x +fi + START=1 MAX=1 @@ -5,13 +9,19 @@ if [ ! -z $2 ] ; then START=$1 MAX=$2 elif [ ! -z $1 ] ; then + START=$1 MAX=$1 fi # ETSI VIM ADMIN_DOMAIN=default, Partner Cloud=admin_domain ADMIN_DOMAIN=default APT_PROXY=http://172.21.1.1:3142 -FLAVOR=m1.xlarge -KEY_NAME=mbeierl +FLAVOR=osm.sanity +KEY_NAME=hackfest NETWORK=osm-ext SUBNET=172.21.248 + +MANAGEMENT_SUBNET=10.0.0 +SGi_SUBNET=192.168.2 +S1_SUBNET=192.168.0 +PRIVATE_SUBNET=192.168.239 \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/create-openstack-user-and-project.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/create-openstack-user-and-project.sh index 08b96359c3f7c481eca660d17de784336a89a22d..db0c345450dd5f8eaa48d172e1dc09cb86090a15 100755 --- a/Hackfest_Demos/OSM-MR13/Setup Scripts/create-openstack-user-and-project.sh +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/create-openstack-user-and-project.sh @@ -1,42 +1,103 @@ #!/bin/bash +echo $0 started at $(date) . ./common-vars . ./admin-credentials.rc -for PARTICIPANT in `seq ${START} ${MAX}` ; do - - OPENSTACK_USER=hackfest-${PARTICIPANT} - PROJECT=hackfest-${PARTICIPANT} - PASSWORD=hackfest - - echo "Creating OpenStack project: $PROJECT" - openstack project create --domain ${ADMIN_DOMAIN} $PROJECT - PROJECT_ID=`openstack project list | grep $PROJECT | awk '{print $2}'` - openstack quota set --cores 64 --ram 131072 $PROJECT_ID - - echo "Creating OpenStack User" - openstack user create --domain ${ADMIN_DOMAIN} --password $PASSWORD $OPENSTACK_USER - openstack role add --user $OPENSTACK_USER --project $PROJECT member - - echo "Creating OpenStack Network RBAC policy access_as_external, for network $NETWORK and project $PROJECT" - openstack network rbac create \ - --target-project $PROJECT \ - --type network \ - --action access_as_external \ - $NETWORK - - echo "Creating OpenStack Network RBAC policy access_as_shared, for network $NETWORK and project $PROJECT" - openstack network rbac create \ - --target-project $PROJECT \ - --type network \ - --action access_as_shared \ - $NETWORK - - echo "Adding security groups" - for i in $(openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID security group list | awk '/default/{ print $2 }'); do - openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID security group rule create $i --protocol icmp --remote-ip 0.0.0.0/0 - openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID security group rule create $i --protocol udp --remote-ip 0.0.0.0/0 - openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID security group rule create $i --protocol tcp --remote-ip 0.0.0.0/0 - done - -done \ No newline at end of file +PARTICIPANT=${1} + +OPENSTACK_USER=hackfest-${PARTICIPANT} +PROJECT=hackfest-${PARTICIPANT} +PASSWORD=hackfest + +echo "Creating OpenStack project: $PROJECT" +openstack project create --domain ${ADMIN_DOMAIN} $PROJECT +PROJECT_ID=`openstack project list | grep "${PROJECT} " | awk '{print $2}'` +openstack quota set --cores 64 --ram 131072 --instances 12 $PROJECT_ID & + +echo "Creating OpenStack User" +openstack user create --domain ${ADMIN_DOMAIN} --password $PASSWORD $OPENSTACK_USER +openstack role add --user $OPENSTACK_USER --project $PROJECT member & + +echo "Creating OpenStack Network RBAC policy access_as_external, for network $NETWORK and project $PROJECT" +openstack network rbac create \ + --target-project $PROJECT \ + --type network \ + --action access_as_external \ + $NETWORK & + +echo "Creating OpenStack Network RBAC policy access_as_shared, for network $NETWORK and project $PROJECT" +openstack network rbac create \ + --target-project $PROJECT \ + --type network \ + --action access_as_shared \ + $NETWORK & +wait + +echo "Adding security groups" +for i in $(openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID security group list | awk '/default/{ print $2 }'); do + openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID security group rule create $i --protocol icmp --remote-ip 0.0.0.0/0 & + openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID security group rule create $i --protocol udp --remote-ip 0.0.0.0/0 & + openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID security group rule create $i --protocol tcp --remote-ip 0.0.0.0/0 & +done +wait + +echo "Creating networks" +NETWORK=management +echo "Creating ${NETWORK} network" +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID network create ${NETWORK} --enable --no-share +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID subnet create ${NETWORK}-subnet --network=${NETWORK} --subnet-range=${MANAGEMENT_SUBNET}.0/24 +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router create ${NETWORK}-router +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router add subnet ${NETWORK}-router ${NETWORK}-subnet +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router set --external-gateway osm-ext ${NETWORK}-router + +NETWORK=SGi +echo "Creating ${NETWORK} network" +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID network create ${NETWORK} --enable --no-share +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID subnet create ${NETWORK}-subnet --network=${NETWORK} --subnet-range=${SGi_SUBNET}.0/24 +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router create ${NETWORK}-router +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router add subnet ${NETWORK}-router ${NETWORK}-subnet +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router set --external-gateway osm-ext ${NETWORK}-router + +NETWORK=S1 +echo "Creating ${NETWORK} network" +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID network create ${NETWORK} --enable --no-share +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID subnet create ${NETWORK}-subnet --network=${NETWORK} --subnet-range=${S1_SUBNET}.0/24 +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router create ${NETWORK}-router +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router add subnet ${NETWORK}-router ${NETWORK}-subnet +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router set --external-gateway osm-ext ${NETWORK}-router + +echo "Creating Private network" +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID network create private --enable --no-share +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID subnet create private-subnet --network=private --subnet-range=${PRIVATE_SUBNET}.0/24 + +echo "Creating ports" +# This port gets created as the admin +IP=`expr ${PARTICIPANT} + 100` +openstack port create --fixed-ip ip-address=${SUBNET}.${IP} --project=${PROJECT} --enable --network osm-ext hackfest-osm-${PARTICIPANT} & +# Create as the project user +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID port create --fixed-ip ip-address=192.168.239.250 --enable --disable-port-security --network private VyOS-private & +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID port create --fixed-ip ip-address=10.0.0.10 --enable --network management OSM-management & +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID port create --fixed-ip ip-address=10.0.0.11 --enable --network management MK8s-management & +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID port create --fixed-ip ip-address=10.0.0.250 --enable --network management VyOS-management & + +echo "Creating Keypair" +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID keypair create --public-key ./hackfest_rsa.pub ${KEY_NAME} & +wait + +echo "Launching OSM VM" +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID server create --key-name ${KEY_NAME} --flavor ${FLAVOR} --image ubuntu20.04 --nic port-id=hackfest-osm-${PARTICIPANT} --nic port-id=OSM-management --user-data ./osm-cloud-init.yaml osm-${PARTICIPANT} +echo "Launching Microk8s VM" +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID server create --key-name ${KEY_NAME} --flavor ${FLAVOR} --image ubuntu22.04 --nic port-id=MK8s-management microk8s +echo "Launching VyOS Router" +openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID server create --flavor m1.small --image vyos-1.1.7 --nic port-id=VyOS-management --nic port-id=VyOS-private --config-drive True --user-data "`pwd`/vyos-userdata.vsh" vyos-pnf-router + +echo "Waiting for OSM VM to be ready" + +while [ 1 ] ; do + sleep 5 + ALIVE=$(ssh -T -o ConnectTimeout=1 -o StrictHostKeyChecking=no -i hackfest_rsa ubuntu@${SUBNET}.${IP} 'cloud-init status --wait | tail -1' 2> /dev/null) + if [ "${ALIVE}" == "status: done" ] ; then break ; fi +done + +echo $0 $@ complete at $(date) \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/create-osm-vm-ports.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/create-osm-vm-ports.sh deleted file mode 100755 index 78ee2851eeaa2873536ed4eb839b531316406bb0..0000000000000000000000000000000000000000 --- a/Hackfest_Demos/OSM-MR13/Setup Scripts/create-osm-vm-ports.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -. ./common-vars $@ - -. ./admin-credentials.rc - -for PARTICIPANT in `seq ${START} ${MAX}` ; do - IP=`expr ${PARTICIPANT} + 100` - PROJECT="hackfest-${PARTICIPANT}" - openstack port create --fixed-ip ip-address=${SUBNET}.${IP} --project=${PROJECT} --enable --network osm-ext hackfest-osm-${PARTICIPANT} -done diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/create-osm-vm-servers.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/create-osm-vm-servers.sh deleted file mode 100755 index b3048b5f2df33ca8a545716519e931a60d1b9926..0000000000000000000000000000000000000000 --- a/Hackfest_Demos/OSM-MR13/Setup Scripts/create-osm-vm-servers.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -. ./common-vars $@ - -. ./admin-credentials.rc - -for PARTICIPANT in `seq ${START} ${MAX}` ; do - openstack server create --key-name ${KEY_NAME} --flavor ${FLAVOR} --image ubuntu20.04 --nic port-id=hackfest-osm-${PARTICIPANT} osm-${PARTICIPANT} -done - diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/delete-openstack-user-and-project.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/delete-openstack-user-and-project.sh index ca3685ba0e07362697ddb8b17ff8f01309f88227..98a83c30b0e6b779dd5796d97b755e34eeb7e37e 100755 --- a/Hackfest_Demos/OSM-MR13/Setup Scripts/delete-openstack-user-and-project.sh +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/delete-openstack-user-and-project.sh @@ -1,30 +1,53 @@ #!/bin/bash +echo $0 started at $(date) . ./common-vars . ./admin-credentials.rc -for PARTICIPANT in `seq ${START} ${MAX}` ; do +PARTICIPANT=${1} - OPENSTACK_USER=hackfest-$1 - PROJECT=$OPENSTACK_USER +OPENSTACK_USER=hackfest-$1 +PROJECT=$OPENSTACK_USER +PASSWORD=hackfest - echo Cleaning up ${OPENSTACK_USER} +echo Cleaning up ${OPENSTACK_USER} - PROJECT_ID=`openstack project list | grep $PROJECT | awk '{print $2}'` - if [ "${PROJECT_ID}" != "" ]; then +PROJECT_ID=`openstack project list | grep "${PROJECT} " | awk '{print $2}'` +if [ "${PROJECT_ID}" != "" ]; then - for RBAC in `openstack network rbac list -f value -c ID`; do - openstack network rbac show $RBAC -f value | grep $PROJECT_ID 2> /dev/null - if [ $? -eq 0 ] ; then - echo "Deleting RBAC policy $RBAC" - openstack network rbac delete $RBAC - fi + echo "Removing Router Ports" + for ROUTER in $(openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router list -f value -c ID); do + openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router unset --external-gateway ${ROUTER} + PORT=$(openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router show ${ROUTER} -f json -c interfaces_info | jq .interfaces_info[0].port_id -r) + while [ "${PORT}" != "null" ] ; do + openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router remove port ${ROUTER} ${PORT} + PORT=$(openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router show ${ROUTER} -f json -c interfaces_info | jq .interfaces_info[0].port_id -r) done - fi + done + + echo "Removing VMs" + openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID server list -f value -c ID | xargs openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID server delete + echo "Removing Routers" + openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router list -f value -c ID | xargs openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID router delete + echo "Removing Ports" + openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID port list -f value -c ID | xargs openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID port delete + echo "Removing Networks" + openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID network list -f value -c ID| xargs openstack --os-username=$OPENSTACK_USER --os-password=$PASSWORD --os-project-id=$PROJECT_ID network delete + + for RBAC in `openstack network rbac list -f value -c ID`; do + openstack network rbac show $RBAC -f value | grep $PROJECT_ID 2> /dev/null + if [ $? -eq 0 ] ; then + echo "Deleting RBAC policy $RBAC" + openstack network rbac delete $RBAC & + fi + done + wait echo "Deleting OpenStack project: $PROJECT" - openstack project delete --domain ${ADMIN_DOMAIN} $PROJECT + openstack project purge --project ${PROJECT_ID} +fi - echo "Deleting OpenStack User: $OPENSTACK_USER" - openstack user delete --domain ${ADMIN_DOMAIN} $OPENSTACK_USER -done \ No newline at end of file +echo "Deleting OpenStack User: $OPENSTACK_USER" +openstack user delete --domain ${ADMIN_DOMAIN} ${OPENSTACK_USER} + +echo $0 $@ complete at $(date) \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/hackfest_rsa b/Hackfest_Demos/OSM-MR13/Setup Scripts/hackfest_rsa new file mode 100644 index 0000000000000000000000000000000000000000..2193387315fd1ff6752a4bf0420d538fdd6f5e93 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/hackfest_rsa @@ -0,0 +1,38 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +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 +-----END OPENSSH PRIVATE KEY----- diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/hackfest_rsa.pub b/Hackfest_Demos/OSM-MR13/Setup Scripts/hackfest_rsa.pub new file mode 100644 index 0000000000000000000000000000000000000000..5efe445d0d1346b25fac553efe68db8b93eda62c --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/hackfest_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCclrtqjkMHuQJag9iR0/R//Dmtbu3tjOxNgId0pXwz+aS17Bv43cRsXFzGzsJq63kz0z6ClmknJjR38zu3O+GUBta92JzCSMuBTq6MpnDC7F8/JztQmvHDR3A2W5u1oVtZr+1fKAqWT7n8gIUVhjh3p1eSp9iM78JR+lJc7D6EvupL1mRudcWguIvCfPRmbnABMhR3IO0f13OtYJHAVrRAoSa5qRHEmhjkEutr0d+iuTxVmoWbAG0DiuxEcG7zbQtjBHJWqTg5dgqNJ9ZdIlY+jKw60632Ul5oD9L4OK0BDALBRNK4TqJcYsB+dBuLgblyeMyPX7cDrGOnSLAz//eSXcewkZfoZWUPmFbMBKPNCgaLjDIeYzdLc4XBCXTouO/htGM0idQUT/bebbNCDWHeJ5CU8yRvEsedJ0xb4kEUwf1rrPJqsuY1faGzHgO+LAPGoJID4GH2Bw1H+lYN/hstwGrCYKMEFDbzJJ3Cm/+GQ+f3OjJpEGsUit8mRvPswic= mark@mark-G5-5090 diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/logs/.gitkeep b/Hackfest_Demos/OSM-MR13/Setup Scripts/logs/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/osm-cloud-init.yaml b/Hackfest_Demos/OSM-MR13/Setup Scripts/osm-cloud-init.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7384a54159517871cf09d02d62c09ab5a93ab1d9 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/osm-cloud-init.yaml @@ -0,0 +1,17 @@ +#cloud-config +password: hackfest +chpasswd: { expire: False } +ssh_pwauth: True + +write_files: +- path: /etc/netplan/99-default-route.yaml + owner: root:root + content: | + network: + version: 2 + ethernets: + ens4: + dhcp4-overrides: + use-routes: false +runcmd: +- reboot \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/run-create-openstack-user-and-project.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-create-openstack-user-and-project.sh new file mode 100755 index 0000000000000000000000000000000000000000..121f73765355cf75f21da069ae0954a01fee5924 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-create-openstack-user-and-project.sh @@ -0,0 +1,13 @@ +#!/bin/bash +echo $0 started at $(date) + +. ./common-vars +. ./admin-credentials.rc +mkdir -p logs/ + +for PARTICIPANT in `seq ${START} ${MAX}` ; do + ./create-openstack-user-and-project.sh ${PARTICIPANT} 2>&1 | tee -a logs/create-openstack-user-and-project-${PARTICIPANT}.log & +done +wait + +echo $0 $@ complete at $(date) \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/run-delete-openstack-user-and-project.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-delete-openstack-user-and-project.sh new file mode 100755 index 0000000000000000000000000000000000000000..b52f3636f89f6995947bf8ca7328b03bada69d5e --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-delete-openstack-user-and-project.sh @@ -0,0 +1,13 @@ +#!/bin/bash +echo $0 started at $(date) + +. ./common-vars +. ./admin-credentials.rc +mkdir -p logs/ + +for PARTICIPANT in `seq ${START} ${MAX}` ; do + ./delete-openstack-user-and-project.sh ${PARTICIPANT} 2>&1 | tee -a logs/delete-openstack-user-and-project-${PARTICIPANT}.log & +done +wait + +echo $0 $@ complete at $(date) \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/run-full-setup.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-full-setup.sh new file mode 100755 index 0000000000000000000000000000000000000000..a5cead4d90075b57faea1de206c13ed553db599d --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-full-setup.sh @@ -0,0 +1,13 @@ +#!/bin/bash +echo $0 started at $(date) + +. common-vars + +./run-create-openstack-user-and-project.sh $@ +./run-vm-initial-setup.sh $@ +./run-microk8s-setup.sh $@ & +./run-install-osm.sh $@ +wait +./run-osm-vim-k8scluster-add.sh $@ + +echo $0 $@ complete at $(date) \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/run-install-osm.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-install-osm.sh index 801bda49463deb7e3d6fadeb96fc2709760edce6..e51f915730c2f65079b3af0887e221bbe93b3334 100755 --- a/Hackfest_Demos/OSM-MR13/Setup Scripts/run-install-osm.sh +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-install-osm.sh @@ -1,13 +1,18 @@ #!/bin/bash +echo $0 started at $(date) + . ./common-vars $@ for PARTICIPANT in `seq ${START} ${MAX}` ; do IP=`expr ${PARTICIPANT} + 100` - scp ./vm-install-osm.sh ubuntu@${SUBNET}.${IP}: & + scp -o StrictHostKeyChecking=no -i hackfest_rsa ./vm-install-osm.sh ubuntu@${SUBNET}.${IP}: & done wait for PARTICIPANT in `seq ${START} ${MAX}` ; do IP=`expr ${PARTICIPANT} + 100` - xterm -hold -e ssh ubuntu@${SUBNET}.${IP} ./vm-install-osm.sh & + ssh -o StrictHostKeyChecking=no -i hackfest_rsa ubuntu@${SUBNET}.${IP} ./vm-install-osm.sh 2>&1 | tee -a logs/vm-install-osm-${PARTICIPANT}.log& done +wait + +echo $0 $@ complete at $(date) \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/run-microk8s-setup.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-microk8s-setup.sh new file mode 100755 index 0000000000000000000000000000000000000000..c72e9f5d657850158c3d4a3088a27290f952ecf0 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-microk8s-setup.sh @@ -0,0 +1,19 @@ +#!/bin/bash +echo $0 started at $(date) + +. ./common-vars $@ + +for PARTICIPANT in `seq ${START} ${MAX}` ; do + IP=`expr ${PARTICIPANT} + 100` + scp -o StrictHostKeyChecking=no -i hackfest_rsa ./hackfest_rsa ./hackfest_rsa.pub ubuntu@${SUBNET}.${IP}:.ssh/ & + scp -o StrictHostKeyChecking=no -i hackfest_rsa vm-microk8s-setup.sh ubuntu@${SUBNET}.${IP}: & +done +wait + +for PARTICIPANT in `seq ${START} ${MAX}` ; do + IP=`expr ${PARTICIPANT} + 100` + ssh -o StrictHostKeyChecking=no -i hackfest_rsa ubuntu@${SUBNET}.${IP} "scp -o StrictHostKeyChecking=no -i .ssh/hackfest_rsa vm-microk8s-setup.sh 10.0.0.11:; ssh -o StrictHostKeyChecking=no -i .ssh/hackfest_rsa 10.0.0.11 ./vm-microk8s-setup.sh" 2>&1 | tee -a logs/vm-microk8s-setup-${PARTICIPANT}.log& +done +wait + +echo $0 $@ complete at $(date) \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/run-osm-vim-k8scluster-add.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-osm-vim-k8scluster-add.sh index f4e5fa718ae7739daab5dfa1f7b014d453d8841f..9fcf25b2fd815890a13b22fecd61f827efc37264 100755 --- a/Hackfest_Demos/OSM-MR13/Setup Scripts/run-osm-vim-k8scluster-add.sh +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-osm-vim-k8scluster-add.sh @@ -1,6 +1,7 @@ -#!/bin/bash -x -. ./common-vars $@ +#!/bin/bash +echo $0 started at $(date) +. ./common-vars $@ . ./hackfest-credentials.rc for PARTICIPANT in `seq ${START} ${MAX}` ; do @@ -23,9 +24,15 @@ export OS_INTERFACE=public export OS_IDENTITY_API_VERSION=3 EOF - scp ${OS_USERNAME}.rc ubuntu@${SUBNET}.${IP}: - ssh ubuntu@${SUBNET}.${IP} ". .profile;echo osm vim-create --name openstack --user ${OS_USERNAME} --password ${OS_PASSWORD} --auth_url ${OS_AUTH_URL} --tenant ${OS_PROJECT_NAME} --account_type openstack --config=\"{ management_network_name: osm-ext, security_groups: default, insecure: true, project_domain_name:${OS_PROJECT_DOMAIN_ID}, user_domain_name: ${OS_USER_DOMAIN_NAME} }\"" - scp whitemist.yaml ubuntu@${SUBNET}.${IP}: - ssh ubuntu@${SUBNET}.${IP} '. .profile;osm k8scluster-add --creds whitemist.yaml --vim openstack --k8s-nets "{"net1": "osm-ext"}" --version 1.20 --namespace test --description "k8s cluster" whitemist' + ssh -o StrictHostKeyChecking=no -i hackfest_rsa ubuntu@${SUBNET}.${IP} ". .profile;osm version" + while [ $? -ne -0 ] ; do + ssh -o StrictHostKeyChecking=no -i hackfest_rsa ubuntu@${SUBNET}.${IP} ". .profile;osm version" + done + scp -o StrictHostKeyChecking=no -i hackfest_rsa ${OS_USERNAME}.rc ubuntu@${SUBNET}.${IP}: + ssh -o StrictHostKeyChecking=no -i hackfest_rsa ubuntu@${SUBNET}.${IP} ". .profile;osm vim-create --name openstack --user ${OS_USERNAME} --password ${OS_PASSWORD} --auth_url ${OS_AUTH_URL} --tenant ${OS_PROJECT_NAME} --account_type openstack --config=\"{ management_network_name: osm-ext, security_groups: default, insecure: true, project_domain_name:${OS_PROJECT_DOMAIN_ID}, user_domain_name: ${OS_USER_DOMAIN_NAME} }\"" 2>&1 | tee -a logs/osm-vim-k8scluster-add-${PARTICIPANT}.log + ssh -o StrictHostKeyChecking=no -i hackfest_rsa ubuntu@${SUBNET}.${IP} "scp -o StrictHostKeyChecking=no -i .ssh/hackfest_rsa ${MANAGEMENT_SUBNET}.11:kubeconfig.yaml ." 2>&1 | tee -a logs/osm-vim-k8scluster-add-${PARTICIPANT}.log + ssh -o StrictHostKeyChecking=no -i hackfest_rsa ubuntu@${SUBNET}.${IP} '. .profile;osm k8scluster-add --creds kubeconfig.yaml --vim openstack --k8s-nets "{"net1": "osm-ext"}" --version 1.23 --namespace hackfest --description "Microk8s cluster" hackfest' 2>&1 | tee -a logs/osm-vim-k8scluster-add-${PARTICIPANT}.log + ssh -o StrictHostKeyChecking=no -i hackfest_rsa ubuntu@${SUBNET}.${IP} "echo . ~/${OS_USERNAME}.rc >> .bashrc" done +echo $0 $@ complete at $(date) \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/run-vm-initial-setup.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-vm-initial-setup.sh new file mode 100755 index 0000000000000000000000000000000000000000..c6702214a67cb45cfd91dc215616318f95452b8a --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-vm-initial-setup.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +echo $0 started at $(date) +. ./common-vars $@ + +for PARTICIPANT in `seq ${START} ${MAX}` ; do + IP=`expr ${PARTICIPANT} + 100` + + scp -o StrictHostKeyChecking=no -i hackfest_rsa vm-initial-setup.sh ubuntu@${SUBNET}.${IP}: & + scp -o StrictHostKeyChecking=no -i hackfest_rsa ./hackfest_rsa ./hackfest_rsa.pub ubuntu@${SUBNET}.${IP}:.ssh/ & + scp -o StrictHostKeyChecking=no -i hackfest_rsa vm-microk8s-setup.sh ubuntu@${SUBNET}.${IP}: & +done +wait + +for PARTICIPANT in `seq ${START} ${MAX}` ; do + IP=`expr ${PARTICIPANT} + 100` + ssh -o StrictHostKeyChecking=no -i hackfest_rsa ubuntu@${SUBNET}.${IP} "./vm-initial-setup.sh" 2>&1 | tee -a logs/vm-initial-setup-${PARTICIPANT}.log & +done +wait + +echo $0 $@ complete at $(date) \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/run-vm-setup.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/run-vm-setup.sh deleted file mode 100755 index f39fd099c1b214d1cc380fa42b33f29531b8cdb1..0000000000000000000000000000000000000000 --- a/Hackfest_Demos/OSM-MR13/Setup Scripts/run-vm-setup.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -. ./common-vars $@ - -for PARTICIPANT in `seq ${START} ${MAX}` ; do - IP=`expr ${PARTICIPANT} + 100` - scp vm-initial-setup.sh ubuntu@${SUBNET}.${IP}: & -done -wait - -for PARTICIPANT in `seq ${START} ${MAX}` ; do - IP=`expr ${PARTICIPANT} + 100` - ssh ubuntu@${SUBNET}.${IP} ./vm-initial-setup.sh & -done -wait \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/vm-initial-setup.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/vm-initial-setup.sh index 2fcb883aa927a76b4bb3a5eac02ee5623b758e47..f6d1b55ae00a94b5d6fafca781254d8bf6928e42 100755 --- a/Hackfest_Demos/OSM-MR13/Setup Scripts/vm-initial-setup.sh +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/vm-initial-setup.sh @@ -1,4 +1,5 @@ #!/bin/bash +echo $0 started at $(date) sudo sed -i "s/127.0.0.1 /127.0.0.1 $HOSTNAME /" /etc/hosts echo 'ubuntu:hackfest'| sudo chpasswd @@ -27,4 +28,6 @@ Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager ResultAny=yes ResultInactive=yes ResultActive=yes -EOF \ No newline at end of file +EOF + +echo $0 $@ complete at $(date) \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/vm-install-osm.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/vm-install-osm.sh index 57bd215ce398abb9399315cb1858d84e601e9f66..80f214b86cdb7cf2af4398de240a3546144b21df 100755 --- a/Hackfest_Demos/OSM-MR13/Setup Scripts/vm-install-osm.sh +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/vm-install-osm.sh @@ -1,4 +1,5 @@ #!/bin/bash +echo $0 started at $(date) sudo snap install microk8s --classic --channel=1.23/stable @@ -18,6 +19,7 @@ sudo microk8s.enable storage sudo snap alias microk8s.kubectl kubectl + wget https://osm-download.etsi.org/ftp/osm-12.0-twelve/install_osm.sh chmod +x ./install_osm.sh ./install_osm.sh -y --charmed --tag testing-daily 2>&1 | tee install_osm.log @@ -26,6 +28,11 @@ chmod +x ./install_osm.sh $(grep "export OSM_PASSWORD" install_osm.log|head -1) $(grep "export OSM_HOSTNAME" install_osm.log|head -1) +while [ 1 ] ; do + osm version + if [ $? -eq 0 ]; then break ; fi +done + # Change the password osm user-update admin --password hackfest sudo sed -i "s/127.0.0.1 /127.0.0.1 nbi.osm ui.osm grafana.osm prometheus.osm /" /etc/hosts @@ -39,3 +46,9 @@ echo "export OSM_HOSTNAME=nbi.osm:443" >> .bashrc echo "export OSM_HOSTNAME=nbi.osm:443" >> .profile echo "export OSM_PASSWORD=hackfest" >> .bashrc echo "export OSM_PASSWORD=hackfest" >> .profile + +# Set some sane defaults for LXD +lxc profile set default limits.memory 1GB +lxc profile set default limits.cpu 2 + +echo $0 $@ complete at $(date) \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/vm-microk8s-setup.sh b/Hackfest_Demos/OSM-MR13/Setup Scripts/vm-microk8s-setup.sh new file mode 100755 index 0000000000000000000000000000000000000000..b7cf75cc798203df016d11b566718bcc3caced9c --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/vm-microk8s-setup.sh @@ -0,0 +1,43 @@ +#!/bin/bash +echo $0 started at $(date) + +sudo sed -i "s/127.0.0.1 /127.0.0.1 $HOSTNAME /" /etc/hosts +echo 'ubuntu:hackfest'| sudo chpasswd +sudo sed -i "s/^PasswordAuthentication.*/PasswordAuthentication yes/" /etc/ssh/sshd_config +sudo service ssh restart +echo "Acquire::http::Proxy \"http://172.21.1.1:3142\";" | sudo tee /etc/apt/apt.conf.d/proxy.conf +echo "Acquire::https::Proxy \"http://172.21.1.1:3142\";" | sudo tee -a /etc/apt/apt.conf.d/proxy.conf + +sudo apt update +sudo apt full-upgrade -y + +sudo snap install microk8s --classic --channel=1.23/stable +sudo mkdir -p /var/snap/microk8s/current/args/certs.d/docker.io +cat << EOF | sudo tee /var/snap/microk8s/current/args/certs.d/docker.io/hosts.toml +server = "http://172.21.1.1:5000" + +[host."http://172.21.1.1:5000"] +capabilities = ["pull", "resolve"] +skip_verify = true +plain-http = true +EOF + +sudo systemctl restart snap.microk8s.daemon-containerd.service +sudo microk8s.enable storage + +HOST_IP=10.0.0.11 +METALLB_START=10.0.0.200 +METALLB_END=10.0.0.250 +sudo cat /var/snap/microk8s/current/args/kube-apiserver | grep advertise-address || ( echo "--advertise-address ${HOST_IP}" | sudo tee -a /var/snap/microk8s/current/args/kube-apiserver; sudo microk8s.stop; sudo microk8s.start; ) + +sudo microk8s.enable metallb:${METALLB_START}-${METALLB_END} +sudo microk8s.enable ingress storage dns +sudo microk8s status --wait-ready +KUBECONFIG=~/kubeconfig.yaml +sudo microk8s config | tee ${KUBECONFIG} + +sudo usermod -a -G microk8s ubuntu +sudo chown -f -R ubuntu ~/.kube +sudo snap alias microk8s.kubectl kubectl + +echo $0 $@ complete at $(date) \ No newline at end of file diff --git a/Hackfest_Demos/OSM-MR13/Setup Scripts/vyos-userdata.vsh b/Hackfest_Demos/OSM-MR13/Setup Scripts/vyos-userdata.vsh new file mode 100644 index 0000000000000000000000000000000000000000..4b17c45bb1c3a31db35a73af0dc9723b1d5cdd37 --- /dev/null +++ b/Hackfest_Demos/OSM-MR13/Setup Scripts/vyos-userdata.vsh @@ -0,0 +1,25 @@ +#!/bin/vbash +source /opt/vyatta/etc/functions/script-template +# Interface Config eth0 +set interfaces ethernet eth0 address dhcp +set interfaces ethernet eth0 description VyOS-public +# Interface Config eth1 +set interfaces ethernet eth1 address dhcp +set interfaces ethernet eth1 description VyOS-private +# System config +set system gateway-address 10.0.0.1 +set system host-name vyos-firewall +set service ssh listen-address 0.0.0.0 +set service ssh port 22 +set system login user osm authentication plaintext-password osm2021 +# Enable masquerading +set nat source rule 100 outbound-interface 'eth0' +set nat source rule 100 source address '192.168.239.0/24' +set nat source rule 100 translation address masquerade +# SNMP +set service snmp community public authorization ro +set service snmp location "OSM Labs" +set service snmp contact "osmsupport@etsi.org" +# Save +commit +save \ No newline at end of file