|
|
|
## Some Jenkins plugin to be installed
|
|
|
|
### Git plugin
|
|
|
|
#### http://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin
|
|
|
|
### Git plugin for the Git server being used. Our example is using BitBucket, so Bitbucket Plugin
|
|
|
|
#### https://wiki.jenkins-ci.org/display/JENKINS/BitBucket+Plugin
|
|
|
|
### Groovy plugin
|
|
|
|
#### http://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin
|
|
|
|
### IBM z/OS Connector
|
|
|
|
#### https://wiki.jenkins-ci.org/display/JENKINS/IBM+zOS+Connector
|
|
|
|
### SSH agent plugin
|
|
|
|
#### http://wiki.jenkins-ci.org/display/JENKINS/SSH+plugin
|
|
|
|
### SSH Slaves plugin
|
|
|
|
#### https://wiki.jenkins-ci.org/display/JENKINS/SSH+Slaves+plugin
|
|
|
|
|
|
|
|
## Jenkins configurations, directories are used in the samples
|
|
|
|
### Global Tool Configuration
|
|
|
|
#### Git for z/OS path to Git executable on z/OS, /usr/lpp/tools/bin/git
|
|
|
|
#### Git for DBB path to Git executable on z/OS, /usr/lpp/IBM/dbb/bin/git-jenkins.sh
|
|
|
|
#### DBB_Groovy Groovy_Home, /usr/lpp/IBM/dbb/groovy-2.4.12
|
|
|
|
|
|
|
|
## Manage Nodes
|
|
|
|
### Name anything, maybe the name of the z/OS LPAR
|
|
|
|
### Number of executors, how many Jenkins processes to run concurrently
|
|
|
|
### Labels, zOS, is what is used in our sample
|
|
|
|
#### You can use either the Name or Label
|
|
|
|
#### By using Name, Jenkins will run on that specific LPAR
|
|
|
|
#### By using Label, Jenkins will run on any LPAR with this Label
|
|
|
|
### Remote Root Directory, /usr/lpp/tools/jenkins
|
|
|
|
### Launch method, Launch agent agents via SSH
|
|
|
|
#### If Host Key Verification Strategy = "Known host file Verification Strategy", then you will need to follow Jenkins documentation to get the SSH keys added to Jenkins
|
|
|
|
### Port, the port on the z/OS LPAR where SSH is listening
|
|
|
|
### Java Path, full path to the Java executable, /usr/lpp/java/J8.0_64/bin/java
|
|
|
|
### JVM Options, -Dfile.encoding=utf-8 -Xnoargsconversion
|
|
|
|
#### default file encoding is utf-8
|
|
|
|
#### Don't convert the input arguments
|
|
|
|
### Prefix Start Agent Command '. /usr/lpp/IBM/dbb/conf/gitenv.sh && export JAVA_HOME=/usr/lpp/java/J8.0_64/ && export IBM_JAVA_ENABLE_ASCII_FILETAG=ON && env &&' without the quotes
|
|
|
|
#### Note: there is dot as the first parameter.
|
|
|
|
#### /usr/lpp/IBM/dbb/conf/gitenv.sh, is the location on the z/OS LPAR for the DBB gitenv.sh script
|
|
|
|
#### JAVA_HOME, location of the Java directory
|
|
|
|
#### IBM_JAVA_ENABLE_ASCII_FILETAG, enable the ASCII file tag
|
|
|
|
#### env, display the environment variables at start up time.
|
|
|
|
### Suffix Start Agent Command, ' -text', without the quotes
|
|
|
|
### Tool Location
|
|
|
|
#### List of tool locations
|
|
|
|
##### Name: (Git) Git for z/OS
|
|
|
|
##### Home: /usr/lpp/IBM/dbb/bin/git-jenkins.sh
|
|
|
|
|
|
|
|
Sample start up log:
|
|
|
|
SSHLauncher{host='zOS Host name', port=22, credentialsId='Credential Token from Jenkins', jvmOptions='-Dfile.encoding=utf-8 -Xnoargsconversion', javaPath='/usr/lpp/java/J8.0_64/bin/java', prefixStartSlaveCmd='. /usr/lpp/IBM/dbb/conf/gitenv.sh && export JAVA_HOME=/usr/lpp/java/J8.0_64/ && export IBM_JAVA_ENABLE_ASCII_FILETAG=ON && env && ', suffixStartSlaveCmd=' -text', launchTimeoutSeconds=210, maxNumRetries=10, retryWaitTime=15, sshHostKeyVerificationStrategy=hudson.plugins.sshslaves.verifiers.KnownHostsFileKeyVerificationStrategy, tcpNoDelay=true, trackCredentials=true}
|
|
|
|
[01/31/19 12:13:36] [SSH] Opening SSH connection to 'zOS Host Name':22.
|
|
|
|
[01/31/19 12:13:39] [SSH] SSH host key matches key in Known Hosts file. Connection will be allowed.
|
|
|
|
[01/31/19 12:13:39] [SSH] Authentication successful.
|
|
|
|
[01/31/19 12:13:39] [SSH] The remote user's environment is:
|
|
|
|
@="sh"
|
|
|
|
ERRNO="0"
|
|
|
|
HOME=
|
|
|
|
IFS=" "
|
|
|
|
LINENO="0"
|
|
|
|
LOGNAME=
|
|
|
|
MAIL=
|
|
|
|
MAILCHECK="600"
|
|
|
|
OPTIND="1"
|
|
|
|
PATH="/bin"
|
|
|
|
PPID="67109137"
|
|
|
|
PS1="# "
|
|
|
|
PS2="> "
|
|
|
|
PS3="#? "
|
|
|
|
PS4="+ "
|
|
|
|
PWD=
|
|
|
|
RANDOM="1817"
|
|
|
|
SECONDS="0"
|
|
|
|
SHELL="/bin/sh"
|
|
|
|
SSH_CLIENT="'client IP address' 49150 22"
|
|
|
|
SSH_CONNECTION="'Jenkins Server IP address' 49150 'zOS Host IP Address' 22"
|
|
|
|
TZ="EST5EDT"
|
|
|
|
USER="JE\$2YC"
|
|
|
|
[01/31/19 12:13:39] [SSH] Starting sftp client.
|
|
|
|
[01/31/19 12:13:40] [SSH] Copying latest remoting.jar...
|
|
|
|
[01/31/19 12:13:40] [SSH] Copied 789,285 bytes.
|
|
|
|
Expanded the channel window size to 4MB
|
|
|
|
[01/31/19 12:13:40] [SSH] Starting agent process: . /usr/lpp/IBM/dbb/conf/gitenv.sh && export JAVA_HOME=/usr/lpp/java/J8.0_64/ && export IBM_JAVA_ENABLE_ASCII_FILETAG=ON && env && cd "/usr/lpp/tools/jenkins" && /usr/lpp/java/J8.0_64/bin/java -Dfile.encoding=utf-8 -Xnoargsconversion -jar remoting.jar -workDir /usr/lpp/tools/jenkins -text
|
|
|
|
**** Running /usr/lpp/IBM/dbb/conf/gitenv.sh ****
|
|
|
|
MAIL=/usr/mail/'UserID of SSH connection'
|
|
|
|
PATH=/bin:/usr/lpp/tools/bin
|
|
|
|
_TAG_REDIR_IN=txt
|
|
|
|
GIT_EXEC_PATH=/usr/lpp/tools/libexec/git-core
|
|
|
|
GIT_SHELL=/usr/lpp/tools/bin/bash
|
|
|
|
SSH_CLIENT='zOS Host IP Address' 49150 22
|
|
|
|
_BPXK_AUTOCVT=ON
|
|
|
|
SHELL=/bin/sh
|
|
|
|
IBM_JAVA_ENABLE_ASCII_FILETAG=ON
|
|
|
|
_CEE_RUNOPTS=FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)
|
|
|
|
_=/bin/env
|
|
|
|
LOGNAME='SSH UserID'
|
|
|
|
LIBPATH=:/usr/lpp/tools/lib/perl5/5.22.0/os390/CORE/
|
|
|
|
GIT_TEMPLATE_DIR=/usr/lpp/tools/share/git-core/templates
|
|
|
|
_TAG_REDIR_OUT=txt
|
|
|
|
GIT_DISCOVERY_ACROSS_FILESYSTEM=1
|
|
|
|
USER='SSH UserID'
|
|
|
|
HOME='SSH UserID home'
|
|
|
|
TOOLS_HOME=/usr/lpp/tools
|
|
|
|
PERL5LIB=:/usr/lpp/tools/lib/perl5
|
|
|
|
SSH_CONNECTION='Jenkins Server IP address' 49150 'zOS Host IP address' 22
|
|
|
|
JAVA_HOME=/usr/lpp/java/J8.0_64/
|
|
|
|
TZ=EST5EDT
|
|
|
|
_TAG_REDIR_ERR=txt
|
|
|
|
MANPATH=:/usr/lpp/tools/man
|
|
|
|
Running in text mode
|
|
|
|
Jan 31, 2019 12:13:41 PM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
|
|
|
|
INFO: Using /usr/lpp/tools/jenkins/remoting as a remoting work directory
|
|
|
|
Both error and output logs will be printed to /usr/lpp/tools/jenkins/remoting
|
|
|
|
<===[JENKINS REMOTING CAPACITY]===><===[HUDSON TRANSMISSION BEGINS]===channel started
|
|
|
|
Remoting version: 3.28
|
|
|
|
This is a Unix agent
|
|
|
|
Jan 31, 2019 12:13:46 PM hudson.remoting.UserRequest perform
|
|
|
|
WARNING: LinkageError while performing UserRequest:jenkins.slaves.StandardOutputSwapper$ChannelSwapper@7148ff22
|
|
|
|
java.lang.UnsatisfiedLinkError: Native library (com/sun/jna/z/os-s390x/libjnidispatch.so) not found in resource path ([])
|
|
|
|
at com.sun.jna.Native.loadNativeDispatchLibraryFromClasspath(Native.java:962)
|
|
|
|
at com.sun.jna.Native.loadNativeDispatchLibrary(Native.java:922)
|
|
|
|
at com.sun.jna.Native.<clinit>(Native.java:190)
|
|
|
|
at hudson.util.jna.GNUCLibrary.<clinit>(GNUCLibrary.java:115)
|
|
|
|
at jenkins.slaves.StandardOutputSwapper$ChannelSwapper.swap(StandardOutputSwapper.java:60)
|
|
|
|
at jenkins.slaves.StandardOutputSwapper$ChannelSwapper.call(StandardOutputSwapper.java:45)
|
|
|
|
at jenkins.slaves.StandardOutputSwapper$ChannelSwapper.call(StandardOutputSwapper.java:39)
|
|
|
|
at hudson.remoting.UserRequest.perform(UserRequest.java:212)
|
|
|
|
at hudson.remoting.UserRequest.perform(UserRequest.java:54)
|
|
|
|
at hudson.remoting.Request$2.run(Request.java:369)
|
|
|
|
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
|
|
|
|
at java.util.concurrent.FutureTask.run(FutureTask.java:277)
|
|
|
|
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)
|
|
|
|
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
|
|
|
|
at java.lang.Thread.run(Thread.java:811)
|
|
|
|
|
|
|
|
Agent successfully connected and online
|
|
|
|
|
|
|
|
Note: the error 'com/sun/jna/z/os-s390x/libjnidispatch.so' not found is normal. The z/OS Java doesn't contain the Oracle JNI classes. This will not cause any issues. |
|
|
|
\ No newline at end of file |