使用jenkins构建自动化发布系统之构建jenkins

使用jenkins构建自动化发布系统之构建jenkins

牛恒博 DevOps视角

jenkins安装

安装


设置jenkins目录 在catalina.sh 中定义jenkins


$ export CATALINA_OPTS="-DJENKINS_HOME=/path/to/jenkins_home/ -Xmx512m"
$ catalina.sh start

在linux环境变量中定义jenkins


$ export JENKINS_HOME=/path/to/jenkins_home/
$ catalina.sh start

在 context中定义jenkins-home


<Context ...>
  <Environment name="JENKINS_HOME" value="/path/to/jenkins_home/" type="java.lang.String"/>
</Context>

安装及初始化



wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
java -jar jenkins.war
http://localhost:8080

使用jenkins构建自动化发布系统之构建jenkins

安装常用插件


选择安装

使用jenkins构建自动化发布系统之构建jenkins
开始安装


使用jenkins构建自动化发布系统之构建jenkins
插件安装完成后,开始配置admin的用户名密码。 开始使用jenkins
使用jenkins构建自动化发布系统之构建jenkins
使用jenkins构建自动化发布系统之构建jenkins

更改jenkins的家目录


jenkins的家目录默认路径在/root/.jenkins/路径。根据启动方式的不同,修改方式略有不同。

1.直接命令行启动java -jar jenkins.war


cat >>/etc/profile<<EOF
export JENKINS_HOME=/data/db/jenkins/
EOF
source  /etc/profile

2.使用tomcat容器启动


vim /data/app/tomcat/bin/catalina.sh
export JENKINS_HOME=/data/db/jenkins/
# OS specific support.  $var _must_ be set to either true or false.

3.修改jenkins.war包(不推荐)


vim jenkins /web.xml
  <!-- if specified, this value is used as the Hudson home directory -->
  <env-entry>
    <env-entry-name>HUDSON_HOME</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>/data/db/jenkins/</env-entry-value> #填入路径
  </env-entry>

开始安装插件


jenkins最常用的就是插件,所以我们从安装插件开始。

方法一

路径:系统管理-->管理插件,开始安装插件。

  • Build Pipeline Plugin:build 流程配置插件。
  • Gitlab Plugin :gitlab pull 插件。
  • Gitlab Hook Plugin:gitlab 钩子插件。
  • Build Authorization Token Root Plugin :用户权限验证插件。
  • SonarQube Scanner for Jenkins :代码质量管理插件。
  • Parameterized Remote Trigger Plugin :远程触发插件。
  • AnsiColor(可选):这个插件可以让Jenkins的控制台输出的log带有颜色(就和linux控制台那样)
  • Maven Integration plugin
  • Extended Choice Parameter Plug-In: 图像界面配置多选参数
    使用jenkins构建自动化发布系统之构建jenkins

    方法二

上传插件 Jenkins-插件管理-高级-上传插件

使用jenkins构建自动化发布系统之构建jenkins

方法三

直接上传到文件目录(根据上文中密码文件的路径,可以知道jenkins的目录在/root/.jenkins/中)/root/.jenkins/plugins重启Jenkins

创建一个构建过程


输入项目名称--选择构建一个自由风格的软件项目

使用jenkins构建自动化发布系统之构建jenkins

配置源码下载地址

使用jenkins构建自动化发布系统之构建jenkins

添加gitlab的认证key,这里配置ssh的私钥

使用jenkins构建自动化发布系统之构建jenkins

gitlab中添加ssh-key的公钥

使用jenkins构建自动化发布系统之构建jenkins

配置构建过程

使用jenkins构建自动化发布系统之构建jenkins
这里有个需要注意的地方,比如我们想要在远端的机器上执行相关的脚本怎么办?

一个原理: jenkins 在执行过程中,使用的是jenkins的用户在执行。
两种方法:

  • 所有服务器跟jenkins做无密钥登录。
  • 所有服务器的root做无密钥登录。
    推荐使用第二种,因为发布的脚本,可能涉及权限的问题,如果使用jenkins可能会出现权限不足的情况。

最佳方案


sudo ssh -p 52113 [email protected] "/data/scripts/web-deploy.sh"

执行立即构建-查看控制台输出

使用jenkins构建自动化发布系统之构建jenkins
解释说明:

jenkins会git clone到jenkins的/workspace上。


[root@linux-node1 web-build16:29:46]#pwd 
/root/.jenkins/workspace/web-build
[root@linux-node1 web-build16:29:56]#ls -a 
.  ..  .git  index.html  README.md
[root@linux-node1 web-build16:29:58]#
[root@linux-node1 web-build16:31:49]#cat /tmp/1.txt 
2017-03-01

敬请等待下篇:Sonar代码质量管理

猜你喜欢

转载自blog.51cto.com/15127511/2658078