我在 jenkins 中尝试了多种解决方案来复制远程文件,即 AWS 上的 EC2 窗口服务器。
通过 ssh 发布:提供了密钥、主机名、用户名和密码,但每次都连接失败
管道脚本:
管道{ 任何代理
stages {
stage('SCP') {
steps {
bat '"C:\\Program Files\\Git\\usr\\bin\\scp.exe" -i "C:\\Live" C:\\Windows\\System32\\config\\systemprofile\\AppData\\Local\\Jenkins\\.jenkins\\workspace\\MSDeploy\\abc.txt abc.txt'
bat '"c:\\Program Files\\Git\\usr\\bin\\ssh.exe" -i "C:\\Live" [email protected] ls -ltr'
}
}
}
}
其中
C:\Live
是远程服务器目录,C:\\Windows\\System32\\config\\systemprofile\\AppData\\Local\\Jenkins\\.jenkins\\workspace\\MSDeploy\\abc.txt
是本地目录,但它会抛出错误:显示找不到这样的文件或目录
pipeline {
agent any
stage ('Deploy') {
steps {
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: 'var', credentialsId: 'credid', secretKeyVariable: 'seckey']]) {
writeFile file: 'groovy1.txt', text: 'ls'
bat 'ls -l groovy1.txt'
bat 'cat groovy1.txt'
}
}
}
}
它确实创建了带有文本的文件,但不起作用。所有解决方案都不适合我。
我错过了什么?
您使用的是Windows服务器,您需要使用一些工具来实现这一点,通过ssh复制可能在这里不起作用。我通常使用的最好的直接解决方案。
第1步:
net use N: \\ServerName\Folder /user:Administrator Password
N 是你的驱动器
复制“D:\Jenkins 文件 N:”
您可以在 jenkins 文件中使用这些命令,请参阅此链接以获取相同的信息 https://thenucleargeeks.com/2020/11/24/how-to-run-batch-scripts-commands-in-jenkinsfile/ 这适用于您的情况,如果您遇到任何问题,请告诉我。