Jenkins Build-in CLI

Jenkins is listening on TCP port for JNLP agents. Download from http://jenkins-master:8080/cli, onto any server you wish to remotely control Jenkins

wget http://jenkins-master:8080/jnlpJars/jenkins-cli.jar

Running and connecting depends on a connection method you choose.

$ java -jar jenkins-cli.jar -s http://jenkins-master:8080 help --username jenkins --password ***
$ java -jar jenkins-cli.jar -s http://jenkins-master:8080 help -i ~/.ssh/id_rsa
$ java -jar jenkins-cli.jar -s http://jenkins-master:8080 list-jobs
$ java -jar jenkins-cli.jar -s http://jenkins-master:8080 build 'My Awesome Jenkins Job' -i ~/.ssh/id_rsa -s -v

Running a job with multiple parameters, username position is required to be at the end; version verified here is 2.67

$ java -jar jenkins-cli.jar -s http://jenkins-master:8080 build 'Terraform' \
       -p ACTION=plan \
       -p LOCATION=dev11/midw/aat1 \
       -p BUILD_TAG_TERRAFORM=refs/heads/master \
       -p BUILD_TAG_SECRETS=refs/heads/master \
       --username user1 --password password1

For passing parameters use the -p key=value flag for each parameter you want to pass.

Workaround: Under “Authorization”, you want to turn on “Matrix-based security” and then for the “anonymous” user enable “Read” mode for the “Job” section.