我是新手,尝试为我的hello world reactive spring项目实现CI/CD,在将映像发布到docker repo后,下一步是连接到aws ec2并运行创建的映像,我已经安装了ssh阿根插件,并在Mangejenkins-〉配置系统-〉ssh客户端配置的ssh连接中测试呈阳性。
另外,我的系统环境变量的路径为C:\Windows\System32\OpenSSH\ssh-代理. exe
在最后一步中,我将获得:
Could not find ssh-agent: IOException: Cannot run program "ssh-agent": CreateProcess error=2, The system cannot find the file specified
Check if ssh-agent is installed and in PATH
[ssh-agent] FATAL: Could not find a suitable ssh-agent provider
我的Pipelien代码:
pipeline {
agent any
tools {
maven 'maven'
jdk 'jdk1.8'
}
environment {
registry ="my-registry"
registryCredential=credentials('docker-credentials')
}
stages {
stage('SCM') {
steps {
git branch: 'master',
credentialsId: 'JenkinsGitlab',
url:'https://www.gitlab.com/my-repo/panda-app'
}
}
stage('Build') {
steps {
bat 'mvn clean package spring-boot:repackage'
}
}
stage('Dockerize') {
steps {
bat "docker build -t ${registry}:${BUILD_NUMBER} ."
}
}
stage('Docker Login') {
steps{
bat "docker login -u ${registryCredential_USR} -p ${registryCredential_PSW}"
}
}
stage('Release to Docker hub') {
steps{
bat "docker push ${registry}:${BUILD_NUMBER}"
}
}
stage('Deploy to AWS') {
steps {
sshagent(['panda-ec2']) {
bat "ssh -o StrictHostKeyChecking=no ubuntu@my-aws-host sudo docker run -p 8080:8080 ${registry}:${BUILD_NUMBER}"
}
}
}
}}
2条答案
按热度按时间lskq00tm1#
Windows内置的SSH-agent与Jenkins SSH-agent插件不兼容。
我使用的是Git安装中的SSH-agent。请确保在任何其他路径之前插入Git ssh-agent.exe的目录(!)路径,以防止使用Windows SSH-agent。
在默认的Git for Windows安装中,你可以像这样设置PATH环境变量:
对我来说,在Jenkins UI中设置env变量不起作用。我通过设置应用程序添加了它。在这样做时,请确保将它插入到“%SystemRoot%\system32\OpenSSH”之前。
guz6ccqo2#
最近我偶然发现了这个问题,首先我注意到这个问题会发生在Windows或Jenkins示例在Windows机器上运行时,这是我如何解决的
1.您需要确保CMD可以运行ssh-agent:默认情况下,jenkins sh命令将使用CMD窗口执行,在CMD中键入“ssh-agent”,如果输出为“无法启动ssh-agent服务,错误:1058”,则您需要打开该ssh-agent,使用以下命令并在CMD中执行
然后键入此命令以检查ssh-agent是否正在运行
1.您需要确保jenkins使用Git安装中的SSH代理
在windows中打开你的系统环境变量,确保你的环境顺序是这样的
确保所有的git部分都在“c\Windows”之上
重新启动你的pc后你做那