持续集成部署工具jenkins简介

1. Jenkins基本介绍

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。现在企业一般使用jenkins落实持续集成、持续部署、持续交付。也可以利用jenkins实现docker自动化流水

2. 安装gitlab

gitlab部署 参考 https://blog.51cto.com/flyfish225/2145495
下载gitlab 最新版
https://packages.gitlab.com/gitlab/gitlab-ce/
安装环境初始化
yum install curl policycoreutils openssh-server openssh-clients postfix -y
默认,使用 Postfix 发送邮件

service postfix start
chkconfig postfix on
systemctl stop firewalld
systemctl disable firewalld
安装gitlab-ce
配置并启动GitLab
gitlab-ctl reconfigure #重新配置应用程序。相当于初始化一下
gitlab-ctl status
vim /etc/gitlab/gitlab.rb
external_url ‘http://ip:8899
unicorn[‘port‘] = 8899
sed -i ‘13s#http://gitlab.example.com#http://192.168.217.30:8899#‘ /etc/gitlab/gitlab.rb
改:13 external_url ‘http://gitlab.example.com
为:13 external_url ‘http://192.168.217.30:8899
添加unicorn[‘port‘] =8899 ,防止端口冲突
gitlab的管理

关闭gitlab: # gitlab-ctl stop
启动gitlab: # gitlab-ctl start
重启gitlab: # gitlab-ctl restart
登陆后台
安装git yum install git
基本命令如下:
git config --global user.name "tuwei"
git config --global user.email "[email protected]"
git clone [email protected]:tuwei/test01.git
cd test01
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
上传本地项目到gitlab仓库。
git init
git add .
git commit -m "push current files"
git remote add origin http://192.168.217.30:8090/devopsedu/game-of-life.git

如果提示origin存在
git remote rm origin
git remote add origin http://192.168.217.30:8090/devopsedu/game-of-life.git
git push -u origin master

3. maven安装

下载二进制解压到/usr/local目录使用
maven官网的地址是http://maven.apache.org/
添加环境变量
MAVEN_HOME=/usr/local/apache-maven-3.6.0
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
source /etc/profile
测试mvn -v

4. 安装JDK

yum -y install java-1.8.0

5. 安装jenkins

http://pkg.jenkins.io/redhat-stable/
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
后台登陆进行安装配置,提示jenkins离线,修改配置
vim /var/lib/jenkins/updates/default.json 将链接地址改为www.baidu.com
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml 将https改为http然后重启jenkins服务
主配置文件 vim /etc/sysconfig/jenkins。

根据页面提示安装推荐的插件。

Jenkins后台插件管理是核心功能,filter中搜索gitlab,安装三个
搜索Blue ocean

6. Jenkins基于角色的权限管理RBAC

实际生产环境中一般不使用admin即管理员权限,可以根据角色进行权限管理,如开发、测试、运维等。
这里需要安装一个插件:搜索role,很重要的一个插件。
安装插件后需要启用插件,在系统管理-全局安全配置。
授权策略改为刚安装的role,然后保存。
创建角色-用户-给用户指定角色。
在系统管理-管理用户中创建用户,然后在Manage and Assign Roles中通过Manage Roles创建角色,接着是通过Assign Roles指定用户角色。

7. Jenkins Pipeline

生产环境一般使用pipeline实现自动化流水,当然也可以使用自由式风格构建作业。
语法
node {
stage(‘代码拉取‘){
echo "code pull"
}
stage(‘代码构建‘){
echo "code bbuild"
}
stage(‘unit test‘){
echo "unit test"
}
}
根据之前安装好的gitlab,创建一个group,然后在该group下创建一个demo项目

8. 分布式构建

生产环境一般master不进行业务构建,利用slave节点去构建作业,master主责管理slave。在master 节点管理中添加slave节点,并配置master构建数为0

9. 质量扫描sonarqube

安装sonarqube
1.为Sonar准备MySQL数据库,版本必须大于5.6。

  1. 创建sonar数据库

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

mysql> GRANT ALL ON sonar.* TO ‘sonar‘@‘localhost‘ IDENTIFIED BY ‘[email protected]‘;

mysql> GRANT ALL ON sonar.* TO ‘sonar‘@‘%‘ IDENTIFIED BY ‘[email protected]‘;

mysql> FLUSH PRIVILEGES;
3.安装配置启动sonar
yum install -y java-1.8.0
sonar网站下载,解压到/usr/local下并
创建普通用户如sonar,然后将sonar目录属主和属组改为sonar
创建软链接
编写配置文件,修改数据库配置

[[email protected] conf]# vim sonar.properties

sonar.jdbc.username=sonar

sonar.jdbc.password=123456

sonar.jdbc.url=jdbc:mysql://192.168.217.32:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
同时根据服务器内存情况调整jvm中内存参数。
Vim /usr/local/sonarqube/elasticsearch/config/jvm.options
-Xms500m
-Xmx500m
由于本次测试环境虚拟机内存不到1G,故该调整为500m

启动sonar:切换到sonar用户下,执行/usr/local/sonarqube/bin/linux-x86-64/sonar.sh start
浏览器访问192.168.217.32:9000
sonar网站 www.sonar.org 文档:https://docs.sonarqube.org/latest/
安装sonarqube scanner进行质量扫描
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
Wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip
解压到/usr/local下,修改vim /usr/local/sonar-scanner-3.3.0.1492-linux/conf/sonar-scanner.properties
#----- Default SonarQube server
sonar.host.url=http://192.168.217.32:9000

#----- Default source code encoding
sonar.sourceEncoding=UTF-8
使用:利用sonar网站提供的代码进行测试 https://github.com/sonarsource
git clone https://github.com/SonarSource/sonar-scanning-examples.git

创建文件vim sonar-project.properties
[[email protected] sonarqube-scanner-maven]# cat sonar-project.properties

must be unique in a given SonarQube instance

sonar.projectKey=devopsedu-demo

this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.

sonar.projectName=devopsedu-demo
sonar.projectVersion=1.0

Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.

This property is optional if sonar.modules is set.

sonar.sources=.
sonar.java.binaries=.

Encoding of the source code. Default is default system encoding

sonar.sourceEncoding=UTF-8

10. jenkins和sonarqube集成

jenkins安装sonar插件,系统配置sonarqube server地址及token信息。该token需要在sonarqube中进行创建

11. jenkins和gitlab集成

安装gitlab插件,系统配置,gitlab中设置aceess token。
Jenkins构建作业时配置触发器,并生成Secret token
Gitlab中添加webhook,在相关项目中添加

12. Jenkins权限管理之分配job给角色

将不同的job分配给不同的人员且赋予一定的操作权限。
之前有创建用户并且分配,这里创建一个project role,模式采用正则表达式方式,如role为user ,pattern为 user.*,分配权限build read workspace replay tag,然后分配用户指定该角色(item roles)

原文地址:https://blog.51cto.com/tuwei/2384820

时间: 2024-08-08 16:46:33

持续集成部署工具jenkins简介的相关文章

python 自动化部署工具Fabric简介

自动化部署工具Fabric简介 Fabric就是一个帮助我们在上线时减少重复/繁琐操作的自动化部署利器,对于缺乏成熟运维平台的众多小公司的运维或开发人员来说,掌握这个工具是有必要的. 1. Fabric是什么 Fabric官方文档的描述如下:      Fabric is a Python (2.5-2.7) library and command-line tool for streamlining the use of SSH for application deployment or sy

持续集成(CI)工具------Hudson/Jenkins(Continuous Integration)安装与配置具体解释

本文同意转载.但请标明出处:http://blog.csdn.net/wanghantong/article/40985653/, 版权全部 文章概述: 一. 描写叙述了持续集成工具Hudson的安装与配置 二. 描写叙述了Git .Maven环境的安装与配置 三. 描写叙述了扩展邮件通知及其配置方法 四. 描写叙述了jira的配置 一.Hudson简单介绍 Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具.用于监控持续的软件版本号公布/測试项目 下载地址:http://

持续集成(CI)工具------Hudson(Continuous Integration)安装与配置详解

本文允许转载,但请标明出处:http://blog.csdn.net/wanghantong/article/, 版权所有 文章概述: 一. 描述了持续集成工具Hudson的安装与配置 二. 描述了Git .Maven环境的安装与配置 三. 描述了扩展邮件通知及其配置方法 四. 描述了jira的配置 一.Hudson简介 Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控持续的软件版本发布/测试项目 下载地址:http://eclipse.org/download

持续集成之②:整合jenkins与代码质量管理平台Sonar并实现构建失败邮件通知

一:Sonar是什么?Sonar 是一个用于代码质量管理的开放平台,通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如FindBugs,PMD等)直接显示在Web页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理.在对其他工具的支持方面,Sonar 不仅提供了对

【持续集成】GIT+jenkins+snoar——jenkins发布php、maven项目

一.持续集成 1.1 什么是持续集成? continuous integration (CI),持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员,每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化构建(包括编译.发布.自动化测试)来验证,从而尽快的发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件. 1.2 持续集成最佳实践 维护一个单一的代码库 使构建自动化 执行测试是构建的一部分 集成日志及历史记录 使用统

【持续集成】使用Jenkins实现多平台并行集成

使用Jenkins实现多平台并行集成 二月 15, 2012 暂无评论 我们的后端C应用都是支持跨平台的,至少目前在Linux和Solaris上运行是没有问题的,这样一来我们在配置持续集成环境时就要考虑如何实现在代码Commit后触发多平台并行(同时)集成这个需求. 之前使用Buildbot时是通过为一个Scheduler配置多个Builder满足这个需求的.但现在要换成Jenkins,我们如何来实现呢?昨天在折腾Jenkins时我把问题想简单了,今天细致查看了一下Build Log后才发现之前

jenkins+ git +maven 自动持续集成部署

1.安装jenkins,官网地址https://jenkins.io/ 2.配置jenkins的全局配置 3.安装必须的插件  这个是部署的插件 Deploy to container Plugin,这是maven的插件 Maven Integration plugin 4.项目配置 6.tomcat 的配置 打开conf目录下面的tomcat-users.xml 添加以下内容<user username="admin" password="admin" ro

Jenkins+Jdk+Git+Maven持续集成部署Weblogic实例项目

通过Jenkins部署Weblogic项目前,服务器需要提前安装好Weblogic服务,Weblogic服务搭建请百度或者在博客园搜索我的帖子"Weblogic服务搭建" 登录Jenkins http://IP或域名:8080 先构建一个"Build项目" 左侧导航栏,选择"新建任务",然后输入一个任务名称,自定义,选择第二项"构建一个maven项目",点击确定. General 勾选"丢弃旧的构建" 勾选

jenkins+maven+git持续集成部署问题总结

1.这个问题出现在单独构建一个项目的子模块时,很奇怪,构建父项目没有问题. Executing Maven: -N -B -f /root/.jenkins/workspace/newMer/pom.xml clean install -Dmaven.test.skip=true tomcat:run java.lang.NullPointerException at jenkins.maven3.agent.Maven33Main.launch(Maven33Main.java:176) at