最近,我使用Docker和Jenkins建立了自己的小型CI/CD设置。我已经为Jenkins安装了新的蓝海插件,并设置了一条管道:从Git中拉出,->运行测试->构建。效果很好。
但是,我还无法找到如何在管道中创建一个适当的部署/发布步骤。构建之后,我希望Jenkins容器能够将SSH放到运行所有Docker容器的VPS上,然后拉出,然后重新构建特定的容器(使用Docker )。
我注意到在蓝海中有一个输入bash脚本的选项,这个脚本将在测试/构建之后运行--这就是我应该使用的吗?
我一直在研究如何为Jenkins使用Publish插件,但是我没有能够找到这个插件是否与蓝海一起工作,也没有能够找到如何为Jenkins容器创建SSH键。
对于如何发布/构建更新的容器,我将不胜感激。
发布于 2017-05-04 04:44:13
一个简单的sh 'ssh...'步骤应该足以调用您的VPS上的脚本,它将(脚本)处理所有的对接操作。
如果您的私有ssh密钥受到密码的保护,则可能需要将该调用包装在带有管道步骤"ssh-agent“的代理中。
node {
sshagent (credentials: ['deploy-dev']) {
sh 'ssh -o StrictHostKeyChecking=no -l cloudbees 192.168.1.106 uname -a'
}
}作为pmr注释,JENKINS SSH凭据插件可以用来存储ssh私钥。
您还可以阅读最近的文章"使用Jenkins的SSH凭据管理“。
发布于 2017-05-04 12:07:34
终于成功了!是的,解决方案是为Jenkins使用"ssh-agent“插件(用于Jenkins Docker容器!)。
我做了以下工作:
我的错误是直接使用BlueOcean,而没有真正理解如何在Jenkins中构建。BlueOcean不允许与ssh代理集成。你必须加上:
sshagent (credentials: ['deploy-dev']) {
sh 'ssh -o StrictHostKeyChecking=no -l cloudbees 192.168.1.106 uname -a'
}你的构建正在使用的Jenkinsfile。
我希望这能帮助其他遇到同样问题的人。
https://stackoverflow.com/questions/43772920
复制相似问题