Jenkins Coding筆記

#From Ubuntu
docker exec -ti jenkins /bin/bash
#From Docker
ssh-keygen

域名: 如填寫 coding

描述: 如填寫:coding倉庫

描述和Username 我都是填寫 coding_jenkins
Private key: 填入Jenkins 容器的私鑰

#From Docker jenikins Container

#生成密鑰
ssh-keygen
#查看公鑰
cat /var/jenkins_home/.ssh/id_rsa

將公鑰加入到coding個人資料中的公鑰中,這樣就可以訪問當前工作空間的所有代碼倉庫了


Jenkins pipeline git parameter

Plugin: Git parameter

pipeline {
    agent any
    environment {
      def DEPLOY_GIT_SSH_URL = "http://localhost:10011/test.git"
    }
    parameters {
        gitParameter name: 'TAG',
                     type: 'PT_TAG',
                     defaultValue: 'master'
    }
    stages {
        stage('pull code') {
            steps {
              checkout([$class: 'GitSCM', branches: [[name: "${params.TAG}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'fa16d707-070c-4462-9089-965bad493dd1', url: "${DEPLOY_GIT_SSH_URL}"]]])
            }
        }


        stage('publish to ten servers') {
          steps {

            script {
              def SERVER_NODES = ["server1","server2"]
              for (server_node in SERVER_NODES){
                echo "部署服務器 ${server_node} 中"
                sshPublisher(publishers: [sshPublisherDesc(configName: "${server_node}", transfers: [sshTransfer(cleanRemote: false, excludes: 'Jenkinsfile,README.md,CHANGELOG.md', execCommand: '''chmod 755 /var/www/html/test
chmod 755 /var/www/html/test/* -R''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/var/www/html/test/', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '**/*')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
              }
            }

          }
        }
    }
}

其中 credentialsId 是驗證憑證id,可以在 系統管理 -> 憑據,就會看到 憑據列表,其中列表的 唯一標識中看到

SERVER_NODES 數組中 元素是在 Jinkins 系統配置中, Publish over SSHSSH Server 中填寫的名稱(Name)。

References

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章