X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=scripts%2Finstall-openmano.sh;h=de8a89299c560277f0c44ece37f2063a7035456e;hb=de590c0e5276bb5860aa393e9ee135ac0de73f3b;hp=a1981480d9b5f7a35de649ad5b6725ce1c7a821a;hpb=5b1a664adc703299d10af778802e8ecd12e0cf76;p=osm%2FRO.git diff --git a/scripts/install-openmano.sh b/scripts/install-openmano.sh index a1981480..de8a8929 100755 --- a/scripts/install-openmano.sh +++ b/scripts/install-openmano.sh @@ -36,7 +36,8 @@ function usage(){ echo -e " -h --help: show this help" echo -e " --develop: install last version for developers, and do not configure as a service" echo -e " --forcedb: reinstall mano_db DB, deleting previous database if exists and creating a new one" - echo -e " --force: makes idenpotent, delete previous installations folders if needed" + echo -e " --updatedb: do not reinstall mano_db DB if exist, just update database" + echo -e " --force: makes idenpotent, delete previous installations folders if needed. It assumes --updatedb if --forcedb option is not provided" echo -e " --noclone: assumes that openmano was cloned previously and that this script is run from the local repo" echo -e " --no-install-packages: use this option to skip updating and installing the requires packages. This avoid wasting time if you are sure requires packages are present e.g. because of a previous installation" echo -e " --no-db: do not install mysql server" @@ -61,12 +62,14 @@ function install_packages(){ } GIT_URL=https://osm.etsi.org/gerrit/osm/RO.git +GIT_OVIM_URL=https://osm.etsi.org/gerrit/osm/openvim.git DBUSER="root" DBPASSWD="" DBPASSWD_PARAM="" QUIET_MODE="" DEVELOP="" -FORCEDB="" +DB_FORCE_UPDATE="" +UPDATEDB="" FORCE="" NOCLONE="" NO_PACKAGES="" @@ -90,8 +93,9 @@ while getopts ":u:p:hiq-:" o; do -) [ "${OPTARG}" == "help" ] && usage && exit 0 [ "${OPTARG}" == "develop" ] && DEVELOP="y" && continue - [ "${OPTARG}" == "forcedb" ] && FORCEDB="y" && continue - [ "${OPTARG}" == "force" ] && FORCEDB="y" && FORCE="y" && continue + [ "${OPTARG}" == "forcedb" ] && DB_FORCE_UPDATE="${DB_FORCE_UPDATE}--forcedb" && continue + [ "${OPTARG}" == "updatedb" ] && DB_FORCE_UPDATE="${DB_FORCE_UPDATE}--updatedb" && continue + [ "${OPTARG}" == "force" ] && FORCE="y" && continue [ "${OPTARG}" == "noclone" ] && NOCLONE="y" && continue [ "${OPTARG}" == "quiet" ] && export QUIET_MODE=yes && export DEBIAN_FRONTEND=noninteractive && continue [ "${OPTARG}" == "no-install-packages" ] && export NO_PACKAGES=yes && continue @@ -114,6 +118,13 @@ while getopts ":u:p:hiq-:" o; do esac done +if [ "$DB_FORCE_UPDATE" == "--forcedb--updatedb" ] || [ "$DB_FORCE_UPDATE" == "--updatedb--forcedb" ] ; then + echo "Error: options --forcedb and --updatedb are mutually exclusive" >&2 + exit 1 +elif [ -n "$FORCE" ] && [ -z "$DB_FORCE_UPDATE" ] ; then + DB_FORCE_UPDATE="--updatedb" +fi + #check root privileges and non a root user behind [ "$USER" != "root" ] && echo "Needed root privileges" >&2 && exit 1 if [[ -z "$SUDO_USER" ]] || [[ "$SUDO_USER" = "root" ]] @@ -126,7 +137,7 @@ fi #Discover Linux distribution #try redhat type [ -f /etc/redhat-release ] && _DISTRO=$(cat /etc/redhat-release 2>/dev/null | cut -d" " -f1) -#if not assuming ubuntu type +#else assuming ubuntu type [ -f /etc/redhat-release ] || _DISTRO=$(lsb_release -is 2>/dev/null) if [ "$_DISTRO" == "Ubuntu" ] then @@ -177,8 +188,7 @@ else OPENMANO_BASEFOLDER=$(dirname $HERE) fi - -if [[ -z "$NO_PACKAGES" ]] +if [[ -z "$NO_PACKAGES" ]] #if (UPDATE REPOS) then echo ' ################################################################# @@ -192,17 +202,20 @@ echo ' && sudo rpm -ivh epel-release-7-5.noarch.rpm && sudo yum install -y epel-release && rm -f epel-release-7-5.noarch.rpm [ "$_DISTRO" == "CentOS" -o "$_DISTRO" == "Red" ] && sudo yum repolist -fi +fi #if (UPDATE REPOS) -if [[ -z "$NO_PACKAGES" ]] +if [[ -z "$NO_PACKAGES" ]] #if (INSTALL DEPENDENCIES) then echo ' ################################################################# ##### INSTALL REQUIRED PACKAGES ##### #################################################################' -[ "$_DISTRO" == "Ubuntu" ] && install_packages "git screen wget mysql-client" -[ "$_DISTRO" == "CentOS" -o "$_DISTRO" == "Red" ] && install_packages "git screen wget mariadb-client" +[ "$_DISTRO" == "Ubuntu" ] && install_packages "git make screen wget mysql-client" +[ "$_DISTRO" == "CentOS" -o "$_DISTRO" == "Red" ] && install_packages "git make screen wget mariadb-client" +fi #if (INSTALL DEPENDENCIES) +if [[ -z "$NO_PACKAGES" ]] #if (PYTHON PACKAGES AND PIP PACKAGES) +then echo ' ################################################################# ##### INSTALL PYTHON PACKAGES ##### @@ -219,14 +232,14 @@ sudo pip install progressbar sudo pip install prettytable sudo pip install pyvmomi -#requiered for AWS connector +#required for AWS connector [ "$_DISTRO" == "Ubuntu" ] && install_packages "python-boto" [ "$_DISTRO" == "CentOS" -o "$_DISTRO" == "Red" ] && install_packages "python-boto" #TODO check if at Centos it exist with this name, or PIP should be used #install openstack client needed for using openstack as a VIM [ "$_DISTRO" == "Ubuntu" ] && install_packages "python-novaclient python-keystoneclient python-glanceclient python-neutronclient python-cinderclient" [ "$_DISTRO" == "CentOS" -o "$_DISTRO" == "Red" ] && install_packages "python-devel" && easy_install python-novaclient python-keystoneclient python-glanceclient python-neutronclient python-cinderclient #TODO revise if gcc python-pip is needed -fi #[[ -z "$NO_PACKAGES" ]] +fi #if (PYTHON PACKAGES AND PIP PACKAGES) if [[ -z $NOCLONE ]]; then echo ' @@ -235,9 +248,23 @@ if [[ -z $NOCLONE ]]; then #################################################################' su $SUDO_USER -c "git clone ${GIT_URL} ${OPENMANO_BASEFOLDER}" su $SUDO_USER -c "cp ${OPENMANO_BASEFOLDER}/.gitignore-common ${OPENMANO_BASEFOLDER}/.gitignore" - [[ -z $DEVELOP ]] && su $SUDO_USER -c "git -C ${OPENMANO_BASEFOLDER} checkout tags/v1.0.2" + [[ -z $DEVELOP ]] && su $SUDO_USER -c "git -C ${OPENMANO_BASEFOLDER} checkout v2.0" fi +echo ' +################################################################# +##### INSTALLING OVIM LIBRARY ##### +#################################################################' +su $SUDO_USER -c "git -C ${OPENMANO_BASEFOLDER} clone ${GIT_OVIM_URL} openvim" +[[ -z $DEVELOP ]] && su $SUDO_USER -c "git -C ${OPENMANO_BASEFOLDER}/openvim checkout v2.0" +trap 'rm -rf "${OPENMANO_BASEFOLDER}/openvim"' EXIT + +# Install debian dependencies before setup.py +[ "$_DISTRO" == "Ubuntu" ] && install_packages "libmysqlclient-dev" +[ "$_DISTRO" == "CentOS" -o "$_DISTRO" == "Red" ] && install_packages "libmysqlclient-dev" #TODO check if that's the name in CentOS and RedHat +make -C ${OPENMANO_BASEFOLDER}/openvim lite +OSMLIBOVIM_PATH=`python -c 'import lib_osm_openvim; print lib_osm_openvim.__path__[0]'` + if [ "$_DISTRO" == "CentOS" -o "$_DISTRO" == "Red" ] then echo ' @@ -282,7 +309,7 @@ then su $SUDO_USER -c 'rm -f ${HOME}/bin/service-openmano' su $SUDO_USER -c "ln -s '${OPENMANO_BASEFOLDER}/openmano' "'${HOME}/bin/openmano' su $SUDO_USER -c "ln -s '${OPENMANO_BASEFOLDER}/scripts/openmano-report.sh' "'${HOME}/bin/openmano-report' - su $SUDO_USER -c "ln -s '${OPENMANO_BASEFOLDER}/scripts/service-openmano.sh' "'${HOME}/bin/service-openmano' + su $SUDO_USER -c "ln -s '${OPENMANO_BASEFOLDER}/scripts/service-openmano' "'${HOME}/bin/service-openmano' #insert /home//bin in the PATH #skiped because normally this is done authomatically when ~/bin exist @@ -320,10 +347,14 @@ echo ' if [ -n "$QUIET_MODE" ]; then DB_QUIET='-q' fi - if [ -n "$FORCEDB" ]; then - DB_FORCE='--forcedb' - fi - ${OPENMANO_BASEFOLDER}/scripts/install-db-server.sh -u $DBUSER $DBPASSWD_PARAM $DB_QUIET $DB_FORCE || exit 1 + ${OPENMANO_BASEFOLDER}/database_utils/install-db-server.sh -U $DBUSER ${DBPASSWD_PARAM/p/P} $DB_QUIET $DB_FORCE_UPDATE || exit 1 +echo ' +################################################################# +##### CREATE AND INIT MANO_VIM DATABASE ##### +#################################################################' +# Install mano_vim_db after setup + ${OSMLIBOVIM_PATH}/database_utils/install-db-server.sh -U $DBUSER ${DBPASSWD_PARAM/p/P} -u mano -p manopw -d mano_vim_db $DB_QUIET $DB_FORCE_UPDATE || exit 1 + fi if [[ -n "$INSTALL_AS_A_SERVICE" ]] @@ -340,14 +371,14 @@ echo ' echo echo "Done! installed at /opt/openmano" - echo " Manage server with 'sudo service openmano start|stop|status|...' " + echo " Manage server with 'sudo service osm-ro start|stop|status|...' " else echo echo "Done! you may need to logout and login again for loading client configuration" - echo " Run './${OPENMANO_BASEFOLDER}/scripts/service-openmano.sh start' for starting openmano in a screen" + echo " Run './${OPENMANO_BASEFOLDER}/scripts/service-openmano start' for starting openmano in a screen" fi