开始于一切之前,请安装jdk,不懂的朋友请移步
1.安装和配置Jenkins
1.1安装Jenkins
请移步我的另一篇文章RedHat安装Jenkins
1.2打开Jenkins,输入管理员密码
管理员密码人家已经很明确的告诉你在哪了,别说你不知道怎么看……
1.3安装插件
点击下一步之后应该是安装插件,然后一般你会看到这样一个界面
再次吐槽一下,各大网站的ssl证书都特么有问题,也不管,还到处提供https链接,简直了……
解决方案:
1.3.1打开一个新的tab,输入网址http://你的ip:你的端口/pluginManager/advanced
1.3.2这里面最底下有个【升级站点】,把其中的链接改成http的就好了,http://updates.jenkins.io/update-center.json
1.3.3.在服务列表中关闭jenkins,再启动,这样就能正常联网了
sudo service jenkins restart
1.3.4各种刷新之后,终于进入了插件安装界面,现在开始安装插件
漫长的等待……
1.4创建管理员账号
这个就不说了,填好信息一路下一步吧
1.5修改权限
好不容易全部走完了,发现页面是空白的有木有,怎么搞?
1.5.1找到jenkins安装目录 /var/lib/jenkins中的config.xml
里面有这么一段
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
替换成
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
意思是任何人可以访问任何页面……虽然说极端不安全,不过,我觉得无所谓了,大家如果较真,可以尝试修改为
登录用户可以做任何事
<
authorizationStrategy
class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"/>
这个权限对应 test用户可以是管理员、打标签权限
<
authorizationStrategy
class="hudson.security.GlobalMatrixAuthorizationStrategy">
<
permission
>hudson.model.Hudson.Administer:test</
permission
>
<
permission
>hudson.scm.SCM.Tag:test</
permission
>
</
authorizationStrategy
>
2.使用Jenkins发布后台服务
终于登陆成功了,迫不及待的要开始使用自动化构建
2.配置插件
jenkins跑起来以后,我们还需要安装和配置一些额外的插件才能让我们的项目自动构建起来
2.1Gradle插件
这个很坑,说好了自动安装,结果根本不能用,首先还是在jenkins所在机器上下载安装一个gradle,如果不会可以留言,我下次再写一篇linux安装gradle的文章。
安装好之后,进入
找到gralde选项卡,配置安装好的gradle目录
2.2安装SSH插件,用于远程配置
进入插件管理,选择可选插件选项卡,搜索SSH,找到Publish Over SSH插件,勾选后点击直接安装
安装完成后需要重启jenkins,重启命令参考RedHat安装Jenkins
2.3配置SSH服务器
2.3.1进入系统管理/系统设置,找到Publish over SSH设置
2.3.2Passprase这一项输入密码,如果有令牌之类的可以添加Path to key 和key
2.3.3点击新增添加一个服务器,输入名称,主机ip,用户名,以及传输发布包到的远程目录
2.3.4点击TestConfiguration如果显示成功表示连接上了
2.3.5如果需要设置代理,可以点击高级进行更多的设置,另外,服务器独立密码也在高级里面
3.开始创建自动构建任务
3.1输入项目描述,我这里选择丢弃旧的构建,周期为7天,其他的我们可以另外讨论
3.2配置svn信息,Credentials可以直接点添加,输入你的svn用户名密码
3.3配置触发条件
轮询SCM指的是定时触发,配置方式如下:
1.首先格式为:* * * * *(五个星);
2.第一个*表示分钟,取值0~59
第二个*表示小时,取值0~23
第三个*表示一个月的第几天,取值1~31
第四个*表示第几月,取值1~12
第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周日
3.使用举例:
每隔10分钟构建一次:H/5 * * * *
每隔1小时构建一次: H H/1 * * *
每月30号构建一次: H H 30 * *
3.3配置gradle构建
注意一定要先配置gradle插件,否则这里选不了,另外就是别被这里的单选按钮迷惑了,上下两个都要填
3.4配置构建后自动发布
3.4.1我这里配置了构建之后发送邮件给我的邮箱,只用配置收件邮箱号就行,如果需要从特定邮箱发送,可以去系统设置中设置stmp服务器
3.4.2 通过SSH发送构建的应用
3.4.2.1选择要发布的SSH服务器,这个在之前已经配置了
3.4.2.2Source files指要发布的内容,填相对路径
3.4.2.3Remove prefix指定去除掉的目录,如果不配置,会连文件夹一起复制过去
3.4.2.4Remote directory远程文件夹,如果不配置,取之前SSH服务器配置的
3.4.2.5实际上核心还是发布脚本,我讲解一下我的脚本
这个是我配置的SSH远程目录,我指定的发布包会被发送到这里,我首先进入文件夹并解压发布包
cd /mpjava/jenkins
tar -xvf xxxxxxxx.tar
接着杀死旧的进程
process=`jps | grep AppProvider | awk '{print $1}'`
for i in $process
do
kill -9 $i
done
刚解压出来的文件需要给予执行权限
chmod 777 /mpjava/jenkins/xxxxxx/bin/xxxxx
source /etc/profile
运行发布包
#BUILD_ID=dontKillMe
nohup /mpjava/jenkins/xxxxxx/bin/xxxxxx >> /mpjava/jenkins/nohup.out&
#sleep 3 && echo finished
#exit 0
至此,所有的配置全部完成了。