X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=installers%2Finstall_osm.sh;h=87caad34b40b386b5a00263287d0fc92e006ef58;hb=7077be66623b911d95bec3c463d53b535371411e;hp=9836bf2aedbad3df1be1df6464010dac86e3c725;hpb=8db0ffd73126406be0b39677212a95390fe66b5e;p=osm%2Fdevops.git diff --git a/installers/install_osm.sh b/installers/install_osm.sh index 9836bf2a..87caad34 100755 --- a/installers/install_osm.sh +++ b/installers/install_osm.sh @@ -66,6 +66,36 @@ function uninstall(){ return 0 } +#Uninstall lightweight OSM: remove dockers +function uninstall_lightweight(){ + echo -e "\nUninstalling lightweight OSM" + docker stack rm osm + COUNTER=0 + result=11 + while [ ${COUNTER} -lt 30 ]; do + sleep 1 + result=$(docker stack ps osm | wc -l) + #echo "Dockers running: $result" + if [ "${result}" == "0" ]; then + break + fi + let COUNTER=COUNTER+1 + done + if [ "${result}" == "0" ]; then + echo "All dockers of the stack osm were removed" + else + FATAL "Some dockers of the stack osm could not be removed. Could not uninstall OSM in single shot. Try to uninstall again" + fi + sleep 5 + docker image rm osm/ro + docker image rm osm/lcm + docker image rm osm/light-ui + docker image rm osm/nbi + docker image rm osm/mon + docker image rm osm/pm + return 0 +} + #Configure NAT rules, based on the current IP addresses of containers function nat(){ echo -e "\nChecking required packages: iptables-persistent" @@ -491,6 +521,14 @@ function install_docker_ce() { echo "... restarted Docker service" } +function install_docker_compose() { + # installs and configures docker-compose + echo "Installing Docker Compose ..." + sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + echo "... Docker Compose installation done" +} + function install_juju() { echo "Installing juju" sudo snap install juju --classic @@ -505,7 +543,7 @@ function generate_docker_images() { docker pull wurstmeister/kafka docker pull wurstmeister/zookeeper docker pull mongo - docker pull mysql + docker pull mysql:5 git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/MON docker build ${LWTEMPDIR}/MON -f ${LWTEMPDIR}/MON/docker/Dockerfile -t osm/mon || ! echo "cannot build MON docker image" >&2 docker build ${LWTEMPDIR}/MON/policy_module -f ${LWTEMPDIR}/MON/policy_module/Dockerfile -t osm/pm || ! echo "cannot build PM docker image" >&2 @@ -523,7 +561,7 @@ EONG function generate_docker_env_files() { echo "Generating docker env files" OSMLCM_VCA_HOST=`juju show-controller|grep api-endpoints|awk -F\' '{print $2}'|awk -F\: '{print $1}'` - OSMLCM_VCA_SECRET=`grep password /home/ubuntu/.local/share/juju/accounts.yaml |awk '{print $2}'` + OSMLCM_VCA_SECRET=`grep password ${HOME}/.local/share/juju/accounts.yaml |awk '{print $2}'` MYSQL_ROOT_PASSWORD=`date +%s | sha256sum | base64 | head -c 32` echo "OSMLCM_VCA_HOST=${OSMLCM_VCA_HOST}" |sudo tee ${OSM_DEVOPS}/installers/docker/lcm.env echo "OSMLCM_VCA_SECRET=${OSMLCM_VCA_SECRET}" |sudo tee -a ${OSM_DEVOPS}/installers/docker/lcm.env @@ -539,6 +577,7 @@ function deploy_lightweight() { docker swarm init --advertise-addr ${DEFAULT_IP} docker network create --driver=overlay --attachable --opt com.docker.network.driver.mtu=${DEFAULT_MTU} netOSM docker stack deploy -c ${OSM_DEVOPS}/installers/docker/docker-compose.yaml osm + #docker-compose -f /usr/share/osm-devops/installers/docker/docker-compose.yaml up -d EONG echo "Finished deployment of lightweight build" } @@ -550,8 +589,19 @@ function install_lightweight() { DEFAULT_IF=`route -n |awk '$1~/^0.0.0.0/ {print $8}'` DEFAULT_IP=`ip -o -4 a |grep ${DEFAULT_IF}|awk '{split($4,a,"/"); print a[1]}'` DEFAULT_MTU=$(ip addr show ${DEFAULT_IF} | perl -ne 'if (/mtu\s(\d+)/) {print $1;}') + need_packages_lw="lxd" + echo -e "Checking required packages: $need_packages_lw" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "One or several required packages are not installed. Updating apt cache requires root privileges." \ + || sudo apt-get update \ + || FATAL "failed to run apt-get update" + dpkg -l $need_packages_lw &>/dev/null \ + || ! echo -e "Installing $need_packages_lw requires root privileges." \ + || sudo apt-get install -y $need_packages_lw \ + || FATAL "failed to install $need_packages_lw" install_juju install_docker_ce + #install_docker_compose generate_docker_images generate_docker_env_files deploy_lightweight @@ -764,6 +814,7 @@ fi OSM_JENKINS="$OSM_DEVOPS/jenkins" . $OSM_JENKINS/common/all_funcs +[ -n "$INSTALL_LIGHTWEIGHT" ] && [ -n "$UNINSTALL" ] && uninstall_lightweight && echo -e "\nDONE" && exit 0 [ -n "$UNINSTALL" ] && uninstall && echo -e "\nDONE" && exit 0 [ -n "$NAT" ] && nat && echo -e "\nDONE" && exit 0 [ -n "$UPDATE" ] && update && echo -e "\nDONE" && exit 0