#!/bin/bash set -x DOCKER_VERSION=17.03 RANCHER_VERSION=1.6.18 KUBECTL_VERSION=1.8.10 HELM_VERSION=2.9.1 # setup root access - default login: oom/oom - comment out to restrict access too ssh key only sed -i 's/PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config sed -i 's/PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config service sshd restart echo -e "oom\noom" | passwd root apt-get update curl https://releases.rancher.com/install-docker/$DOCKER_VERSION.sh | sh mkdir -p /etc/systemd/system/docker.service.d/ cat > /etc/systemd/system/docker.service.d/docker.conf << EOF [Service] ExecStart= ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry=nexus3.onap.org:10001 EOF systemctl daemon-reload systemctl restart docker apt-mark hold docker-ce #IP_ADDY=`ip address |grep ens|grep inet|awk '{print $2}'| awk -F / '{print $1}'` #HOSTNAME=`hostname` #echo "$IP_ADDY $HOSTNAME" >> /etc/hosts docker login -u docker -p docker nexus3.onap.org:10001 sudo apt-get install make -y sudo docker run -d --restart=unless-stopped -p 8080:8080 --name rancher_server rancher/server:v$RANCHER_VERSION sudo curl -LO https://storage.googleapis.com/kubernetes-release/release/v$KUBECTL_VERSION/bin/linux/amd64/kubectl sudo chmod +x ./kubectl sudo mv ./kubectl /usr/local/bin/kubectl sudo mkdir ~/.kube wget http://storage.googleapis.com/kubernetes-helm/helm-v${HELM_VERSION}-linux-amd64.tar.gz sudo tar -zxvf helm-v${HELM_VERSION}-linux-amd64.tar.gz sudo mv linux-amd64/helm /usr/local/bin/helm # nfs server sudo apt-get install nfs-kernel-server -y sudo mkdir -p /nfs_share sudo chown nobody:nogroup /nfs_share/ sudo mkdir -p /dockerdata-nfs sudo chmod 777 -R /dockerdata-nfs sudo chown nobody:nogroup /dockerdata-nfs/ NFS_EXP="*(rw,sync,no_root_squash,no_subtree_check) " echo "/dockerdata-nfs "$NFS_EXP | sudo tee -a /etc/exports #Restart the NFS service sudo exportfs -a sudo systemctl restart nfs-kernel-server echo "wait before installing rancher server" sleep 60 # Create ONAP environment on rancher and register the nodes... SERVER=$1 PRIVATE_IP=$2 NODE_COUNT=$3 echo "SERVER: ${SERVER}" echo "PRIVATE_IP: ${PRIVATE_IP}" echo "NODE_COUNT: ${NODE_COUNT}" #install sshpass to login to the k8s nodes to run rancher agent sudo apt-get install sshpass # create kubernetes environment on rancher using cli RANCHER_CLI_VER=0.6.7 KUBE_ENV_NAME='onap' wget https://releases.rancher.com/cli/v${RANCHER_CLI_VER}/rancher-linux-amd64-v${RANCHER_CLI_VER}.tar.gz sudo tar -zxvf rancher-linux-amd64-v${RANCHER_CLI_VER}.tar.gz sudo cp rancher-v${RANCHER_CLI_VER}/rancher . sudo chmod +x ./rancher sudo apt install jq -y echo "wait for rancher server container to finish - 3 min" sleep 60 echo "2 more min" sleep 60 echo "1 min left" sleep 60 echo "get public and private tokens back to the rancher server so we can register the client later" API_RESPONSE=`curl -s 'http://$SERVER:8080/v2-beta/apikey' -d '{"type":"apikey","accountId":"1a1","name":"autoinstall","description":"autoinstall","created":null,"kind":null,"removeTime":null,"removed":null,"uuid":null}'` # Extract and store token echo "API_RESPONSE: $API_RESPONSE" KEY_PUBLIC=`echo $API_RESPONSE | jq -r .publicValue` KEY_SECRET=`echo $API_RESPONSE | jq -r .secretValue` echo "publicValue: $KEY_PUBLIC secretValue: $KEY_SECRET" export RANCHER_URL=http://${SERVER}:8080 export RANCHER_ACCESS_KEY=$KEY_PUBLIC export RANCHER_SECRET_KEY=$KEY_SECRET ./rancher env ls echo "wait 60 sec for rancher environments can settle before we create the onap kubernetes one" sleep 60 echo "Creating kubernetes environment named ${KUBE_ENV_NAME}" ./rancher env create -t kubernetes $KUBE_ENV_NAME > kube_env_id.json PROJECT_ID=$( ~/.kube/config <