X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=installers%2Finstall_osm.sh;h=618799f7a7732df08cc16f99b6ede4f37cd7a130;hb=b9bdac3326969af0bbff985433f85b992813471a;hp=e34ee1334cb9bfb3678f533424f851caa59fa713;hpb=46e9959e4f9b74b45bda965f03c314e83450c09e;p=osm%2Fdevops.git diff --git a/installers/install_osm.sh b/installers/install_osm.sh index e34ee133..618799f7 100755 --- a/installers/install_osm.sh +++ b/installers/install_osm.sh @@ -375,7 +375,7 @@ function install_lxd() { lxd waitready lxc network create lxdbr0 ipv4.address=auto ipv4.nat=true ipv6.address=none ipv6.nat=false DEFAULT_INTERFACE=$(route -n | awk '$1~/^0.0.0.0/ {print $8}') - DEFAULT_MTU=$( ip addr show $DEFAULT_INTERFACE | perl -ne 'if (/mtu\s(\d+)/) {print $1;}') + DEFAULT_MTU=$(ip addr show $DEFAULT_INTERFACE | perl -ne 'if (/mtu\s(\d+)/) {print $1;}') lxc profile device set default eth0 mtu $DEFAULT_MTU #sudo systemctl stop lxd-bridge #sudo systemctl --system daemon-reload @@ -413,20 +413,29 @@ function launch_container_from_lxd(){ function install_osmclient(){ CLIENT_RELEASE=${RELEASE#"-R "} CLIENT_REPOSITORY_KEY="OSM%20ETSI%20Release%20Key.gpg" - CLIENT_REPOSITORY="stable" + CLIENT_REPOSITORY=${REPOSITORY#"-r "} [ -z "$REPOSITORY_BASE" ] && REPOSITORY_BASE="-u https://osm-download.etsi.org/repository/osm/debian" CLIENT_REPOSITORY_BASE=${REPOSITORY_BASE#"-u "} key_location=$CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE/$CLIENT_REPOSITORY_KEY curl $key_location | sudo apt-key add - sudo add-apt-repository -y "deb [arch=amd64] $CLIENT_REPOSITORY_BASE/$CLIENT_RELEASE $CLIENT_REPOSITORY osmclient" sudo apt-get update + sudo apt-get install -y python-pip + sudo -H pip install pip==9.0.3 + sudo -H pip install python-magic sudo apt-get install -y python-osmclient - export OSM_HOSTNAME=`lxc list | awk '($2=="SO-ub"){print $6}'` - export OSM_RO_HOSTNAME=`lxc list | awk '($2=="RO"){print $6}'` + #sed 's,OSM_SOL005=[^$]*,OSM_SOL005=True,' -i ${HOME}/.bashrc + #echo 'export OSM_HOSTNAME=localhost' >> ${HOME}/.bashrc + #echo 'export OSM_SOL005=True' >> ${HOME}/.bashrc + [ -z "$INSTALL_LIGHTWEIGHT" ] && export OSM_HOSTNAME=`lxc list | awk '($2=="SO-ub"){print $6}'` + [ -z "$INSTALL_LIGHTWEIGHT" ] && export OSM_RO_HOSTNAME=`lxc list | awk '($2=="RO"){print $6}'` + [ -n "$INSTALL_LIGHTWEIGHT" ] && export OSM_HOSTNAME=localhost echo -e "\nOSM client installed" echo -e "You might be interested in adding the following OSM client env variables to your .bashrc file:" echo " export OSM_HOSTNAME=${OSM_HOSTNAME}" - echo " export OSM_RO_HOSTNAME=${OSM_RO_HOSTNAME}" + [ -n "$INSTALL_LIGHTWEIGHT" ] && echo " export OSM_SOL005=True" + [ -z "$INSTALL_LIGHTWEIGHT" ] && echo " export OSM_RO_HOSTNAME=${OSM_RO_HOSTNAME}" + return 0 } function install_from_lxdimages(){ @@ -482,6 +491,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 @@ -496,12 +513,12 @@ 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 git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/NBI - docker build ${LWTEMPDIR}/NBI -t osm/nbi || ! echo "cannot build NBI docker image" >&2 + docker build ${LWTEMPDIR}/NBI -f ${LWTEMPDIR}/NBI/Dockerfile.local -t osm/nbi || ! echo "cannot build NBI docker image" >&2 git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/RO docker build ${LWTEMPDIR}/RO -f ${LWTEMPDIR}/RO/docker/Dockerfile-local -t osm/ro || ! echo "cannot build RO docker image" >&2 docker build ${LWTEMPDIR}/RO/lcm -t osm/lcm || ! echo "cannot build LCM docker image" >&2 @@ -516,11 +533,11 @@ function generate_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}'` MYSQL_ROOT_PASSWORD=`date +%s | sha256sum | base64 | head -c 32` - echo "OSMLCM_VCA_HOST=${OSMLCM_VCA_HOST}" > ${OSM_DEVOPS}/installers/docker/lcm.env - echo "OSMLCM_VCA_SECRET=${OSMLCM_VCA_SECRET}" >> ${OSM_DEVOPS}/installers/docker/lcm.env - echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" > ${OSM_DEVOPS}/installers/docker/ro-db.env - echo "RO_DB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" > ${OSM_DEVOPS}/installers/docker/ro.env - echo "OS_NOTIFIER_URI=http://${DEFAULT_IP}:8662" > ${OSM_DEVOPS}/installers/docker/mon.env + 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 + echo "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |sudo tee ${OSM_DEVOPS}/installers/docker/ro-db.env + echo "RO_DB_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" |sudo tee ${OSM_DEVOPS}/installers/docker/ro.env + echo "OS_NOTIFIER_URI=http://${DEFAULT_IP}:8662" |sudo tee ${OSM_DEVOPS}/installers/docker/mon.env echo "Finished generation of docker env files" } @@ -528,41 +545,28 @@ function deploy_lightweight() { echo "Deploying lightweight build" newgrp docker << EONG docker swarm init --advertise-addr ${DEFAULT_IP} - docker network create --driver=overlay --attachable netOSM + 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" } -function install_osmclient_sol005() { - sudo apt-get update - sudo apt-get install -y python-pip libcurl4-gnutls-dev libgnutls-dev - git -C ${LWTEMPDIR} clone https://osm.etsi.org/gerrit/osm/osmclient - sudo -H pip install -U pip - sudo -H pip install -U setuptools - pushd ${LWTEMPDIR}/osmclient - sudo -H python setup.py install - popd - export OSM_HOSTNAME=localhost - export OSM_SOL005=True - echo 'export OSM_HOSTNAME=localhost' >> ${HOME}/.bashrc - echo 'export OSM_SOL005=True' >> ${HOME}/.bashrc -} - function install_lightweight() { echo "Installing lightweight build of OSM" LWTEMPDIR="$(mktemp -d -q --tmpdir "installosmlight.XXXXXX")" trap 'rm -rf "${LWTEMPDIR}"' EXIT 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;}') install_juju install_docker_ce + #install_docker_compose generate_docker_images generate_docker_env_files deploy_lightweight - #install_osmclient - #For the moment, the osmclient is installed from the repo - install_osmclient_sol005 + install_osmclient + return 0 } function install_vimemu() { @@ -638,6 +642,7 @@ COMMIT_ID="" ASSUME_YES="" INSTALL_FROM_SOURCE="" RELEASE="-R ReleaseTHREE" +REPOSITORY="-r stable" INSTALL_VIMEMU="" INSTALL_FROM_LXDIMAGES="" LXD_REPOSITORY_BASE="https://osm-download.etsi.org/repository/osm/lxd"