dujian 1 tydzień temu
rodzic
commit
de1c0ad02f
1 zmienionych plików z 12 dodań i 5 usunięć
  1. 12 5
      Jenkinsfile

+ 12 - 5
Jenkinsfile

@@ -50,7 +50,11 @@ pipeline {
 
         stage('Deploy') {
             steps {
-                sshagent(credentials: [env.SSH_CREDENTIALS_ID]) {
+                withCredentials([sshUserPrivateKey(
+                    credentialsId: env.SSH_CREDENTIALS_ID,
+                    keyFileVariable: 'SSH_KEY',
+                    usernameVariable: 'SSH_USER'
+                )]) {
                     sh '''
                         set -e
 
@@ -59,17 +63,20 @@ pipeline {
                             exit 1
                         fi
 
-                        echo "开始部署到 ${DEPLOY_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}"
+                        chmod 600 "$SSH_KEY"
+                        SSH_OPTS="-i $SSH_KEY -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
+
+                        echo "开始部署到 ${SSH_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}"
 
                         # 确保目标目录存在
-                        ssh -o StrictHostKeyChecking=no ${DEPLOY_USER}@${DEPLOY_HOST} \
+                        ssh $SSH_OPTS ${SSH_USER}@${DEPLOY_HOST} \
                             "mkdir -p ${DEPLOY_PATH}"
 
                         # 将 dist 目录内容同步到网站根目录(不含 dist 文件夹本身)
                         rsync -avz --delete \
-                            -e "ssh -o StrictHostKeyChecking=no" \
+                            -e "ssh $SSH_OPTS" \
                             dist/ \
-                            ${DEPLOY_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}
+                            ${SSH_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}
 
                         echo "部署完成"
                     '''