X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=jenkins%2FSO%2Finstall;h=e96beab7b8e5bb2214e6d0e41f7623247880c843;hb=4e6025067d0da053fccd47b532b3022d0795bed8;hp=948e8f87945b13ecf57392b6dad4e1145bcaef3f;hpb=46cac1a1f0dbdf2d6c2d7e0089d3cc099019f4a0;p=osm%2Fdevops.git diff --git a/jenkins/SO/install b/jenkins/SO/install index 948e8f87..e96beab7 100755 --- a/jenkins/SO/install +++ b/jenkins/SO/install @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# +# # Copyright 2017 RIFT.IO Inc # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,106 +16,128 @@ # # Author(s): Jeremy Mordkoff # Creation Date: 26 April 2017 -# +# # # INSTALL.sh # install launchpad SO and all of its dependencies # +HERE=$(realpath $(dirname $0)) +OSM_JENKINS=$(dirname $HERE) +. $OSM_JENKINS/common/install_common + # Defensive bash programming flags set -o errexit # Exit on any error trap 'echo ERROR: Command failed: \"$BASH_COMMAND\"' ERR set -o nounset # Expanding an unset variable is an error. Variables must be # set before they can be used. -if [ $# -gt 0 ]; then - case "$1" in - -h|--help) - echo - echo "NAME:" - echo " $0" - echo - echo "SYNOPSIS:" - echo " $0 -h|--help" - echo " $0 [PLATFORM_REPOSITORY] [PLATFORM_VERSION]" - echo - echo "DESCRIPTION:" - echo " Prepare current system to run SO and UI." - echo - echo " PLATFORM_REPOSITORY (optional): name of the RIFT.ware repository." - echo " PLATFORM_VERSION (optional): version of the platform packages to be installed." - echo - exit 0;; - esac -fi - - ############################################################################### # Set up repo and version +PLATFORM_REPOSITORY=OSM3 +PLATFORM_VERSION=5.2.0.0.71033 + +while getopts ":P:V:h" o; do + case "${o}" in + P) + PLATFORM_REPOSITORY=${OPTARG} + ;; + V) + PLATFORM_VERSION=${OPTARG} + ;; + h) + usage + exit 0 + ;; + *) + usage + exit 1 + ;; + esac +done + +function usage() { + echo + echo "NAME:" + echo " $0" + echo + echo "SYNOPSIS:" + echo " $0 -h|--help" + echo " $0 -P -V " + echo + echo "DESCRIPTION:" + echo " Prepare current system to run SO and UI." + echo + echo " PLATFORM_REPOSITORY (optional): name of the RIFT.ware repository." + echo " PLATFORM_VERSION (optional): version of the platform packages to be installed." + echo +} -PLATFORM_REPOSITORY=${1:-OSM} -PLATFORM_VERSION=${2:-4.4.2.1.61839} ############################################################################### # Main block -# Disable apt-daily.service and apt-daily.timer - -DAILY_TIMER='apt-daily.timer' -DAILY_SERVICE='apt-daily.service' -if [ $(systemctl is-active $DAILY_TIMER) = "active" ] -then - systemctl stop $DAILY_TIMER - systemctl disable $DAILY_TIMER - systemctl disable $DAILY_SERVICE -fi - # enable the right repos +echo "### INSTALLING RIFT platform ${PLATFORM_VERSION} from repository ${PLATFORM_REPOSITORY}" + curl http://repos.riftio.com/public/xenial-riftware-public-key | apt-key add - -curl -o /etc/apt/sources.list.d/RIFT.list http://buildtracker.riftio.com/repo_file/ub16/${PLATFORM_REPOSITORY}/ -apt-get update - -# and install the tools -apt remove -y rw.toolchain-rwbase tcpdump -apt-get install -y --allow-downgrades rw.tools-container-tools=${PLATFORM_VERSION} rw.tools-scripts=${PLATFORM_VERSION} python -/usr/rift/container_tools/mkcontainer --modes ext --modes platform --rw-version ${PLATFORM_VERSION} -pip3 install lxml==3.4.0 +curl -o /etc/apt/sources.list.d/rift.list http://buildtracker.riftio.com/repo_file/ub16/${PLATFORM_REPOSITORY}/ +# Make the Rift repo a higher priority to work around version conflicts. +cat < /etc/apt/preferences.d/rift +Package: * +Pin: origin repos.riftio.com +Pin-Priority: 600 +EOF -chmod 777 /usr/rift /usr/rift/usr/share -# now disable the RIFT OSM repo so that we'll get MANO from + +####################### +# temp fix +# this is normally done by mkcontainer, but the last line is missing +# we can take this out when we update the RIFT platform + +cat <>/etc/systemd/user.conf +DefaultLimitNOFILE=65536 +DefaultLimitMSGQUEUE=8192000 +DefaultLimitNPROC=65536 +DefaultTasksMax=65536 +EOF +cat <>/etc/systemd/system.conf +DefaultLimitNOFILE=65536 +DefaultLimitMSGQUEUE=8192000 +DefaultLimitNPROC=65536 +DefaultTasksMax=65536 +EOF +systemctl daemon-reload + +################################## + + +apt-get update + +# and install the tools +apt remove -y tcpdump +apt-get install -y --allow-downgrades rw.tools-container-tools=${PLATFORM_VERSION} rw.tools-scripts=${PLATFORM_VERSION} python +/usr/rift/container_tools/mkcontainer --modes MANO-base,rw-platform --rw-version ${PLATFORM_VERSION} + +# now disable the RIFT OSM repo so that we'll get MANO from # the OSM repos -rm -f /etc/apt/sources.list.d/RIFT.list -curl https://osm-download.etsi.org/repository/osm/debian/ReleaseTWO/OSM%20ETSI%20Release%20Key.gpg |apt-key add - -add-apt-repository -y "deb https://osm-download.etsi.org/repository/osm/debian/ReleaseTWO stable SO UI RO openvim" +rm -f /etc/apt/sources.list.d/rift.list + apt-get update - + apt-get install -y \ - rw.core.mano-rwcal_yang_ylib-1.0 \ - rw.core.mano-rwconfig_agent_yang_ylib-1.0 \ - rw.core.mano-rwlaunchpad_yang_ylib-1.0 \ - rw.core.mano-mano_yang_ylib-1.0 \ - rw.core.mano-common-1.0 \ - rw.core.mano-rwsdn_yang_ylib-1.0 \ - rw.core.mano-rwsdnal_yang_ylib-1.0 \ - rw.core.mano-mano-types_yang_ylib-1.0 \ - rw.core.mano-rwcal-cloudsim-1.0 \ - rw.core.mano-rwcal-1.0 \ - rw.core.mano-rw_conman_yang_ylib-1.0 \ - rw.core.mano-rwcalproxytasklet-1.0 \ - rw.core.mano-rwlaunchpad-1.0 \ - rw.core.mano-rwcal-openmano-vimconnector-1.0 \ - rw.core.mano-lpmocklet_yang_ylib-1.0 \ - rw.core.mano-rwmon-1.0 \ - rw.core.mano-rwcloud_yang_ylib-1.0 \ - rw.core.mano-rwcal-openstack-1.0 \ - rw.core.mano-rw.core.mano_foss \ - rw.core.mano-rwmon_yang_ylib-1.0 \ - rw.core.mano-rwcm-1.0 \ - rw.core.mano-rwcal-mock-1.0 \ - rw.core.mano-rwcal-cloudsimproxy-1.0 \ - rw.core.mano-models-1.0 \ - rw.core.mano-rwcal-aws-1.0 - + rw.core.mano-mano \ + rw.core.mano-rwcal-plugin-aws \ + rw.core.mano-rwcal-plugin-cloudsim \ + rw.core.mano-rwcal-plugin-cloudsimproxy \ + rw.core.mano-rwcal-plugin-openmano-vimconnector \ + rw.core.mano-rwcal-plugin-openstack \ + rw.core.mano-rwcal-plugin-mock + +# Install libjuju +apt-get install -y python3-pip + +pip3 install juju