X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=installers%2Finstall_osm.sh;h=4e1bbb1194fb7d5e5743913dbacc159f1660ffa8;hb=0062727f3c596aa3c4e87b4ea497bdf69b3dedd9;hp=5be26707eace84a4e3e7a562c8e24c1b4349b96c;hpb=ae0784f4e86e61f36dc4802e889504f1086dddd0;p=osm%2Fdevops.git diff --git a/installers/install_osm.sh b/installers/install_osm.sh index 5be26707..4e1bbb11 100755 --- a/installers/install_osm.sh +++ b/installers/install_osm.sh @@ -13,14 +13,17 @@ # limitations under the License. # REPOSITORY_BASE=https://osm-download.etsi.org/repository/osm/debian -RELEASE=ReleaseSEVEN-daily -REPOSITORY=testing -DOCKER_TAG=releaseseven +RELEASE=ReleaseTEN +REPOSITORY=stable +DOCKER_TAG=10 +DEVOPS_PATH=/usr/share/osm-devops function usage(){ echo -e "usage: $0 [OPTIONS]" echo -e "Install OSM from binaries or source code (by default, from binaries)" echo -e " OPTIONS" + echo -e " -h / --help: print this help" + echo -e " -y: do not prompt for confirmation, assumes yes" echo -e " -r : use specified repository name for osm packages" echo -e " -R : use specified release for osm binaries (deb packages, lxd images, ...)" echo -e " -u : use specified repository url for osm packages" @@ -30,7 +33,8 @@ function usage(){ echo -e " -b v2.0 (v2.0 branch)" echo -e " -b tags/v1.1.0 (a specific tag)" echo -e " ..." - echo -e " -s user defined stack name, default is osm" + echo -e " -c deploy osm services using container . Valid values are or . If -c is not used then osm will be deployed using default orchestrator. When used with --uninstall, osm services deployed by the orchestrator will be uninstalled" + echo -e " -s or user defined stack name when installed using swarm or namespace when installed using k8s, default is osm" echo -e " -H use specific juju host controller IP" echo -e " -S use VCA/juju secret key" echo -e " -P use VCA/juju public key file" @@ -38,12 +42,21 @@ function usage(){ echo -e " -A use VCA/juju API proxy" echo -e " --vimemu: additionally deploy the VIM emulator as a docker container" echo -e " --elk_stack: additionally deploy an ELK docker stack for event logging" - echo -e " --pm_stack: additionally deploy a Prometheus+Grafana stack for performance monitoring (PM)" - echo -e " -m : install OSM but only rebuild the specified docker images (LW-UI, NBI, LCM, RO, MON, POL, KAFKA, MONGO, PROMETHEUS, KEYSTONE-DB, NONE)" - echo -e " -o : ONLY (un)installs one of the addons (vimemu, elk_stack, pm_stack)" + echo -e " --pla: install the PLA module for placement support" + echo -e " -m : install OSM but only rebuild the specified docker images (LW-UI, NBI, LCM, RO, MON, POL, KAFKA, MONGO, PROMETHEUS, PROMETHEUS-CADVISOR, KEYSTONE-DB, PLA, NONE)" + echo -e " -o : ONLY (un)installs one of the addons (vimemu, elk_stack, k8s_monitor)" + echo -e " -O : Install OSM to an OpenStack infrastructure. is required. If a is used, the clouds.yaml file should be under ~/.config/openstack/ or /etc/openstack/" + echo -e " -N : Public network name required to setup OSM to OpenStack" echo -e " -D use local devops installation path" echo -e " -w Location to store runtime installation" echo -e " -t specify osm docker tag (default is latest)" + echo -e " -l: LXD cloud yaml file" + echo -e " -L: LXD credentials yaml file" + echo -e " -K: Specifies the name of the controller to use - The controller must be already bootstrapped" + echo -e " -d use docker registry URL instead of dockerhub" + echo -e " -p set docker proxy URL as part of docker CE configuration" + echo -e " -T specify docker tag for the modules specified with option -m" + echo -e " --nocachelxdimages: do not cache local lxd images, do not create cronjob for that cache (will save installation time, might affect instantiation time)" echo -e " --nolxd: do not install and configure LXD, allowing unattended installations (assumes LXD is already installed and confifured)" echo -e " --nodocker: do not install docker, do not initialize a swarm (assumes docker is already installed and a swarm has been initialized)" echo -e " --nojuju: do not juju, assumes already installed" @@ -53,17 +66,22 @@ function usage(){ echo -e " --uninstall: uninstall OSM: remove the containers and delete NAT rules" echo -e " --source: install OSM from source code using the latest stable tag" echo -e " --develop: (deprecated, use '-b master') install OSM from source code using the master branch" - echo -e " --soui: install classic build of OSM (Rel THREE v3.1, based on LXD containers, with SO and UI)" - echo -e " --lxdimages: (only for Rel THREE with --soui) download lxd images from OSM repository instead of creating them from scratch" echo -e " --pullimages: pull/run osm images from docker.io/opensourcemano" - echo -e " -l : (only for Rel THREE with --soui) use specified repository url for lxd images" - echo -e " -p : (only for Rel THREE with --soui) use specified repository path for lxd images" - echo -e " --nat: (only for Rel THREE with --soui) install only NAT rules" - echo -e " --noconfigure: (only for Rel THREE with --soui) DO NOT install osmclient, DO NOT install NAT rules, DO NOT configure modules" + echo -e " --k8s_monitor: install the OSM kubernetes monitoring with prometheus and grafana" + echo -e " --volume: create a VM volume when installing to OpenStack" echo -e " --showopts: print chosen options and exit (only for debugging)" - #echo -e " --clean_volumes To clear all the mounted volumes from docker swarm" - echo -e " -y: do not prompt for confirmation, assumes yes" - echo -e " -h / --help: print this help" + echo -e " --charmed: Deploy and operate OSM with Charms on k8s" + echo -e " [--bundle ]: Specify with which bundle to deploy OSM with charms (--charmed option)" + echo -e " [--k8s ]: Specify with which kubernetes to deploy OSM with charms (--charmed option)" + echo -e " [--vca ]: Specifies the name of the controller to use - The controller must be already bootstrapped (--charmed option)" + echo -e " [--lxd ]: Takes a YAML file as a parameter with the LXD Cloud information (--charmed option)" + echo -e " [--lxd-cred ]: Takes a YAML file as a parameter with the LXD Credentials information (--charmed option)" + echo -e " [--microstack]: Installs microstack as a vim. (--charmed option)" + echo -e " [--overlay]: Add an overlay to override some defaults of the default bundle (--charmed option)" + echo -e " [--ha]: Installs High Availability bundle. (--charmed option)" + echo -e " [--tag]: Docker image tag. (--charmed option)" + echo -e " [--registry]: Docker registry with optional credentials as user:pass@hostname:port (--charmed option)" + } add_repo() { @@ -91,40 +109,18 @@ add_repo() { return 1 } -clean_old_packages() { +clean_old_repo() { dpkg -s 'osm-devops' &> /dev/null - if [ $? -eq 0 ]; then - - # Remove old packages - echo "Removing the old OSM packages" - sudo apt-get remove -y osm-devops - sudo apt-get remove -y osm-imdocs - sudo apt-get remove -y python3-osmclient - sudo apt-get remove -y python3-osm-im # Clean the previous repos that might exist sudo sed -i "/osm-download.etsi.org/d" /etc/apt/sources.list fi } -#TBD -clean_volumes(){ - result=`docker stack ls|wc -l` - echo "Stack is running ####%%%%% $result" - if [ $result -gt 1 ]; then - echo "Inside $result > 1" - #TBD take user confirmation - docker stack ls |awk '{print $1}' |tail -n+2|xargs docker stack rm - sleep 3m - docker volume ls|awk '/_mon_db|_mongo_db|_osm_packages|_pol_db|_prom_db|_ro|_ro_db/{print $2}' \ - |xargs -r --no-run-if-empty docker volume rm - fi -} - -while getopts ":hr:R:u:t:-:" o; do +while getopts ":b:r:c:n:k:u:R:l:L:K:p:D:o:O:m:N:H:S:s:w:t:U:P:A:d:p:f:F:-: hy" o; do case "${o}" in - h) - usage && exit 0 + D) + DEVOPS_PATH="${OPTARG}" ;; r) REPOSITORY="${OPTARG}" @@ -136,19 +132,29 @@ while getopts ":hr:R:u:t:-:" o; do REPOSITORY_BASE="${OPTARG}" ;; t) - OSM_DOCKER_TAG="${OPTARG}" + DOCKER_TAG="${OPTARG}" ;; -) [ "${OPTARG}" == "help" ] && usage && exit 0 - continue - ;; + ;; + :) + echo "Option -$OPTARG requires an argument" >&2 + usage && exit 1 + ;; + \?) + echo -e "Invalid option: '-$OPTARG'\n" >&2 + usage && exit 1 + ;; + h) + usage && exit 0 + ;; *) ;; esac done -clean_old_packages +clean_old_repo add_repo "deb [arch=amd64] $REPOSITORY_BASE/$RELEASE $REPOSITORY devops" sudo DEBIAN_FRONTEND=noninteractive apt-get -q update sudo DEBIAN_FRONTEND=noninteractive apt-get install osm-devops -/usr/share/osm-devops/installers/full_install_osm.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D /usr/share/osm-devops -t $DOCKER_TAG "$@" +$DEVOPS_PATH/installers/full_install_osm.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D $DEVOPS_PATH -t $DOCKER_TAG "$@"