aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Morales <victor.morales@intel.com>2018-04-10 13:58:09 -0700
committerVictor Morales <victor.morales@intel.com>2018-04-10 13:58:09 -0700
commit80633ad073cdb925b2d76ba6f7b79cb071ba2354 (patch)
treeccb4e69f45e04eda7f6ce0ec3416dcb521fccfca
parentef7b4aca7e3b9fe06bdaa4a9e979bdb02d85a674 (diff)
Move install_* functions
The install_* functions can be controlled better in a separate script file. This change moves them into a _installers script. Change-Id: I7c7993d44478e5d311b425ecbaf712154dd97bd3 Signed-off-by: Victor Morales <victor.morales@intel.com> Issue-ID: INT-463
-rwxr-xr-xlib/_commons (renamed from lib/commons)0
-rwxr-xr-xlib/_installers220
-rwxr-xr-xlib/functions219
3 files changed, 222 insertions, 217 deletions
diff --git a/lib/commons b/lib/_commons
index 90f73d2..90f73d2 100755
--- a/lib/commons
+++ b/lib/_commons
diff --git a/lib/_installers b/lib/_installers
new file mode 100755
index 0000000..4011119
--- /dev/null
+++ b/lib/_installers
@@ -0,0 +1,220 @@
+#!/bin/bash
+
+source /var/onap/_commons
+source /var/onap/_onap_functions
+
+# _install_bind() - Install bind utils
+function _install_bind {
+ install_packages bind9 bind9utils
+}
+
+# install_java() - Install java binaries
+function install_java {
+ if is_package_installed openjdk-8-jdk; then
+ return
+ fi
+ source /etc/os-release || source /usr/lib/os-release
+ case ${ID,,} in
+ *suse)
+ ;;
+ ubuntu|debian)
+ install_package software-properties-common
+ add-apt-repository -y ppa:openjdk-r/ppa
+ ;;
+ rhel|centos|fedora)
+ ;;
+ esac
+ update_repos
+
+ # Remove Java 7
+ uninstall_packages default-jre openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless
+
+ install_package openjdk-8-jdk
+ # ca-certificates-java is not a dependency in the Oracle JDK/JRE so this must be explicitly installed.
+ /var/lib/dpkg/info/ca-certificates-java.postinst configure
+}
+
+# install_maven() - Install maven binaries
+function install_maven {
+ if is_package_installed maven3; then
+ return
+ fi
+ install_java
+ source /etc/os-release || source /usr/lib/os-release
+ case ${ID,,} in
+ *suse)
+ ;;
+ ubuntu|debian)
+ install_package software-properties-common
+ add-apt-repository -y ppa:andrei-pozolotin/maven3
+ ;;
+ rhel|centos|fedora)
+ ;;
+ esac
+ update_repos
+ install_package maven3
+
+ # Remove Java 7
+ uninstall_package openjdk-7-jdk
+
+ _configure_maven
+}
+
+# install_nodejs() - Download and install NodeJS
+function install_nodejs {
+ if is_package_installed nodejs; then
+ return
+ fi
+ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
+ install_package nodejs
+
+ # Update NPM to latest version
+ npm install npm -g
+}
+
+# install_python() - Install Python 2.7 and other tools necessary for development.
+function install_python {
+ install_packages python2.7 python-dev
+}
+
+# _install_pip() - Install Python Package Manager
+function _install_pip {
+ install_python
+ if ! which pip; then
+ curl -sL https://bootstrap.pypa.io/get-pip.py | python
+ fi
+}
+
+# install_python_package() - Install python modules
+function install_python_package {
+ local python_packages=$@
+
+ _install_pip
+ pip install $python_packages
+}
+
+# install_python_requirements() - Install a list of python modules defined in requirement.txt file
+function install_python_requirements {
+ local python_project_path=$1
+
+ _install_pip
+ pushd $python_project_path
+ pip install -r requirements.txt
+ popd
+}
+
+# _configure_docker_settings() - Configures Docker settings
+function _configure_docker_settings {
+ local docker_conf_backup=/tmp/docker.backup
+ local docker_conf=/etc/default/docker
+ local chameleonsocks_filename=chameleonsocks.sh
+ local max_concurrent_downloads=${1:-3}
+
+ cp ${docker_conf} ${docker_conf_backup}
+ if [ $http_proxy ]; then
+ echo "export http_proxy=$http_proxy" >> $docker_conf
+ fi
+ if [ $https_proxy ]; then
+ echo "export https_proxy=$https_proxy" >> $docker_conf
+ #If you have a socks proxy, then use that to connect to the nexus repo
+ #via a redsocks container
+ if [ $socks_proxy ]; then
+ wget https://raw.githubusercontent.com/crops/chameleonsocks/master/$chameleonsocks_filename
+ chmod 755 $chameleonsocks_filename
+ socks=$(echo $socks_proxy | sed -e "s/^.*\///" | sed -e "s/:.*$//")
+ port=$(echo $socks_proxy | sed -e "s/^.*://")
+ PROXY=$socks PORT=$port ./$chameleonsocks_filename --install
+ rm $chameleonsocks_filename
+ cp ${docker_conf_backup} ${docker_conf}
+ fi
+ fi
+ rm ${docker_conf_backup}
+
+ echo "DOCKER_OPTS=\"-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --max-concurrent-downloads $max_concurrent_downloads \"" >> $docker_conf
+ usermod -aG docker $USER
+
+ source /etc/os-release || source /usr/lib/os-release
+ case ${ID,,} in
+ *suse)
+ ;;
+ ubuntu|debian)
+ service docker restart
+ sleep 10
+ ;;
+ rhel|centos|fedora)
+ ;;
+ esac
+}
+
+# install_docker() - Download and install docker-engine
+function install_docker {
+ if $(docker version &>/dev/null); then
+ return
+ fi
+ source /etc/os-release || source /usr/lib/os-release
+ case ${ID,,} in
+ *suse)
+ ;;
+ ubuntu|debian)
+ install_packages software-properties-common linux-image-extra-$(uname -r) linux-image-extra-virtual apt-transport-https ca-certificates curl
+ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
+ add-apt-repository \
+ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
+ $(lsb_release -cs) stable"
+ ;;
+ rhel|centos|fedora)
+ ;;
+ esac
+ update_repos
+
+ install_package docker-ce
+ _configure_docker_settings
+}
+
+# install_docker_compose() - Download and install docker-engine
+function install_docker_compose {
+ local docker_compose_version=${1:-1.12.0}
+ if [ ! -d /opt/docker ]; then
+ mkdir /opt/docker
+ curl -L https://github.com/docker/compose/releases/download/$docker_compose_version/docker-compose-`uname -s`-`uname -m` > /opt/docker/docker-compose
+ chmod +x /opt/docker/docker-compose
+ fi
+}
+
+# install_chefdk() - Install ChefDK package
+function install_chefdk {
+ local chefdk_version="2.4.17"
+
+ if is_package_installed chefdk; then
+ return
+ fi
+ pushd $(mktemp -d)
+ source /etc/os-release || source /usr/lib/os-release
+ case ${ID,,} in
+ *suse)
+ ;;
+ ubuntu|debian)
+ chefdk_pkg="chefdk_$chefdk_version-1_amd64.deb"
+ chefdk_url="https://packages.chef.io/files/stable/chefdk/$chefdk_version/ubuntu/$VERSION_ID/$chefdk_pkg"
+
+ wget $chefdk_url
+ dpkg -i $chefdk_pkg
+ apt-get install -f -y
+ ;;
+ rhel|centos|fedora)
+ rpm -Uvh "https://packages.chef.io/files/stable/chefdk/$chefdk_version/el/7/chefdk-$chefdk_version-1.el7.x86_64.rpm"
+ ;;
+ esac
+ popd
+}
+
+# _install_ODL() - Download and Install OpenDayLight SDN controller
+function _install_ODL {
+ if [ ! -d /opt/opendaylight/current ]; then
+ mkdir -p /opt/opendaylight/
+ wget "https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/distribution-karaf/"$odl_version"/distribution-karaf-"$odl_version".tar.gz" -P /opt/
+ tar xvf "/opt/distribution-karaf-"$odl_version".tar.gz" -C /tmp/
+ mv "/tmp/distribution-karaf-"$odl_version /opt/opendaylight/current
+ rm -rf "/opt/distribution-karaf-"$odl_version".tar.gz"
+ fi
+}
diff --git a/lib/functions b/lib/functions
index 08e5655..265a34c 100755
--- a/lib/functions
+++ b/lib/functions
@@ -1,9 +1,10 @@
#!/bin/bash
-source /var/onap/commons
+source /var/onap/_commons
source /var/onap/config/env-vars
source /var/onap/_composed_functions
source /var/onap/_onap_functions
+source /var/onap/_installers
export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' |sort -n | head -1)
export NIC=$(ip route get 8.8.8.8 | awk '{ print $5; exit }')
@@ -73,174 +74,6 @@ function clone_repos {
done
}
-# _install_bind() - Install bind utils
-function _install_bind {
- install_packages bind9 bind9utils
-}
-
-# install_java() - Install java binaries
-function install_java {
- if is_package_installed openjdk-8-jdk; then
- return
- fi
- source /etc/os-release || source /usr/lib/os-release
- case ${ID,,} in
- *suse)
- ;;
- ubuntu|debian)
- install_package software-properties-common
- add-apt-repository -y ppa:openjdk-r/ppa
- ;;
- rhel|centos|fedora)
- ;;
- esac
- update_repos
-
- # Remove Java 7
- uninstall_packages default-jre openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless
-
- install_package openjdk-8-jdk
- # ca-certificates-java is not a dependency in the Oracle JDK/JRE so this must be explicitly installed.
- /var/lib/dpkg/info/ca-certificates-java.postinst configure
-}
-
-# install_maven() - Install maven binaries
-function install_maven {
- if is_package_installed maven3; then
- return
- fi
- install_java
- source /etc/os-release || source /usr/lib/os-release
- case ${ID,,} in
- *suse)
- ;;
- ubuntu|debian)
- install_package software-properties-common
- add-apt-repository -y ppa:andrei-pozolotin/maven3
- ;;
- rhel|centos|fedora)
- ;;
- esac
- update_repos
- install_package maven3
-
- # Remove Java 7
- uninstall_package openjdk-7-jdk
-
- _configure_maven
-}
-
-# _configure_docker_settings() - Configures Docker settings
-function _configure_docker_settings {
- local docker_conf_backup=/tmp/docker.backup
- local docker_conf=/etc/default/docker
- local chameleonsocks_filename=chameleonsocks.sh
- local max_concurrent_downloads=${1:-3}
-
- cp ${docker_conf} ${docker_conf_backup}
- if [ $http_proxy ]; then
- echo "export http_proxy=$http_proxy" >> $docker_conf
- fi
- if [ $https_proxy ]; then
- echo "export https_proxy=$https_proxy" >> $docker_conf
- #If you have a socks proxy, then use that to connect to the nexus repo
- #via a redsocks container
- if [ $socks_proxy ]; then
- wget https://raw.githubusercontent.com/crops/chameleonsocks/master/$chameleonsocks_filename
- chmod 755 $chameleonsocks_filename
- socks=$(echo $socks_proxy | sed -e "s/^.*\///" | sed -e "s/:.*$//")
- port=$(echo $socks_proxy | sed -e "s/^.*://")
- PROXY=$socks PORT=$port ./$chameleonsocks_filename --install
- rm $chameleonsocks_filename
- cp ${docker_conf_backup} ${docker_conf}
- fi
- fi
- rm ${docker_conf_backup}
-
- echo "DOCKER_OPTS=\"-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --max-concurrent-downloads $max_concurrent_downloads \"" >> $docker_conf
- usermod -aG docker $USER
-
- source /etc/os-release || source /usr/lib/os-release
- case ${ID,,} in
- *suse)
- ;;
- ubuntu|debian)
- service docker restart
- sleep 10
- ;;
- rhel|centos|fedora)
- ;;
- esac
-}
-
-# install_nodejs() - Download and install NodeJS
-function install_nodejs {
- if is_package_installed nodejs; then
- return
- fi
- curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
- install_package nodejs
-
- # Update NPM to latest version
- npm install npm -g
-}
-
-# install_python() - Install Python 2.7 and other tools necessary for development.
-function install_python {
- install_packages python2.7 python-dev
-}
-
-# _install_pip() - Install Python Package Manager
-function _install_pip {
- install_python
- if ! which pip; then
- curl -sL https://bootstrap.pypa.io/get-pip.py | python
- fi
-}
-
-# install_python_package() - Install python modules
-function install_python_package {
- local python_packages=$@
-
- _install_pip
- pip install $python_packages
-}
-
-# install_python_requirements() - Install a list of python modules defined in requirement.txt file
-function install_python_requirements {
- local python_project_path=$1
-
- _install_pip
- pushd $python_project_path
- pip install -r requirements.txt
- popd
-}
-
-# install_docker() - Download and install docker-engine
-function install_docker {
- if $(docker version &>/dev/null); then
- return
- fi
- source /etc/os-release || source /usr/lib/os-release
- case ${ID,,} in
- *suse)
- ;;
- ubuntu|debian)
- install_packages software-properties-common linux-image-extra-$(uname -r) linux-image-extra-virtual apt-transport-https ca-certificates curl
- curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- add-apt-repository \
- "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
- $(lsb_release -cs) stable"
- ;;
- rhel|centos|fedora)
- ;;
- esac
- update_repos
-
- install_package docker-ce
- _configure_docker_settings
-}
-
# pull_docker_image() - Pull Docker container image from the Public Docker Registry Hub
function pull_docker_image {
install_docker
@@ -283,54 +116,6 @@ function run_docker_compose {
popd
}
-# install_docker_compose() - Download and install docker-engine
-function install_docker_compose {
- local docker_compose_version=${1:-1.12.0}
- if [ ! -d /opt/docker ]; then
- mkdir /opt/docker
- curl -L https://github.com/docker/compose/releases/download/$docker_compose_version/docker-compose-`uname -s`-`uname -m` > /opt/docker/docker-compose
- chmod +x /opt/docker/docker-compose
- fi
-}
-
-# install_chefdk() - Install ChefDK package
-function install_chefdk {
- local chefdk_version="2.4.17"
-
- if is_package_installed chefdk; then
- return
- fi
- pushd $(mktemp -d)
- source /etc/os-release || source /usr/lib/os-release
- case ${ID,,} in
- *suse)
- ;;
- ubuntu|debian)
- chefdk_pkg="chefdk_$chefdk_version-1_amd64.deb"
- chefdk_url="https://packages.chef.io/files/stable/chefdk/$chefdk_version/ubuntu/$VERSION_ID/$chefdk_pkg"
-
- wget $chefdk_url
- dpkg -i $chefdk_pkg
- apt-get install -f -y
- ;;
- rhel|centos|fedora)
- rpm -Uvh "https://packages.chef.io/files/stable/chefdk/$chefdk_version/el/7/chefdk-$chefdk_version-1.el7.x86_64.rpm"
- ;;
- esac
- popd
-}
-
-# _install_ODL() - Download and Install OpenDayLight SDN controller
-function _install_ODL {
- if [ ! -d /opt/opendaylight/current ]; then
- mkdir -p /opt/opendaylight/
- wget "https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/distribution-karaf/"$odl_version"/distribution-karaf-"$odl_version".tar.gz" -P /opt/
- tar xvf "/opt/distribution-karaf-"$odl_version".tar.gz" -C /tmp/
- mv "/tmp/distribution-karaf-"$odl_version /opt/opendaylight/current
- rm -rf "/opt/distribution-karaf-"$odl_version".tar.gz"
- fi
-}
-
# start_ODL() - Start OpenDayLight SDN controller
function start_ODL {
_install_ODL