jenkins部署源代码到远程服务器

jenkins部署源代码到远程服务器,第1张

jenkins要想在远程服务器执行命令,发送文件等 *** 作,必然要处理jenkins与远程机的免交互问题。

下面如何让jenkins与目标主机实现免交互。

系统管理-- 插件安装--搜索ssh --安装 Publish Over SSH

安装完成后,在jenkins端生成秘钥对(公钥id_rsa.pub 私钥id_rsa)

输入一次密码,以后就免密了。输入完可以用ssh 登陆试一下。

我们以最简单的一个例子来演示,部署一个Html页面到远程服务器的nginx网站目录下,实现页面上线。

首先,刚才jenkins配置ssh插件,注意填写远程服务器信息的那里的remote directory这个地方指的发送到远程服务器的哪个目录下。

在job配置中

上图的配置就是,将jenkins上的项目文件init.html发送到远端主机192.168.1.112的/var/www/html下

保存,退出。

远端主机的nginx配置:

点击构建

结果:部署成功

例子比较简单,后期会更新java的部署过程。

方法/步骤安装部署Jenkins环境,下载所需要的插件,直接用IP加端口进行登录。在系统管理的系统设置里配置需要远程的服务器。新建节点,当新建节点与原有节点类似的时候,可以选择复制现有的节点。填写远程工作目录、标签、Host、Credentials等信息,点击save保存成功。此时在构建执行列表里就能看到新添加的节点的信息。在页面点击“+”,添加一个试图,在这里我的视图名称就叫:自动化部署。在“自动化部署”的视图下,点击“新建”按钮,新建一个项目,填写相应的项目名称,构建项目的类型(根据需要自行选择,在这里我选择的是构建一个自由风格的软件项目),点击“OK”进入项目配置页面。在项目配置页面,对项目的各种属性进行配置。在项目名称下,添加适当的描述,可以是阅读的人直观的了解项目。选择项目的jdk选项,在这里我选择JAVA-HOME。源码管理和构建触发器保持默认设置即可。构建环境的时候,勾选第一项,在SSHsite选择一开始添加的远程服务器节点即可。在构建的时候,在增加构建步骤里选择“executeshells”。在executeshell里面的command里面填写在需要执行更新 *** 作的命令即可。点击“保存”按钮,创建及完成。列表显示如下图。在列表页,选中name里的立即构建,即可构建项目在构建历史里,选择consoleoutput,即可查看构建的信息。

      在jenkins部署脚本自动发布的时候,在系统设置中,会用到jenkins插件ssh-plugin所带的“ssh sites”模块,但是如果目标服务器的openssh是7.0版本的话,jenkins会不识别openssh7.0的算法,导致jenkins一直会报“can not connect!”的错误。(如下图)

我也是煞费苦心,研究了好多天才,查了无数的文档,才得以解决。

首先,连接不上的原因,是因为openssh7.0更新了新的算法,老版本不识别新版本的算法。

其次,也有部分原因是jenkins插件的升级,相关插件及版本,如下图。

最后,保证以上插件版本都没问题的情况下,修改目标服务器上面的/etc/ssh/sshd_config文件:

1.将 PasswordAuthentication 参数的值修改为yes,如果是注释掉的,把注释去掉。

2.在文件最下方添加:

Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc

MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160,hmac-sha1-96,hmac-md5-96

KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,[email protected]

Ps:Ciphers 指定SSH-2允许使用的加密算法。

    MACs 指定允许在SSH-2中使用哪些消息摘要算法来进行数据校验。

    Kexalgorithms 指定可用的密钥(密钥交换)算法。

以上就是所有的步骤了。现在,再去jenkins里看下是不是好了。呵呵哒。

为此,楼主可是高兴了半天。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11931690.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存