jenkins服务器地址:192.168.1.203
项目部署机器地址:192.168.1.201,192.168.1.200
代码托管github
虽然比较low,但是入门是可以的!
Jenkins安装
参考:https://jenkins.io/zh/doc/book/installing/
下载地址:https://jenkins.io/download/
本示例采用rpm包安装。
Jenkins需要JDK1.8支持。
Jenkins默认配置文件:/etc/sysconfig/jenkins
Jenkins war包位置:/usr/lib/jenkins/jenkins.war
# java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
安装过程中该Jenkins实例似乎已离线

解决办法:
默认是通过https://updates.jenkins.io/update-center.json 进行更新的。此处,将https改为http,重启Jenkins,重新打开页面,一切都正常了。
# find / -name "hudson.model.UpdateCenter.xml"
/xx/jenkins/hudson.model.UpdateCenter.xml
# vim /beike/jenkins/hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>http://updates.jenkins.io/update-center.json</url>
</site>
</sites>
# /etc/init.d/jenkins restart
No such plugin: cloudbees-folder

因为下载的Jenkins.war里没有cloudbees-folder插件
需要在网上下载:http://ftp.icm.edu.pl/packages/jenkins/plugins/cloudbees-folder/
下载cloudbees-folder.hpi放在/xxx/webapps/jenkins/WEB-INF/detached-plugins即可
# find / -name "detached-plugins"
/var/cache/jenkins/war/WEB-INF/detached-plugins
# cd /var/cache/jenkins/war/WEB-INF/detached-plugins
# wget http://ftp.icm.edu.pl/packages/jenkins/plugins/cloudbees-folder/latest/cloudbees-folder.hpi
# /etc/init.d/jenkins restart
之后可正常安装jenkins社区版推荐插件!

Jenkins手动插件安装
系统管理------>插件管理
如果遇到如下报错:

解决办法:
Advanced

将https修改为http即可
需安装插件:
GIT client plugin
GIT plugin
Git server plugin
GitHub API Plugin
GitHub plugin
SSH Credentials Plugin
SSH plugin
Publish Over SSH
Maven Integration
NodeJS
设置环境变量



不要勾选自动安装!
Jenkins配置机器信任
配置Jenkins服务器与待发布服务器之间的信任
# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.200
# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.201
Jenkins中添加已经信任的机器



使用密码验证!
配置Jenkins与git信任
配置git认证
Jenkins服务器上生成秘钥:
# ssh-keygen
将.ssh/id_rsa.pub 复制到git的ssh key中,便于拉取代码

测试Jenkins服务器可以可以clone代码!
配置Jenkins认证



此处输入.ssh/id_rsa

创建项目
创建maven项目

项目描述

SSHF方式,若无认证,会报错

正常情况:

依赖pom文件的编译命令:

编译成功后动作:

连接到部署服务器上,将原来的服务暂时暂停,备份上一次部署的压缩包,选择添加远程shell脚本执行。

把打包好的代码发送到服务器上,并且启动服务,选择通过ssh发送文件并执行命令到远程服务器。