Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support unix config file at ~/.rd/rd.conf #56

Merged
merged 2 commits into from
Jan 10, 2017
Merged

Conversation

gschueler
Copy link
Member

for #54

@gschueler gschueler merged commit 52a181a into master Jan 10, 2017
@gschueler gschueler deleted the rundeck-cli-54 branch January 10, 2017 22:39
@isuftin
Copy link

isuftin commented Jan 18, 2017

Regarding this feature, I am using cli 1.0.4 and I've tried having ~/.rd/rd.conf with the contents:

RD_URL=http://localhost:4440

But it doesn't seem as though rd cli picks this file up. It seems to work when I create the environment variable manually.

I've also tried:

export RD_URL=http://localhost:4440

Thoughts?

@isuftin
Copy link

isuftin commented Jan 18, 2017

[rundeck@server-updated-centos-68 ~]$ rd
No command was specified.

- RD - Rundeck API Client Tool (v1.0.4) - https://rundeck.github.io/rundeck-cli/


    .:'/*/'`:,·:~·:.,              ,._., ._
   /::/:/:::/:::;::::::/`':.,'       /::::::::::'/:/:~-.,
 /·*'`·´¯'`^·-~·:-'::;:::'`;     /:-·:;:-·~·';/:::::::::`·-.
 '\                       '`;::'i   ';           '`~-:;:::::::::'`,
   '`;        , .,        'i:'/     ',.                 '`·-:;:::::'i'
     i       i':/:::';       ;/'        `'i      ,_            '`;:::'¦
     i       i/:·'´       ,:''           'i      ;::/`:,          i'::/
     '; '    ,:,     ~;'´:::'`:,       _;     ;:/;;;;:';        ¦'/
     'i      i:/\       `;::::/:'`;'   /::';   ,':/::::::;'       ,´
      ;     ;/   \       '`:/::::/',/-:;_i  ,'/::::;·´        ,'´
      ';   ,'       \         '`;/' '`·.     `'¯¯     '   , ·'´
       `'*´          '`~·-·^'´        `' ~·- .,. -·~ ´
                                           '

Available commands:

   adhoc      - Run adhoc command or script on matching nodes
   executions - List running executions, attach and follow their output, or kill them
   jobs       - List and manage Jobs
   keys       - Manage Keys via the Key Storage Facility.
   nodes      - List and manage node resources
   projects   - List and manage projects
   run        - Run a Job
   scheduler  - View scheduler information
   system     - View system information
   tokens     - Create, and manage tokens

Use "rd [command] help" to get help on any command.
[rundeck@server-updated-centos-68 ~]$ rd system
Input error for [info]: Environment variable RD_URL is required: Please specify the Rundeck base URL, e.g. http://host:port or http://host:port/api/14
You can use: "info help" to get help.
[rundeck@server-updated-centos-68 ~]$ cat ~/.rd/rd.conf
RD_URL=http://localhost:4440

@gschueler
Copy link
Member Author

it should work with export RD_URL=http://localhost:4440

does the rd script have the added line sourcing that file?

@isuftin
Copy link

isuftin commented Jan 18, 2017

It does not seem to unless I am reading it wrong...

#!/usr/bin/env bash

##############################################################################
##
##  rd start up script for UN*X
##
##############################################################################

# Add default JVM options here. You can also use JAVA_OPTS and RD_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""

APP_NAME="rd"
APP_BASE_NAME=`basename "$0"`

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"

warn ( ) {
    echo "$*"
}

die ( ) {
    echo
    echo "$*"
    echo
    exit 1
}

# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
  CYGWIN* )
    cygwin=true
    ;;
  Darwin* )
    darwin=true
    ;;
  MINGW* )
    msys=true
    ;;
esac

# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi

# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
    ls=`ls -ld "$PRG"`
    link=`expr "$ls" : '.*-> \(.*\)$'`
    if expr "$link" : '/.*' > /dev/null; then
        PRG="$link"
    else
        PRG=`dirname "$PRG"`"/$link"
    fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/.." >&-
APP_HOME="`pwd -P`"
cd "$SAVED" >&-

# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
        # IBM's JDK on AIX uses strange locations for the executables
        JAVACMD="$JAVA_HOME/jre/sh/java"
    else
        JAVACMD="$JAVA_HOME/bin/java"
    fi
    if [ ! -x "$JAVACMD" ] ; then
        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
    fi
else
    JAVACMD="java"
    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi

# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
    MAX_FD_LIMIT=`ulimit -H -n`
    if [ $? -eq 0 ] ; then
        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
            MAX_FD="$MAX_FD_LIMIT"
        fi
        ulimit -n $MAX_FD
        if [ $? -ne 0 ] ; then
            warn "Could not set maximum file descriptor limit: $MAX_FD"
        fi
    else
        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
    fi
fi

# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi


# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
    APP_HOME=`cygpath --path --mixed "$APP_HOME"`

    # We build the pattern for arguments to be converted via cygpath
    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
    SEP=""
    for dir in $ROOTDIRSRAW ; do
        ROOTDIRS="$ROOTDIRS$SEP$dir"
        SEP="|"
    done
    OURCYGPATTERN="(^($ROOTDIRS))"
    # Add a user-defined pattern to the cygpath arguments
    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
    fi
    # Now convert the arguments - kludge to limit ourselves to /bin/sh
    i=0
    for arg in "$@" ; do
        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option

        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
        else
            eval `echo args$i`="\"$arg\""
        fi
        i=$((i+1))
    done
    case $i in
        (0) set -- ;;
        (1) set -- "$args0" ;;
        (2) set -- "$args0" "$args1" ;;
        (3) set -- "$args0" "$args1" "$args2" ;;
        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
    esac
fi

# Split up the JVM_OPTS And RD_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
    JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $RD_OPTS


exec "$JAVACMD" "${JVM_OPTS[@]}" -jar $APP_HOME/lib/rundeck-cli-1.0.4-all.jar "$@"

isuftin added a commit to isuftin/rundeck-server that referenced this pull request Jan 18, 2017
Fixed installation for Rundeck 2.7.x
Added CLI installation recipe

CLI installation should be fine fo this cookbook. Rundeck CLI may need to cut another release of their project
See: rundeck/rundeck-cli#56
@gschueler
Copy link
Member Author

ok, i think the "shadow" distribution is not picking up the same change to the rd script, so I will need to fix that

@gschueler
Copy link
Member Author

reopened as #60

kamaradclimber pushed a commit to criteo-cookbooks/rundeck-server that referenced this pull request Jan 19, 2017
Fixed installation for Rundeck 2.7.x
Added CLI installation recipe

CLI installation should be fine fo this cookbook. Rundeck CLI may need to cut another release of their project
See: rundeck/rundeck-cli#56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants