使用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.warjava -jar jenkins.warhttp://localhost:8080

安装常用插件


选择安装


开始安装



插件安装完成后,开始配置admin的用户名密码。 开始使用jenkins

更改jenkins的家目录


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

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

cat >>/etc/profile<<EOFexport JENKINS_HOME=/data/db/jenkins/EOFsource  /etc/profile

2.使用tomcat容器启动

vim /data/app/tomcat/bin/catalina.shexport 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的目录在/root/.jenkins/中)/root/.jenkins/plugins重启Jenkins

创建一个构建过程


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

配置源码下载地址

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

gitlab中添加ssh-key的公钥

配置构建过程


这里有个需要注意的地方,比如我们想要在远端的机器上执行相关的脚本怎么办?

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

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

最佳方案

sudo ssh -p 52113 root@192.168.56.13 "/data/scripts/web-deploy.sh"

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


解释说明:

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代码质量管理

©著作权归作者所有:来自51CTO博客作者mob604756e75222的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. JDK安装及注意事项
  2. 最丝滑的k8s部署工具Sealos,你说香不香?
  3. 使用jenkins构建自动化发布系统之Sonar 代码质量管理
  4. Jenkinsfile入门:Pipeline使用Maven构建java项目
  5. httpd-2.4.46 (apache) 基于网络源码包安装
  6. 完整的二进制安装Kubernetes高可用集群
  7. 二进制安装Kubernetes高可用集群(上)
  8. Xtrabackup备份
  9. Kafka 集群部署

随机推荐

  1. 用网络adb连接调试Android
  2. Android常见问题总结(七)
  3. Android BitmapShader 实战 实现圆形、圆
  4. android binder机制之--(我是Server Porxy
  5. IOS与Android的session的存储区别
  6. Android Activity生命周期
  7. Android ListView内存优化
  8. Android studio项目不能编译,提示设备版本
  9. Android数据库代码备忘
  10. Android ndk开发时查看编译器预定义宏