栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Jenkins学习

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jenkins学习

文章目录
  • 一、jenkins是什么
  • 二、jenkins的特征
  • 三、Jenkins安装和持续集成环境配置
  • 四、Pipeline流水线项目构建
  • 五、自动触发构建
  • 六、配置邮箱服务器发送构建结果
  • 八、代码审查
  • 总结

一、jenkins是什么

Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。
官网: http://jenkins-ci.org/。

二、jenkins的特征
    1.开源,Java语言开发,支持持续集成,持续部署。
	2.易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。	
	3.消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。	
	4.分布式构建:支持Jenkins能够让多台计算机一起构建/测试。	
	5.文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。	
	6.丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker
三、Jenkins安装和持续集成环境配置

1)、windows10系统,VMware16
CentOS7(官网下载链接:http://isoredirect.centos.org/centos/7/isos/x86_64/)

名称安装软件
代码托管服务器Gitlab-12.4.2
持续集成服务器jenkins-2.277.4-1.1,JDK1.8,Maven3.6.2,Git,SonarQube
应用测试服务器JDK1.8,Tomcat8.5

2)、Gitlab安装

 1. 安装相关依赖
 	yum -y install policycoreutils openssh-server openssh-clients postfix
 2. 启动ssh服务&设置为开机启动
 	systemctl enable sshd && sudo systemctl start sshd
 3. 设置postfix开机自启,并启动,postfix支持gitlab发信功能
 	systemctl enable postfix && systemctl start postfix
 4. 开放ssh以及http服务,然后重新加载防火墙列表
	firewall-cmd --add-service=ssh --permanent
	firewall-cmd --add-service=http --permanent
	firewall-cmd --reload
	如果关闭防火墙就不需要做以上配置
 5.下载gitlab包,并且安装
在线下载安装包:
wget http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
	安装:
	yum install policycoreutils-python
	rpm -i gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
 6.修改gitlab配置
 	vi /etc/gitlab/gitlab.rb
 	修改gitlab访问地址和端口,默认为80,我们改为82
 	external_url 'http://虚拟机IP:82'
 	nginx['listen_port'] = 82
 7. 重载配置及启动gitlab
	gitlab-ctl reconfigure
	gitlab-ctl restart
 8. 把端口添加到防火墙
	firewall-cmd --zone=public --add-port=82/tcp --permanent
	firewall-cmd --reload
	启动成功后,看到以下修改管理员root密码的页面,修改密码后,然后登录即可
	登录后可以将自己的项目上传到gitlab上

3)、Jenkins安装

1)安装JDK
	yum install java-1.8.0-openjdk* -y
	安装目录为:/usr/lib/jvm
2)获取jenkins安装包
	https://mirrors.tuna.tsinghua.edu.cn/
	安装文件:jenkins-2.190.3-1.1.noarch.rpm
3)把安装包上传到192.168.66.101服务器,进行安装
	rpm -ivh jenkins-2.277.4-1.1.noarch.rpm
4)修改Jenkins配置
	vi /etc/sysconfig/jenkins
	修改内容如下:
	JENKINS_USER="root"
	JENKINS_PORT="8888"
5)启动Jenkins
	systemctl start jenkins
	注意:本服务器把防火墙关闭了,如果开启防火墙,需要在防火墙添加端口
	firewall-cmd --zone=public --add-port=8888/tcp --permanent
	firewall-cmd --reload
6)打开浏览器访问
7)获取并输入admin账户密码
	cat /var/lib/jenkins/secrets/initialAdminPassword
8)修改Jenkins插件下载地址
注意:需要等jenkins的插件完全下载完,这个目录才会出现
/var/lib/jenkins/updates
修改为国内的镜像:
sed -i 's/http://updates.jenkins-ci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g' default.json && 
sed -i 's/http://www.google.com/https://www.baidu.com/g' default.json

最后在jenkins可视化界面中Manage Plugins点击Advanced,把Update Site改为国内插件下载地址:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

4)、Git安装

yum install git -y
git --version 安装后查看版本

5)、安装Credentials Binding插件,在可选插件中搜索并安装

成功之后

可以在凭证配置中配置

添加凭证

之后就可以新建任务进行测试。

使用SSH测试:

1)ssh-keygen -t rsa  生成秘钥和公钥
	id_rsa:私钥文件
	id_rsa.pub:公钥文件 
	在/root/.ssh/目录保存
2)把生成的公钥放在Gitlab中
以root账户登录->点击头像->Settings->SSH Keys
复制刚才id_rsa.pub文件的内容到这里,点击"Add Key" 

在jenkins中创建任务,并添加凭证,使用id_rsa的内容

6)Maven安装和配置

1)先上传apache-maven-3.6.2-bin.tar.gz
	tar -xzf apache-maven-3.6.2-bin.tar.gz 解压
	mkdir -p /opt/maven 创建目录
	mv apache-maven-3.6.2target/surefire-reports/TEST-*.xml'
        archiveArtifacts 'targetmaster']],
            doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [],
            userRemoteConfigs: [[credentialsId: 'gitlab凭证', url:
            '项目地址']]])
            }
        }
        stage('编译构建') {
            steps {
            sh label: '', script: 'mvn clean package'
            }
        }
        stage('项目部署') {
            steps {
            deploy adapters: [tomcat8(credentialsId: 'tomcat凭证', path: '', url: 'tomcat访问地址')], contextPath: "/web-demo",
            war: 'targettesttarget/**

sonar.java.source=1.8
sonar.java.target=1.8

# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8

修改jenkinsfile文件

pipeline {
agent any
    stages {
        stage('拉取代码') {
            steps {
            checkout([$class: 'GitSCM', branches: [[name: '${branch}']],
            doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [],
            userRemoteConfigs: [[credentialsId: '7c804458-849b-4e6b-8360-63041800aedd', url:
            'git@192.168.226.131:jenkins-01/web-demo.git']]])
            }
        }
        stage('编译构建') {
            steps {
            sh label: '', script: 'mvn clean package'
            }
        }
        stage('SonarQube代码审查') { 
            steps{ 
                script { 
                    scannerHome = tool 'sonarqube-scanner' 
                }
                withSonarQubeEnv('sonarqube-6.7.4') { 
                    sh "${scannerHome}/bin/sonar-scanner" 
                } 
            } 
        }
        stage('项目部署') {
            steps {
            deploy adapters: [tomcat8(credentialsId: '67f00f94-5472-448a-be39-ef350374df8a', path: '', url: 'http://192.168.226.133:8080')], contextPath: "/web-demo",
            war: 'target/*.war'
            }
        }
    }
    post {
        always{
           emailext(subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',body: '${FILE,path="email.html"}',to: 'xx@qq.com')
        }
    }
}

SonarQube的UI界面j就可以查看审查结果

总结

学习笔记!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/851209.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号