blob: 9cad24a7fe85b0202a6b4ad726fc45278f2f0bfa [file] [log] [blame]
Jeremy Mordkoff91157a52017-04-26 22:50:43 -04001#!/usr/bin/env bash
Adam Israel61d476d2017-05-19 09:14:33 -04002#
Jeremy Mordkoff91157a52017-04-26 22:50:43 -04003# Copyright 2017 RIFT.IO Inc
garciadeblasa1fc4572017-04-24 19:08:21 +02004#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
garciadeblasa1fc4572017-04-24 19:08:21 +020016#
Jeremy Mordkoff91157a52017-04-26 22:50:43 -040017# Author(s): Jeremy Mordkoff
18# Creation Date: 26 April 2017
Adam Israel61d476d2017-05-19 09:14:33 -040019#
Jeremy Mordkoff91157a52017-04-26 22:50:43 -040020#
garciadeblasa1fc4572017-04-24 19:08:21 +020021
Jeremy Mordkoff91157a52017-04-26 22:50:43 -040022# INSTALL.sh
23# install launchpad SO and all of its dependencies
24#
garciadeblasa1fc4572017-04-24 19:08:21 +020025
Mike Marchetti425f8ce2017-06-15 13:02:16 -040026HERE=$(realpath $(dirname $0))
27OSM_JENKINS=$(dirname $HERE)
28. $OSM_JENKINS/common/install_common
29
Jeremy Mordkoff91157a52017-04-26 22:50:43 -040030# Defensive bash programming flags
31set -o errexit # Exit on any error
32trap 'echo ERROR: Command failed: \"$BASH_COMMAND\"' ERR
33set -o nounset # Expanding an unset variable is an error. Variables must be
34 # set before they can be used.
garciadeblasa1fc4572017-04-24 19:08:21 +020035
Jeremy Mordkoff91157a52017-04-26 22:50:43 -040036###############################################################################
37# Set up repo and version
Jeremy Mordkoff7b0656f2017-10-03 12:29:02 -040038PLATFORM_REPOSITORY=OSM3
marchettim6b795c72017-11-10 18:15:21 +020039PLATFORM_VERSION=5.2.0.2.72254
garciadeblasa1fc4572017-04-24 19:08:21 +020040
Mike Marchetti425f8ce2017-06-15 13:02:16 -040041while getopts ":P:V:h" o; do
42 case "${o}" in
43 P)
44 PLATFORM_REPOSITORY=${OPTARG}
45 ;;
46 V)
47 PLATFORM_VERSION=${OPTARG}
48 ;;
49 h)
50 usage
51 exit 0
52 ;;
53 *)
54 usage
55 exit 1
56 ;;
57 esac
58done
59
60function usage() {
61 echo
62 echo "NAME:"
63 echo " $0"
64 echo
65 echo "SYNOPSIS:"
66 echo " $0 -h|--help"
67 echo " $0 -P <PLATFORM_REPOSITORY> -V <PLATFORM_VERSION>"
68 echo
69 echo "DESCRIPTION:"
70 echo " Prepare current system to run SO and UI."
71 echo
72 echo " PLATFORM_REPOSITORY (optional): name of the RIFT.ware repository."
73 echo " PLATFORM_VERSION (optional): version of the platform packages to be installed."
74 echo
75}
76
garciadeblasa1fc4572017-04-24 19:08:21 +020077
Jeremy Mordkoff91157a52017-04-26 22:50:43 -040078###############################################################################
79# Main block
garciadeblasa1fc4572017-04-24 19:08:21 +020080
Jeremy Mordkoff91157a52017-04-26 22:50:43 -040081# enable the right repos
Jeremy Mordkoff7b0656f2017-10-03 12:29:02 -040082echo "### INSTALLING RIFT platform ${PLATFORM_VERSION} from repository ${PLATFORM_REPOSITORY}"
83
Jeremy Mordkoff91157a52017-04-26 22:50:43 -040084curl http://repos.riftio.com/public/xenial-riftware-public-key | apt-key add -
Jeremy Mordkoff2b22e632017-10-02 18:11:23 -040085curl -o /etc/apt/sources.list.d/rift.list http://buildtracker.riftio.com/repo_file/ub16/${PLATFORM_REPOSITORY}/
Adam Israel61d476d2017-05-19 09:14:33 -040086
87# Make the Rift repo a higher priority to work around version conflicts.
88cat <<EOF > /etc/apt/preferences.d/rift
89Package: *
90Pin: origin repos.riftio.com
91Pin-Priority: 600
92EOF
93
Jeremy Mordkoffa4e08132017-10-03 08:53:05 -040094
95
96#######################
97# temp fix
98# this is normally done by mkcontainer, but the last line is missing
Adam Israel4e602502017-10-05 16:12:53 -040099# we can take this out when we update the RIFT platform
Jeremy Mordkoffa4e08132017-10-03 08:53:05 -0400100
101cat <<EOF >>/etc/systemd/user.conf
102DefaultLimitNOFILE=65536
103DefaultLimitMSGQUEUE=8192000
104DefaultLimitNPROC=65536
105DefaultTasksMax=65536
106EOF
107cat <<EOF >>/etc/systemd/system.conf
108DefaultLimitNOFILE=65536
109DefaultLimitMSGQUEUE=8192000
110DefaultLimitNPROC=65536
111DefaultTasksMax=65536
112EOF
113systemctl daemon-reload
114
115##################################
116
117
Jeremy Mordkoff91157a52017-04-26 22:50:43 -0400118apt-get update
Adam Israel61d476d2017-05-19 09:14:33 -0400119
Jeremy Mordkoff91157a52017-04-26 22:50:43 -0400120# and install the tools
Jeremy Mordkoff8dfd9982017-10-02 20:05:11 -0400121apt remove -y tcpdump
Adam Israel61d476d2017-05-19 09:14:33 -0400122apt-get install -y --allow-downgrades rw.tools-container-tools=${PLATFORM_VERSION} rw.tools-scripts=${PLATFORM_VERSION} python
Jeremy Mordkoff369fbb22017-10-02 17:20:25 -0400123/usr/rift/container_tools/mkcontainer --modes MANO-base,rw-platform --rw-version ${PLATFORM_VERSION}
Jeremy Mordkoff91157a52017-04-26 22:50:43 -0400124
Adam Israel61d476d2017-05-19 09:14:33 -0400125# now disable the RIFT OSM repo so that we'll get MANO from
Jeremy Mordkoff91157a52017-04-26 22:50:43 -0400126# the OSM repos
Jeremy Mordkoff2b22e632017-10-02 18:11:23 -0400127rm -f /etc/apt/sources.list.d/rift.list
Mike Marchetti425f8ce2017-06-15 13:02:16 -0400128
garciadeblasa1fc4572017-04-24 19:08:21 +0200129apt-get update
Adam Israel61d476d2017-05-19 09:14:33 -0400130
garciadeblasa1fc4572017-04-24 19:08:21 +0200131apt-get install -y \
Jeremy Mordkofffd18c942017-10-02 14:28:53 -0400132 rw.core.mano-mano \
133 rw.core.mano-rwcal-plugin-aws \
134 rw.core.mano-rwcal-plugin-cloudsim \
135 rw.core.mano-rwcal-plugin-cloudsimproxy \
136 rw.core.mano-rwcal-plugin-openmano-vimconnector \
137 rw.core.mano-rwcal-plugin-openstack \
Adam Israel4e602502017-10-05 16:12:53 -0400138 rw.core.mano-rwcal-plugin-mock
Jeremy Mordkoff1ce95b32017-09-30 16:25:32 -0400139
Adam Israel4e602502017-10-05 16:12:53 -0400140# Install libjuju
Adam Israela7c6c3e2017-10-05 16:50:47 -0400141apt-get install -y python3-pip python3-setuptools
Jeremy Mordkoff1ce95b32017-09-30 16:25:32 -0400142
Adam Israel46d18d52017-12-15 14:00:18 -0500143pip3 install juju==0.6.1