jenkins要想在远程服务器执行命令,发送文件等操作,必然要处理jenkins与远程机的免交互问题。
下面如何让jenkins与目标主机实现免交互。
jenkins安装插件 :
系统管理-- 插件安装--搜索ssh --安装Publish Over SSH
安装完成后,在jenkins端生成秘钥对(公钥id_rsa.pub 私钥id_rsa)
执行 ssh-keygen,一路回车,即可生成秘钥对
- 将生成的公钥id_rsa.pub发送到目标主机
ssh-copy-id user@目标ip
输入一次密码,以后就免密了。输入完可以用ssh 登陆试一下。
-
将生成的私钥id_rsa保存到jenkins插件配置里。
系统管理---系统配置--找到ssh插件的那里--写入私钥--填写目标机器信息(可以测试连接。)
部署源代码到远程服务器
我们以最简单的一个例子来演示,部署一个Html页面到远程服务器的nginx网站目录下,实现页面上线。
首先,刚才jenkins配置ssh插件,注意填写远程服务器信息的那里的remote directory这个地方指的发送到远程服务器的哪个目录下。
在job配置中
上图的配置就是,将jenkins上的项目文件init.html发送到远端主机192.168.1.112的/var/www/html下
保存,退出。
远端主机的nginx配置:
server {
listen 83;
server_name 192.168.1.112;
index index.html init.html;
root /var/www/html;
}
点击构建。
结果:部署成功
例子比较简单,后期会更新java的部署过程。