This is an automated email from the ASF dual-hosted git repository. sneethir pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ranger.git
commit e8dd5f11a9527c9ab2b942a556e5eb6a68ed3069 Author: Selvamohan Neethiraj <[email protected]> AuthorDate: Tue Dec 20 21:36:02 2022 -0500 RANGER-4017: removed trailing spaces and tab characters and provided an way to start only required services --- ranger_in_docker | 261 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 145 insertions(+), 116 deletions(-) diff --git a/ranger_in_docker b/ranger_in_docker index 847b16560..2057bde3e 100755 --- a/ranger_in_docker +++ b/ranger_in_docker @@ -18,7 +18,7 @@ # # This script provides an reference implementation of what is specified in -# ./dev-support/ranger-docker/README.md +# ./dev-support/ranger-docker/README.md # # Using this command, you should be able to build and run Apache Ranger # within few minites (in a docker container) @@ -35,9 +35,62 @@ # Also, you can force rebuild of ranger image by setting RANGER_REBUILD=1 # By default, the script will check if a ranger image does not exists and will do ranger build and docker image build. # -# Also, you can force rebuild of ranger using local maven and java based build +# Also, you can force rebuild of ranger using local maven and java based build # instead of building it using Docker based buid by setting DOCKER_MAVEN_BUILD=1. -# +# +# Also, you can optionally start services by setting ENABLED_RANGER_SERVICES env variables +# by defining comma separated optional services as following: +# ENABLED_RANGER_SERVICES="hadoop,hive,hbase,knox,kms" +# List of optional services: +# tagsync,hadoop,hbase,kafka,hive,knox,kms +# + +ENABLED_RANGER_SERVICE_FILE=${HOME}/.ranger_docker_services + +[ -z "${RANGER_DB_TYPE}" ] && RANGER_DB_TYPE="postgres" + +CORE_SERVICES="ranger-base,ranger,ranger-${RANGER_DB_TYPE},ranger-usersync" + +if [ -z "${ENABLED_RANGER_SERVICES}" ] +then + if [ -f ${ENABLED_RANGER_SERVICE_FILE} ] + then + ENABLED_RANGER_SERVICES="`cat ${ENABLED_RANGER_SERVICE_FILE}`" + fi +else + echo "${ENABLED_RANGER_SERVICES}" > ${ENABLED_RANGER_SERVICE_FILE} +fi + +if [ -z "${RANGER_HOME}" ] +then + rhd=`dirname $0` + RANGER_HOME=$(cd ${rhd}; pwd) +fi + +if [ ! -d "${RANGER_HOME}" ] +then + echo "ERROR: directory RANGER_HOME=[${RANGER_HOME}] does not exists." + exit 1 +fi + +RD_HOME=${RANGER_HOME}/dev-support/ranger-docker +export RD_HOME + +cd ${RD_HOME} + +ALL_SERVICES="${CORE_SERVICES} ${ENABLED_RANGER_SERVICES}" + +for service in `echo ${ALL_SERVICES} | sed -e 's:,: :g'` +do + echo "${service}" | grep '^ranger' > /dev/null 2>&1 + if [ $? -eq 0 ] + then + serviceFile="docker-compose.${service}.yml" + else + serviceFile="docker-compose.ranger-${service}.yml" + fi + [ -f ${serviceFile} ] && OPT="${OPT} -f ${serviceFile}" +done # # This is needed to build ranger-base build based on architecture @@ -47,60 +100,48 @@ export DOCKER_BUILDKIT if [ $# -eq 1 ] then - DOCKER_ACTION="$1" + DOCKER_ACTION="$1" else - DOCKER_ACTION="" + DOCKER_ACTION="" fi if [ "${DOCKER_ACTION}" != "up" -a "${DOCKER_ACTION}" != "down" ] then - echo "ERROR: Invalid argument [${DOCKER_ACTION}]" - echo "USAGE: $0 <up|down>" - exit 1 + echo "ERROR: Invalid argument [${DOCKER_ACTION}]" + echo "USAGE: $0 <up|down>" + exit 1 fi docker -v > /dev/null 2>&1 if [ $? -ne 0 ] then - echo "ERROR: You must have a valid DOCKER installed on your system to do a docker build. (error running docker command)" - exit 1 + echo "ERROR: You must have a valid DOCKER installed on your system to do a docker build. (error running docker command)" + exit 1 fi docker-compose --version > /dev/null 2>&1 if [ $? -ne 0 ] then - echo "ERROR: You must have a valid DOCKER installed on your system to do a docker build. (error running docker-compose command)" - exit 1 + echo "ERROR: You must have a valid DOCKER installed on your system to do a docker build. (error running docker-compose command)" + exit 1 fi if [ -z "${DOCKER_MAVEN_BUILD}" ] then - DOCKER_MAVEN_BUILD=0 -fi - -if [ -z "${RANGER_HOME}" ] -then - rhd=`dirname $0` - RANGER_HOME=$(cd ${rhd}; pwd) -fi - -if [ ! -d "${RANGER_HOME}" ] -then - echo "ERROR: directory RANGER_HOME=[${RANGER_HOME}] does not exists." - exit 1 + DOCKER_MAVEN_BUILD=0 fi -RD_HOME=${RANGER_HOME}/dev-support/ranger-docker ENV_FILE=${RD_HOME}/.env +export RANGER_DB_TYPE cd ${RANGER_HOME} if [ ! -f ${ENV_FILE} ] then - echo "ERROR: Environment file [${ENV_FILE}] is missing." - exit 1 + echo "ERROR: Environment file [${ENV_FILE}] is missing." + exit 1 fi build_ranger=0 @@ -111,106 +152,94 @@ cd ${RD_HOME} if [ ${DOCKER_ACTION} == "up" ] then - DOCKER_COMPOSE_FLAGS="-d" - - chmod +x download-archives.sh && ./download-archives.sh - - if [ -z "${RANGER_REBUILD}" ] - then - noOfFiles=`ls -l ${RD_HOME}/dist/*.tar.gz 2> /dev/null| wc -l | awk '{ print $1 }'` - if [ ${noOfFiles} -lt 20 ] - then - #echo "Found only [${noOfFiles}] RANGER tar files. Enabling RANGER BUILD." - build_ranger=1 - build_base_image=1 - #else - #echo "Found [${noOfFiles}] RANGER tar files. Skipping RANGER BUILD. To Force RANGER BUILD, please set RANGER_REBUILD=1 before running this script." - fi - else - #echo "Found [RANGER_REBUILD as ${RANGER_REBUILD}]. Enabling RANGER BUILD." - build_base_image=1 - build_ranger=1 - fi - - - cd ${RD_HOME} - - if [ ${build_base_image} -eq 0 ] - then - docker images ranger-base:latest 2> /dev/null | grep ranger-base > /dev/null 2>&1 - if [ $? -ne 0 ] - then - build_base_image=1 - fi - fi - - if [ ${build_base_image} -eq 1 ] - then - echo "+ docker-compose -f docker-compose.ranger-base.yml build --no-cache" - docker-compose -f docker-compose.ranger-base.yml build --no-cache - fi - - if [ ${build_ranger} -eq 1 ] - then - if [ ${DOCKER_MAVEN_BUILD} -eq 0 ] - then - cd ${RD_HOME} - - echo "+ docker-compose -f docker-compose.ranger-base.yml -f docker-compose.ranger-build.yml down --remove-orphans" - docker-compose -f docker-compose.ranger-base.yml -f docker-compose.ranger-build.yml down --remove-orphans - - echo "+ docker-compose -f docker-compose.ranger-base.yml -f docker-compose.ranger-build.yml up" - docker-compose -f docker-compose.ranger-base.yml -f docker-compose.ranger-build.yml up - if [ $? -ne 0 ] - then - echo "ERROR: Unable to complete RANGER build using DOCKER. Exiting ...." - exit 1 - fi - else - cd ${RANGER_HOME} - mvn clean package -DskipTests - if [ $? -ne 0 ] - then - echo "ERROR: Unable to complete RANGER build. Exiting ...." - exit 1 - fi - cp target/ranger-* ${RD_HOME}/dist - cp target/version ${RD_HOME}/dist - fi - - fi + DOCKER_COMPOSE_FLAGS="-d" + + chmod +x download-archives.sh && ./download-archives.sh + + if [ -z "${RANGER_REBUILD}" ] + then + noOfFiles=`ls -l ${RD_HOME}/dist/*.tar.gz 2> /dev/null| wc -l | awk '{ print $1 }'` + if [ ${noOfFiles} -lt 20 ] + then + #echo "Found only [${noOfFiles}] RANGER tar files. Enabling RANGER BUILD." + build_ranger=1 + build_base_image=1 + #else + #echo "Found [${noOfFiles}] RANGER tar files. Skipping RANGER BUILD. To Force RANGER BUILD, please set RANGER_REBUILD=1 before running this script." + fi + else + #echo "Found [RANGER_REBUILD as ${RANGER_REBUILD}]. Enabling RANGER BUILD." + build_base_image=1 + build_ranger=1 + fi + + + cd ${RD_HOME} + + if [ ${build_base_image} -eq 0 ] + then + docker images ranger-base:latest 2> /dev/null | grep ranger-base > /dev/null 2>&1 + if [ $? -ne 0 ] + then + build_base_image=1 + fi + fi + + if [ ${build_base_image} -eq 1 ] + then + echo "+ docker-compose -f docker-compose.ranger-base.yml build --no-cache" + docker-compose -f docker-compose.ranger-base.yml build --no-cache + fi + + if [ ${build_ranger} -eq 1 ] + then + if [ ${DOCKER_MAVEN_BUILD} -eq 0 ] + then + cd ${RD_HOME} + + echo "+ docker-compose -f docker-compose.ranger-base.yml -f docker-compose.ranger-build.yml down --remove-orphans" + docker-compose -f docker-compose.ranger-base.yml -f docker-compose.ranger-build.yml down --remove-orphans + + echo "+ docker-compose -f docker-compose.ranger-base.yml -f docker-compose.ranger-build.yml up" + docker-compose -f docker-compose.ranger-base.yml -f docker-compose.ranger-build.yml up + if [ $? -ne 0 ] + then + echo "ERROR: Unable to complete RANGER build using DOCKER. Exiting ...." + exit 1 + fi + else + cd ${RANGER_HOME} + mvn clean package -DskipTests + if [ $? -ne 0 ] + then + echo "ERROR: Unable to complete RANGER build. Exiting ...." + exit 1 + fi + cp target/ranger-* ${RD_HOME}/dist + cp target/version ${RD_HOME}/dist + fi + + fi fi + cd ${RD_HOME} -export RANGER_DB_TYPE=postgres - -docker-compose -f docker-compose.ranger-base.yml \ - -f docker-compose.ranger.yml \ - -f docker-compose.ranger-${RANGER_DB_TYPE}.yml \ - -f docker-compose.ranger-usersync.yml \ - -f docker-compose.ranger-tagsync.yml \ - -f docker-compose.ranger-hadoop.yml \ - -f docker-compose.ranger-hbase.yml \ - -f docker-compose.ranger-kafka.yml \ - -f docker-compose.ranger-hive.yml \ - -f docker-compose.ranger-knox.yml \ - -f docker-compose.ranger-kms.yml \ - ${DOCKER_ACTION} ${DOCKER_COMPOSE_FLAGS} +docker-compose ${OPT} ${DOCKER_ACTION} ${DOCKER_COMPOSE_FLAGS} echo echo "################### LIST OF DOCKER PROCESSES EXPOSING PORTS #####################" echo docker container ls --format "table {{.Names}}\t{{.Ports}}" -a | grep ranger | \ - grep -v '^$' | awk '{ for(i = 2 ; i <= NF; i++) { print $1, $i } }' | \ - grep -- '->' | sed -e 's:,::g' | awk '{ s = $2 ; split(s,a, "->") ; f = split(a[1],b,":"); print $1, b[f] }' | \ - sort | uniq | awk '{ printf("SERVICE: %25s ExposedPort: %10s\n", $1, $2 ) ; }' + grep -v '^$' | awk '{ for(i = 2 ; i <= NF; i++) { print $1, $i } }' | \ + grep -- '->' | sed -e 's:,::g' | awk '{ s = $2 ; split(s,a, "->") ; f = split(a[1],b,":"); print $1, b[f] }' | \ + sort | uniq | awk '{ printf("SERVICE: %25s ExposedPort: %10s\n", $1, $2 ) ; }' echo echo "###################################################################################" echo if [ "${DOCKER_ACTION}" == "up" ] then - echo - echo "Now, You can run access RANGER portal via http://localhost:6080 (admin/rangerR0cks!)" - echo + echo + echo "Now, You can run access RANGER portal via http://localhost:6080 (admin/rangerR0cks!)" + echo fi
