centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文

centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+日志预警

搭建背景:公司让我在内网环境下搭建Jenkins,在配置docker时出了点问题,后续解决Bug后会更新。新人第一篇不足之处,请批评指正 持续更新中这段时间比较忙我会尽快完善,最后更新时间->20190827 12:53。。。。所以看到的是一部分

Jenkins背景(没有兴趣的朋友可以跳过)

可以去参考下面这位大哥的这里不过多解释了
持续集成、持续交付、持续部署(CI/CD)简介

jenkins介绍
Jenkins是一个独立的开源自动化服务器,可用于自动化各种任务,如构建,测试和部署软件。
Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行。
Jenkins只是一个平台,真正运作的都是插件。这就是jenkins流行的原因,因为jenkins什么插件都有Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,Hudson后来被收购,成为商业版。后来创始人又写了一个jenkins,jenkins在功能上远远超过hudson
Jenkins官网:https://jenkins.io/Jenkins
下载:http://updates.jenkins-ci.org/
jenkins的全部镜像:http://mirrors.jenkins-ci.org/status.html

第一步jenkins的安装

Jenkins 自身采用 Java 开发,所以要必须安装 JDK;
卸载openjdk
查询 rpm -qa|grep java
删除 rpm -e --nodeps java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64

安装jdk
链接:https://pan.baidu.com/s/1Tedaf1GMHqwcDxm-xTdw2g
提取码:sshl
解压jdk文件到当前文件夹
cd /usr/local/java
tar -zvxf jdk-8u211-linux-x64.tar.gz
设置环境变量(修改/etc/profile文件)
vim /etc/profile
(博客写到这里的时候遇到个$不显示的问题加个\ 就好了)
export JAVA_HOME=/usr/local/java/jdk1.8.0_211
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
重启
shutdown -r now 或 reboot
安装环境linux
以下四种方法任选一种
1.离线安装
http://pkg.jenkins-ci.org/redhat/wget http://pkg.jenkins-ci.org/redhat/jenkins-2.39-1.1.noarch.rpm
下载(也可以Windows下载再转过来)
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins.io.key
公钥sudo yum -y install jenkins-*.noarch.rpm
2.在线安装
http://pkg.jenkins-ci.org/redhat/sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.keysudo yum -y install jenkins
3基于Tomcat
安装并启动 Tomcat;从官网下载 jenkins.war 至 $CATALINA_BASE/webapps,Tomcat 会自动部署;浏览器访问:http://centos:8080/jenkins/
4.免安装wget http://mirrors.jenkins.io/war-stable/latest/jenkins.warsudo
java -jar jenkens.war ## 启动服务,直至看到日志
Jenkins is fully up and runningcurl http://localhost:8080/ ## Jenkins 已就绪

我采用的是第二种方式添加yum源下载安装Jenkins
[root@git ~]# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat/jenkins.repo
[root@git ~]# rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
[root@git ~]# yum -y install jenkins
DeltaRPMs disabled because /usr/bin/applydeltarpm not installed.
安装deltarpm :
yum provides ‘*/applydeltarpm’
yum install deltarpm
yum -y install jenkins
NoPresto metadata available for jenkins
https://pkg.jenkins.io/redhat/
下载对应的jenkins-2.191-1.1.noarch.rpm
rpm -ivh jenkins-2.76-1.1.noarch.rpm
为了防止端口冲突,修改Jenkins的默认端口8090
[root@git ~]# vim /etc/sysconfig/jenkins
JENKINS_USER=“root” ## 原值 “jenkins” 必须修改,否则权限不足;
JENKINS_PORT=JENKINS_USER=
安装目录: /usr/lib/jenkins;
工作目录: /var/lib/jenkins(对应于环境变量 JENKINS_HOME);
启动Jenkins
[root@git ~]# systemctl start jenkins
可能会出现
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第1张图片
根据提示查看状态发现是没找到java
可能一jdk安装问题可能二jdk安装目录非默认
我的java环境没问题所以是jenkins 没能找到正确的 java 目录,解决办法:
[root@localhost jenkins]# which java
/usr/local/java/jdk1.8.0_211/bin/java
先找到java位置,修改/etc/init.d/jenkins文件
[root@localhost jenkins]# vim /etc/init.d/jenkins
加入/usr/local/java/jdk1.8.0_211/bin/java
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第2张图片
[root@localhost jenkins]# systemctl daemon-reload
[root@localhost jenkins]# service jenkins start
再次启动,问题解决
在这里插入图片描述
查看状态
[root@git ~]# systemctl status jenkins
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第3张图片
查看日志文件: sudo tail -f /var/log/jenkins/jenkins.log 启动后会生成文件
如果浏览器首次进入时卡在“Jenkins 正在启动,请稍后…”修改hudson.model.UpdateCenter.xml

原值: http://updates.jenkins-ci.org/update-center.json

新值: http://mirror.xmission.com/jenkins/updates/update-center.json

或者: http://mirror.xmission.com/jenkins/updates/current/update-center.json

cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
systemctl restart jenkins

远程访问,主机需要开放端口8090(上文配置中指定的端口)
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8090 -j ACCEPT
可能会出现 iptables文件不存在,关掉防火墙在安装就有了
systemctl stop firewalld
systemctl mask firewalld
yum install -y iptables
yum install iptables-services
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第4张图片
开启服务
systemctl start iptables.service
systemctl restart iptables.service
systemctl enable iptables.service
检查iptables
service iptables status
ok了在使用上文开放端口即可
重启生效: sudo systemctl restart iptables
http://localhost:8090首次登陆需要解锁Jenkins
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第5张图片
密码已写入到日志中,该文件在服务器上:
/var/lib/jenkins/secrets/initialAdminPassword查看密码
[root@git ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
自定义Jenkins选择默认即可,会安装通用的社区插件,剩下的可以在使用的时候再进行安装,骚等即可
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第6张图片
完事之后创建个用户就能看到首页了,就像你看到的功能很多很好很强大我也只是用到了其中一部分
jenkins配置
默认情况下,任何用户都可以使用 Jenkins 进行发布。 可以进入相关设置:Manage Jenkins / Configure Global Security
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第7张图片
是否允许用户注册默认禁止如果想要创建用户可以勾上返回登录界面创建用户
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第8张图片
访问权限默认登录用户有所有权限,匿名用户没有任何权限
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第9张图片
代理和端口默认禁用设置为随机
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第10张图片
进入Manage Jenkins /Global Tool Configuration 配置相关环境所有工具取消自动安装

1.jdk
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第11张图片
2.git
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第12张图片

3.gradle

centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第13张图片

#添加插件:Manage Jenkins/pluginManager
如果在可选插件中看不到插件,点击高级:高级下有个提升站点:
站点地址:http://mirror.xmission.com/jenkins/updates/update-center.json

centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第14张图片
如果还是在线安装不了插件,也可以离线进行安装,下载好插件后,选择插件上传。
#需要添加的插件:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter等(如果出现错误提示)依赖错误:部分插件由于缺少依赖无法加载。要恢复这些插件提供的功能,需要修复这些问题并重启 Jenkins。
Pipeline version 2.6workflow-multibranch version 2.20 is missing. To fix, install version 2.20 or later.
原因版本低解决办法去官网下载能够使用的版本上传重启(可能会有多个版本低的情况)
在这个网站下载就行http://updates.jenkins-ci.org/download/plugins/
没有安装GitLab的朋友可以参考下面博文
https://blog.csdn.net/duyusean/article/details/80011540
接下来我们到gitLab创建Access Tokens,打开gitlab进入setting
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第15张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第16张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第17张图片

centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第18张图片
拿到token后进入jenkins
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第19张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第20张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第21张图片token可以在下图中管理
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第22张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第23张图片
出现错误-》检查端口、ip
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第24张图片
生成访问gitLab的ssh密钥
ssh-keygen -t rsa
查看公钥
cat /root/.ssh/id_rsa.pub
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第25张图片
在这里插入图片描述
将公钥拷贝到authorized_keys文件
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
进入gitLab创建SSH key
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第26张图片

Publish over SSH
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第27张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第28张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第29张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第30张图片

邮件通知centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第31张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第32张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第33张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第34张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第35张图片

在这里插入图片描述

centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第36张图片
设置邮件模板
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第37张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第38张图片
sonarqube整合jenkins
安装sonarqube之前需要注意
1、准备jdk环境,版本1.8.102
2、准备mysql数据库,版本5.6以上
3、创建sonar连接数据库信息:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER ‘sonar’ IDENTIFIED BY ‘sonar’;
GRANT ALL ON sonar.* TO ‘sonar’@’%’ IDENTIFIED BY ‘sonar’;
GRANT ALL ON sonar.* TO ‘sonar’@‘localhost’ IDENTIFIED BY ‘sonar’;
两个版本我装的是6.7最新的是7.9,1.19是6.7的中文插件
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第39张图片
百度网盘:
链接:https://pan.baidu.com/s/1NPlZKQZELcpzif9gwlHbOg
提取码:tivy

配置sonarqube连接数据库文件
vi /opt/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.sorceEncoding=UTF-8sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

特别说明:从SonarQube 6.6开始,升级到了Elasticsearch 5,禁止了root权限,也就是通过root启动SonarQube 6.7的服务被禁止了。因此,需要新建一个linux用户,并赋权,再通过该用户启动soanr服务,就可以解决该问题。
#新建一个linux用户:
useradd sonar
#新建一个用户组,名为“et”:
groupadd et
给用户赋权文件夹下的操作权限
chown linux用户名 安装目录 -R
查看端口9000
netstat -nptl
启动sonarqube
cd /usr/local/software/sonarqube-6.7.7/bin/linux-x86-64
su sonar
./sonar.sh start
./sonar.sh status
访问:http://192.168.1.59:9000/ admin/admin
生成: d091ac0180f8b703ac0a5768062adfa07d626a1e #整合jenkins时需要使用
把中文插件放到这个directory
在这里插入图片描述
重启完成
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第40张图片
官方插件库:https://docs.sonarqube.org/display/PLUG/Plugin+Library

jenkins需要的插件
SonarQube Scanner for Jenkins
Git plugin
Email Extension Plugin

配置SonarQube Server
先到sonar中设置权限
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第41张图片
生成token
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第42张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第43张图片

需要的插件:
SonarQube Scanner for Jenkins
Git plugin
Email Extension Plugin

Docker配置
插件安装:
Docker
SSH
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第44张图片
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第45张图片
配置TCP访问接口
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
在这里插入图片描述
重新加载配置文件
systemctl daemon-reload
systemctl restart docker
开放端口
jenkins配置docker
centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文_第46张图片
未完待续。。。

你可能感兴趣的:(jenkins)