By default, the example MettleCI CI/CD plans use passwords to perform remote actions, such as uploading or downloading files between the agent machine and the DataStage engine, or remote execution of scripts on the DataStage engine. Remote Namespace
MettleCI may also use a SSH key (with or without a passphrase) instead of a password.
To make this change in Jenkins:
Add Jenkins credentials (as Secret Text, like our other credentials) for each SSH in use:
the path of the SSH key file
the passphrase, if one is being used
Add environment variables to relevant agents, that refer to the SSH credentials in the same manner as the example pipelines already do with IIS and MCI passwords, eg:
SSHKEYPATH
for the path of the SSH key fileSSHKEYPHRASE
for the SSH ket passphrase, if used
In the JenkinsFile, add calls for
SSHKEYPATH
andSSHKAYPHRASE
towithCredentials
calls for:the stage titled
"Create DSParams Diff Artifact"
, where theremote download
command fetches the template DSPARAMS file from the source DataStage instanceall stages that reference
mci_deploy
ormci_unittest
eg:withCredentials([ string(credentialsId: "${env.IISPASSWORD}", variable: 'IISPASSWORD'), string(credentialsId: "${env.MCIPASSWORD}", variable: 'MCIPASSWORD'), string(credentialsId: "${env.SSHKEYPATH}", variable: 'SSHKEYPATH'), string(credentialsId: "${env.SSHKEYPHRASE}", variable: 'SSHKEYPHRASE') ]) {
Update all calls to Mettleci
remote
commands, replacing-password %MCIPASSWORD%
with-privateKey \"%SSHKEYPATH%\"
, and also include-passphrase \"%SSHPASSPHRASE\"
if a passphrase is required for the SSH key:the
remote download
command in JenkinsFile, in the stage titled"Create DSParams Diff Artifact"
all MettleCI
remote
calls (remote upload
,remote download
,remote execute
) inside themci_deploy
ormci_unittest
shared library functions
eg:bat label: 'Cleanup', script: ''' %AGENTMETTLECMD% remote execute ^ -host %IISENGINENAME% ^ -username %MCIUSERNAME% -password %MCIPASSWORD% ^ -script "config/cleanup_unittest.sh" '''
becomesbat label: 'Cleanup', script: ''' %AGENTMETTLECMD% remote execute ^ -host %IISENGINENAME% ^ -username %MCIUSERNAME% -privateKey \"%SSHKEYPATH%\" ^ -passphrase \"%SSHKEYPHRASE%\" ^ -script "config/cleanup_unittest.sh" '''