diff --git a/scripts/shell/job/gp/install-gp.sh b/scripts/shell/job/gp/install-gp.sh index 69249e2..4f38722 100755 --- a/scripts/shell/job/gp/install-gp.sh +++ b/scripts/shell/job/gp/install-gp.sh @@ -3,19 +3,25 @@ show_help() { echo "Usage: $0 [--files|-f files]" echo "Options:" - echo " --help | -h (Optional) Display help information on how to use this script" - echo " --version | --version (Required) Specify the GP version to install" - echo " --no-download true | --no-dl true (Optional) Make the script not download the files from Artifactory" + echo " --help | -h (Optional) Display help information on how to use this script" + echo " --version | --version (Required) Specify the GP version to install" + echo " --no-download true | --no-dl true (Optional) Make the script not download the files from Artifactory" + echo " --no-webmap true | --no-wm true (Optional) Make the script not install the WebMap module" + echo " --install-apache true (Optional) Make the script install the Apache dependency for WebMap module" } version='' should_download=true +should_install_webmap=true +should_install_apache=false while [ "$#" -gt 0 ]; do case "$1" in --help|-h) show_help; exit ;; --version|-v) version="$2"; shift 2;; --no-download|--no-dl) should_download=false; shift 2;; + --no-webmap|--no-wm) should_install_webmap=false; shift 2;; + --install-apache) should_install_apache=true; shift 2;; *) shift ;; esac done @@ -51,6 +57,36 @@ validate_repo_script() { fi } +get_version_type() { + version=$1 + + if [[ $version == *"-SNAPSHOT" ]];then + echo 'snapshot' + else + echo 'release' + fi +} + +get_maven_repo() { + version=$1 + + case `get_version_type $version` in + 'snapshot') echo 'cpqd-snapshot' ;; + 'release') echo 'cpqd-release' ;; + *) echo "[ERROR] Função \"$FUNCNAME\" recebeu um retorno inválido" ;; + esac +} + +get_artifactory_repo() { + version=$1 + + case `get_version_type $version` in + 'snapshot') echo 'oss-package-dev' ;; + 'release') echo 'oss-package-rel' ;; + *) echo "[ERROR] Função \"$FUNCNAME\" recebeu um retorno inválido" ;; + esac +} + script_explode_java_files_filename='explode-java-files.sh' validate_repo_script $script_explode_java_files_filename @@ -60,22 +96,18 @@ validate_repo_script $script_disable_dbversion_check_filename root_dir=`pwd` # download files +base_url='artifactory.cpqd.com.br/artifactory' +gp_maven_repo=`get_maven_repo $version` +gp_artifactory_repo=`get_artifactory_repo $version` if $should_download; then - base_url='artifactory.cpqd.com.br/artifactory' - artifactory_repo='oss-package-dev' - if [[ $root_dir != *$version ]]; then mkdir $version cd $version root_dir=`pwd` fi - if [[ ${version} != *"-"* ]];then - artifactory_repo='oss-package-rel' - fi - - all_files=(`jf rt search --sort-by=path "${artifactory_repo}/gp/${version}/*" | jq -r '.[].path'`) + all_files=(`jf rt search --sort-by=path "${gp_artifactory_repo}/gp/${version}/*" | jq -r '.[].path'`) for pkg in "${all_files[@]}"; do filename=`basename $pkg` @@ -125,7 +157,6 @@ cd $root_dir/server/configurator/bin chmod +x setup.sh ./setup.sh - deployments_folder=$root_dir/wildfly-8.2.1/ports-01/deployments # adding servergroupname @@ -143,8 +174,114 @@ xmlstarlet ed -L -N x="urn:jboss:domain:2.2" -s "//x:server/x:system-properties" -i "//x:server/x:system-properties/property[last()]" -t attr -n value -v "$hostname" standalone-full.xml # adding ignore database version -cd $deployments_folder/cpqd-configuration.jar +$scripts_folder/$script_disable_dbversion_check_filename --deployments-dir $deployments_folder -cp software-info.xml software-info.xml.old +if !should_install_webmap; then + echo "[INFO] Skipping WebMap installation..." + exit 0 +fi -$scripts_folder/$script_disable_dbversion_check_filename +gp_superparent_pom_filename_wc='cpqd-etics-super-parent-*.pom' +gp_superparent_pom_dl="$gp_maven_repo/br/com/cpqd/etics/parent/cpqd-etics-super-parent/$version/$gp_superparent_pom_filename_wc" +jf rt dl --flat --fail-no-op "$gp_superparent_pom_dl" +gp_superparent_pom_filename=`find . -maxdepth 1 -type f -name "$gp_superparent_pom_filename_wc" -exec basename {} \;` + +if [ -z "$gp_superparent_pom_filename" ]; then + echo "[ERROR] Could not find the $gp_superparent_pom_filename_wc filename" + exit 1 +fi + +cdk_version=`xmlstarlet sel -N pom="http://maven.apache.org/POM/4.0.0" -t -v '/pom:project/pom:parent/pom:version' $gp_superparent_pom_filename` +cdk_maven_repo=`get_maven_repo $cdk_version` + +cdk_superparent_pom_filename_wc='cpqd-super-parent-*.pom' +cdk_superparent_pom_dl="$cdk_maven_repo/br/com/cpqd/parent/cpqd-super-parent/$cdk_version/$cdk_superparent_pom_filename_wc" +jf rt dl --flat --fail-no-op "$cdk_superparent_pom_dl" +cdk_superparent_pom_filename=`find . -maxdepth 1 -type f -name "$cdk_superparent_pom_filename_wc" -exec basename {} \;` + +if [ -z "$cdk_superparent_pom_filename" ]; then + echo "[ERROR] Could not find the $cdk_superparent_pom_filename_wc filename" + exit 1 +fi + +msgs_version=`xmlstarlet sel -N pom="http://maven.apache.org/POM/4.0.0" -t -v '/pom:project/pom:properties/pom:cpqd.msgs.version' $cdk_superparent_pom_filename` + +msgs_maven_repo=`get_maven_repo $msgs_version` + +msgs_package_filename_wc="cpqd-msgs-package-*.zip" +jf rt dl --flat --fail-no-op "$msgs_maven_repo/br/com/cpqd/msgs/package/cpqd-msgs-package/$msgs_version/$msgs_package_filename_wc" +msgs_package_filename=`find . -maxdepth 1 -type f -name "$msgs_package_filename_wc" -exec basename {} \;` + +if [ -z "$msgs_package_filename" ]; then + echo "[ERROR] Could not find the $msgs_package_filename filename" + exit 1 +fi + +msgs_map_filename_wc="cpqd-msgs-map-*.zip" +jf rt dl --flat --fail-no-op "$msgs_maven_repo/br/com/cpqd/msgs/map/cpqd-msgs-map/$msgs_version/$msgs_map_filename_wc" +msgs_map_filename=`find . -maxdepth 1 -type f -name "$msgs_map_filename_wc" -exec basename {} \;` + +if [ -z "$msgs_map_filename" ]; then + echo "[ERROR] Could not find the $msgs_map_filename filename" + exit 1 +fi + +rm $gp_superparent_pom_filename $cdk_superparent_pom_filename + +msgs_package_dir='msgs-package' +unzip -qq -d $msgs_package_dir $msgs_package_filename +mv $msgs_package_dir/**/* $msgs_package_dir + +# TODO, verificar se existe variável de ambiente "JBOSS_HOME" setada +# TODO, verificar se a porta 8080 está sendo usada + +find $msgs_package_dir -type f -name '*.sh' -exec chmod +x {} \; + +unzip -qq wildfly-15.0.0.Final.zip +wildfly15_folder='wildfly-15.0.0.Final' + +$msgs_package_dir/appServerConfigurator/bin/setup.sh + +find $msgs_package_dir -type f -name '*.sh' -exec chmod +x {} \; + +cp server/shared/config/map_info.xml $msgs_package_dir/geoserverConfigurator/config + +mkdir --parents $wildfly15_folder/standalone/data_dir + +$msgs_package_dir/geoserverConfigurator/bin/setup.sh + +unzip -qq -d $wildfly15_folder/standalone server/installation/deployments/mapserver/mapserver-geoserver-data_dir.zip + +unzip -qq -d $wildfly15_folder/standalone/data_dir/www/map $msgs_map_filename + +sed -i 's/8788/8789/g' $wildfly15_folder/bin/runstandalone.sh + +if should_install_apache; then + sudo apt install apache2 + sudo a2enmod proxy + sudo a2enmod proxy_http + + apache2conf_filepath='/etc/apache2/apache2.conf' + hostname_line="ServerName $hostname:8808" + + if ! grep -q "$hostname_line" "$apache2conf_filepath"; then + echo "" | sudo tee --append $apache2conf_filepath + echo "ServerName $hostname:8808" | sudo tee --append $apache2conf_filepath + fi + + apache2portsconf_filepath='/etc/apache2/ports.conf' + sudo sed -i 's/Listen 80/Listen 8808/g' $apache2portsconf_filepath + + apache2proxyconf_filepath='/etc/apache2/mods-enabled/proxy.conf' + text_to_add=("ProxyPreserveHost On" + "ProxyPass /cpqd/ http://$hostname:8180/cpqd/" + "ProxyPassReverse /cpqd/ http://$hostname:8180/cpqd/" + "ProxyPass /geoserver/ http://$hostname:8080/geoserver/" + "ProxyPassReverse /geoserver/ http://$hostname:8080/geoserver/") + + for line in "${text_to_add[@]}"; do + sudo sed -i '/<\/IfModule>/i '"\\ \\ \\ \\ \\ \\ \\ \\ $line" $apache2proxyconf_filepath + done + + sudo systemctl restart apache2 +fi