install_osm.sh: docker network create with appropriate MTU
[osm/devops.git] / installers / install_osm.sh
index e34ee13..a0966e8 100755 (executable)
@@ -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,7 +413,7 @@ 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
@@ -421,12 +421,18 @@ function install_osmclient(){
     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-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(){
@@ -501,7 +507,7 @@ function generate_docker_images() {
     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 +522,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,7 +534,7 @@ 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
 EONG
     echo "Finished deployment of lightweight build"
@@ -543,8 +549,7 @@ function install_osmclient_sol005() {
     pushd ${LWTEMPDIR}/osmclient
     sudo -H python setup.py install
     popd
-    export OSM_HOSTNAME=localhost
-    export OSM_SOL005=True
+    #sed 's,OSM_SOL005=[^$]*,OSM_SOL005=True,' -i ~/.bashrc
     echo 'export OSM_HOSTNAME=localhost' >> ${HOME}/.bashrc
     echo 'export OSM_SOL005=True' >> ${HOME}/.bashrc
 }
@@ -555,14 +560,14 @@ function install_lightweight() {
     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
     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 +643,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"