X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=utils%2Fjenkins-jnlp-connect.sh;h=0647d321061aaff7f4e30f3ab6641e81a864dafc;hb=7cda68e923b53836eb74c1fb14220b1ad3385af2;hp=be9fe184d6c9e806fa4fc82403d70a946c25fc70;hpb=ab218eec83bf85c3d389a4ea1f8f321f08e31279;p=releng.git diff --git a/utils/jenkins-jnlp-connect.sh b/utils/jenkins-jnlp-connect.sh index be9fe184d..0647d3210 100755 --- a/utils/jenkins-jnlp-connect.sh +++ b/utils/jenkins-jnlp-connect.sh @@ -11,10 +11,13 @@ #Monit setup script for opnfv jnlp slave connections test_firewall() { - echo "testing that the firewall is open for us at build.opnfv.org" - test=$(echo "blah"| nc -w 4 build.opnfv.org 57387 > /dev/null 2>&1; echo $?) +jenkins_hostname="${jenkins_hostname:-build.opnfv.org}" + + + echo "testing that the firewall is open for us at $jenkins_hostname" + test=$(echo "blah"| nc -w 4 $jenkins_hostname 57387 > /dev/null 2>&1; echo $?) if [[ $test == 0 ]]; then - echo "Firewall is open for us at build.opnfv.org" + echo "Firewall is open for us at $jenkins_hostname" exit 0 else cat << EOF @@ -52,7 +55,7 @@ main () { fi if [[ $(whoami) != "root" ]]; then - if sudo -l | grep "requiretty"; then + if sudo -l | grep "requiretty" | grep -v "\!requiretty"; then echo "please comment out Defaults requiretty from /etc/sudoers" exit 1 fi @@ -61,8 +64,8 @@ main () { #make pid dir pidfile="/var/run/$jenkinsuser/jenkins_jnlp_pid" if ! [ -d /var/run/$jenkinsuser/ ]; then - mkdir /var/run/$jenkinsuser/ - chown $jenkinsuser:$jenkinsuser /var/run/$jenkinsuser/ + sudo mkdir /var/run/$jenkinsuser/ + sudo chown $jenkinsuser:$jenkinsuser /var/run/$jenkinsuser/ fi if [[ $skip_monit != true ]]; then @@ -84,21 +87,30 @@ main () { if [ -d /etc/monit/conf.d ]; then monitconfdir="/etc/monit/conf.d/" + monitconfig="/etc/monit/monitrc" + #add start delay + sed -i '/^#.* delay /s/^#//' "$monitconfig" elif [ -d /etc/monit.d ]; then monitconfdir="/etc/monit.d" + monitconfig="/etc/monitrc" + #add start delay + sed -i '/^#.* delay /s/^#//' "$monitconfig" else echo "Could not determine the location of the monit configuration file." echo "Make sure monit is installed." exit 1 fi + chown=$(type -p chown) + mkdir=$(type -p mkdir) + makemonit () { echo "Writing the following as monit config:" cat << EOF | tee $monitconfdir/jenkins check directory jenkins_piddir path /var/run/$jenkinsuser -if does not exist then exec "/usr/bin/mkdir -p /var/run/$jenkinsuser" -if failed uid $jenkinsuser then exec "/usr/bin/chown $jenkinsuser /var/run/$jenkinsuser" -if failed gid $jenkinsuser then exec "/usr/bin/chown :$jenkinsuser /var/run/$jenkinsuser" +if does not exist then exec "$mkdir -p /var/run/$jenkinsuser" +if failed uid $jenkinsuser then exec "$chown $jenkinsuser /var/run/$jenkinsuser" +if failed gid $jenkinsuser then exec "$chown :$jenkinsuser /var/run/$jenkinsuser" check process jenkins with pidfile /var/run/$jenkinsuser/jenkins_jnlp_pid start program = "/usr/bin/sudo -u $jenkinsuser /bin/bash -c 'cd $jenkinshome; export started_monit=true; $0 $@' with timeout 60 seconds" @@ -111,9 +123,9 @@ EOF #test for diff if [[ "$(diff $monitconfdir/jenkins <(echo "\ check directory jenkins_piddir path /var/run/$jenkinsuser -if does not exist then exec \"/usr/bin/mkdir -p /var/run/$jenkinsuser\" -if failed uid $jenkinsuser then exec \"/usr/bin/chown $jenkinsuser /var/run/$jenkinsuser\" -if failed gid $jenkinsuser then exec \"/usr/bin/chown :$jenkinsuser /var/run/$jenkinsuser\" +if does not exist then exec \"$mkdir -p /var/run/$jenkinsuser\" +if failed uid $jenkinsuser then exec \"$chown $jenkinsuser /var/run/$jenkinsuser\" +if failed gid $jenkinsuser then exec \"$chown :$jenkinsuser /var/run/$jenkinsuser\" check process jenkins with pidfile /var/run/$jenkinsuser/jenkins_jnlp_pid start program = \"/usr/bin/sudo -u $jenkinsuser /bin/bash -c 'cd $jenkinshome; export started_monit=true; $0 $@' with timeout 60 seconds\" @@ -129,7 +141,7 @@ depends on jenkins_piddir\ fi if [[ $started_monit == "true" ]]; then - wget --timestamping https://build.opnfv.org/ci/jnlpJars/slave.jar && true + wget --timestamping https://"$jenkins_hostname"/jnlpJars/slave.jar && true chown $jenkinsuser:$jenkinsuser slave.jar if [[ -f /var/run/$jenkinsuser/jenkins_jnlp_pid ]]; then @@ -173,6 +185,7 @@ usage: $0 [OPTIONS] -u set jenkins user -n set slave name -s set secret key + -l set host, default is build.opnfv.org/ci -t test the connection string by connecting without monit -f test firewall @@ -187,13 +200,14 @@ if [[ -z "$@" ]]; then usage fi -while getopts "j:u:n:s:htf" OPTION +while getopts "j:u:n:s:l:htf" OPTION do case $OPTION in j ) jenkinshome="$OPTARG" ;; u ) jenkinsuser="$OPTARG" ;; n ) slave_name="$OPTARG" ;; s ) slave_secret="$OPTARG";; + l ) jenkins_hostname="$OPTARG" ;; h ) usage ;; t ) started_monit=true skip_monit=true @@ -203,6 +217,6 @@ do esac done -connectionstring="java -jar slave.jar -jnlpUrl https://build.opnfv.org/ci/computer/"$slave_name"/slave-agent.jnlp -secret "$slave_secret" -noCertificateCheck " - +jenkins_hostname="${jenkins_hostname:-build.opnfv.org/ci}" +connectionstring="java -jar slave.jar -jnlpUrl https://"$jenkins_hostname"/computer/"$slave_name"/slave-agent.jnlp -secret "$slave_secret" -noCertificateCheck " main "$@"