ubuntu搭建Jenkins自动化部署服务

自动化流程

git拉取项目资源 => maven编译打包 => jar包推送到目标服务器 => 使用shell脚本启动

软件安装

JDK 安装


sudo add-apt-repository ppa:webupd8team/java 
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo update-java-alternatives -s java-8-oracle

测试:java -version

maven 安装


sudo apt-get install maven

测试:mvn -version

git 安装


sudo apt-get install git

配置ssh(Jinkens配置中会讲)

安装 Jenkins


wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

安装成功之后将执行:

  • 以守护进程启动 Jenkins,详细信息可以参考 /etc/init.d/jenkins
  • 创建一个 jenkins 用户用以启动服务
  • 如果 Jenkins 服务异常,可以查看 /var/log/jenkins/jenkins.log 日志文件
  • Jenkins 的配置文件为 /etc/default/jenkins,可以配置启动参数,比如 JENKINS_HOME
  • Jenkins 启动端口为8080,使用浏览器访问该端口开始配置项目

如果 /etc/init.d/jenkins 文件启动 Jenkins 服务失败,编辑 /etc/default/jenkins 文件,把 HTTP_PORT=8080 换成你的主机可以使用的端口号即可

Jenkins 配置任务

目前我所使用的还是最基础的功能,就是利用 Jenkins 执行 mvn 命令打包项目,然后再执行 shell脚本 进行服务的重启。其实看Jenkins文档发现 Pipeline(管道) 功能,很像我们前端的 gulp ,就是利用有顺序的任务来管理构建过程,后面有时间可以再研究一下。

  • 点击左上角的 新建任务,输入项目名称,选择 构建一个自由风格的软件项目,确定。
  • 源码管理 模块,选择 Git;输入你的仓库地址(url分为http与ssh两种类型的,一般使用ssh url),在 Credentials 栏点击 Add 按钮,选择 jenkins 用户;
    如图所示: 《ubuntu搭建Jenkins自动化部署服务》 image ,配好之后返回选择你要构建的分支。
  • 构建模块 ,选择 Execute shell , 然后把要执行的都写进来就好啦。

马上四点了,写不下去了…

踩到的坑

  • shell脚本报错:Syntax error: word unexpected (expecting “do”)

这是由于换行符造成的,请把 CRLF 换成 LF

  • maven的repository不是默认的 /root/.m2/repository

因为 Jenkins 运行时的用户为 jenkins,而 maven 的仓库默认为 {user.home} 就变成了 var/lib/jenkins 下面的 .m2/repository

  • 使用 maven 的 settings.xml 指定本地仓库后 Jenkins 构建报错:==Could not create local repository at …==

因为 jenkins 用户没有读取当前仓库的权限,可以修改 /etc/default/jenkins => JENKINS_USER=root JENKINS_GROUP=root

    原文作者:liuwei89757
    原文地址: https://www.jianshu.com/p/2bdc9605e177
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞