“系统管理”→“管理插件”→“已安装” 检查是否有“Git plugin”和“Publish Over SSH”两个插件,如果没有,则需点击“可选插件”,找到它并安装。(“高级”选项可以设置代理去下载不可以下载的插件)
安装好后,重启jenkins服务:
[root@zhdy01 ~]# systemctl restart jenkins
安装好两个插件后,点击“系统管理”→ “系统设置”
下拉,找到“Publish Over SSH”
事先在一台linux服务器上生成一对密钥
[root@zhdy01 ~]# ssh-keygen -f /root/.ssh/jenkins
[root@zhdy01 ~]# cd /root/.ssh/
[root@zhdy01 .ssh]# ls
jenkins jenkins.pub
“Passphrase”填写设置的密码, “Path to key”留空,“key”粘贴/root/.ssh/jenkins文件内容。
我们在这边配置了私钥,也就是意味着我们需要在客户端机器配置公钥!然后才可以互相通信。
[root@zhdy02 ~]# vim .ssh/authorized_keys
点击左下角“增加”,SSH Server,name自定义,Hostname填写线上web服务器的ip,Username填写root,Remote Directory填写/
当然也可以增加多个认证主机和用户。
如果是多台web server,继续点击“增加”,重复以上操作
点左下角的“保存”
关于“构建触发器”和“构建环境”暂时不需要。
Remove prefix:可以指定截掉的前缀目录,这里留空即可,Remote directory指定远程服务器上代码存放路径,比如/data/wwwroot/www.aaa.com。
Exec command:为文件传输完成后要执行的命令,比如可以是更改文件权限的命令,设置完成后点击 “Add Transfer Set”,如果还有另外的机器,可以点击 “Add Server”重复以上操作
最后点击左下角的“保存”
完成以上操作后,就可以使用这个刚刚创建的任务去工作了。
点击左面的“立即构建”,就能把git上的代码发布到指定的服务器上。
点击左下角的#1/#2… ,然后再点击 “Console Output”可以查看输出日志
然后我们去咱们设定的目录中去查看是否已经正常同步了呢?
[[email protected] tmp]# tree
.
├── data
│ └── zhdy
├── github
│ └── zhdy
├── jenkins_test
│ ├── 170603.md
│ ├── h170605.md
│ ├── h170606.md
│ ├── h170607.md
│ ├── h170608.md
│ ├── h170609.md
│ ├── h170612.md
│ ├── h170613.md
│ ├── h170614.md
│ └── h170615.md
已经正常同步了,假如我在gitlab中添加一些内容,是不是可以随时更新呢?
Check it again:(多了一个TESTTT)
[[email protected] tmp]# tree
.
├── data
│ └── zhdy
├── github
│ └── zhdy
├── jenkins_test
│ ├── 170603.md
│ ├── h170605.md
│ ├── h170606.md
│ ├── h170607.md
│ ├── h170608.md
│ ├── h170609.md
│ ├── h170612.md
│ ├── h170613.md
│ ├── h170614.md
│ ├── h170615.md
│ └── TESTTT
当然后期只要是构建成功还需要发一封邮件提醒,来提升工作效率!!