一、安装jdk
1.1上传压缩包到/root/opt目录下
链接:https://pan.baidu.com/s/169J2JP039A9BIFfNeFTqGg
提取码:abcd
1.2使用tar -zxvf 命令解压,并使用ln -s 命令创建软连接
1.3使用vim /etc/profile 配置环境变量如下
1.4使用source /etc/profile 刷新环境变量,并使用java -version命令检测,看到如下则成功
二、配置mysql(使用已有的数据库可略过)
2.1上传压缩包到/root/opt目录下
链接:https://pan.baidu.com/s/1pnQY3FBDuwIQFRUt7IpIRA
提取码:abcd
2.2使用tar -zxvf 命令解压,并使用ln -s命令创建软连接
2.3创建mysql用户和用户组,并使用id mysql 进行测试
2.4进入mysql安装目录,并创建data目录
2.5修改安装目录的权限
2.6修改配置文件/etc/my.cnf如下
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
init-connect=‘SET NAMES utf8’
basedir=/opt/mysql #根据自己的安装目录填写
datadir=/opt/mysql/data #根据自己的mysql数据目录填写
socket=/tmp/mysql.sock
max_connections=200 # 允许最大连接数
character-set-server=utf8 # 服务端使用的字符集默认为8比特编码的latin1字符集
default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎
2.7初始化mysql,
/opt/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
2.8修改安装目录的权限
2.9后台启动msyql服务,因为环境变量已配置,所以可以直接用
mysqld_safe --user mysql &
2.10登陆测试
mysql -u root -p # 默认没有密码,直接敲回车就可以
use mysql;
update user set authentication_string=password(‘这里填你设置的密码’) where user=‘root’;
flush privileges;
exit;
2.11配置自启动
#mysql启动脚本为:/opt/mysql/support-files/mysql.server
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysql
#添加服务
chkconfig --add mysql
#显示服务列表
chkconfig --list
#开机启动
chkconfig --level 345 mysql on
#测试添加的服务是否能用
service mysql status #查看状态
service mysql start #启动mysql服务
service mysql stop #停止mysql服务
三、配置sonarqube
3.1上传压缩包
链接:https://pan.baidu.com/s/10gvC9xbgrpyOszrdS5zwzA
提取码:abcd
3.2使用unzip 命令进行解压,并创建了软连接
3.3创建sonar用户,并修改sonarqube安装目录的权限(不可省略,否则启动会失败)
3.4修改/opt/sonarqube/conf/sonar.properties文件,使用mysql作为存储(有端口冲突的时候也可以在这里修改,如果是云服务器需要开放端口的安全组)
3.5修改/opt/sonarqube/bin下的linux-x86-64为linux,而后环境变量就可以使用,切换到sonar用户启动sonarqube服务(启动失败请排查sonarqube目录下的log文件夹)
3.6在浏览器中输入http://ip:9000,看到如下界面即为启动成功
3.7使用admin(账号),admin(密码)登录之后,可通过该选项添加插件(仅针对于现有的版本,低版本的请选择历史版本下载,下方连接是对应版本的插件,可以删上传到安装目录下的extensions/plugins/目录下,重启sonarqube,即可使用,从上到下分别是findbugs插件,中文插件,pdf导出插件,plsql插件)
链接:https://pan.baidu.com/s/17Q2FxHwNLJEBMdXDNsYD-w
提取码:abcd
四、配置sonarscanner
4.1上传压缩包
链接:https://pan.baidu.com/s/1vYGH0WqjLcJh0CAqG0QZ0w
提取码:abcd
4.2解压压缩包,并创建软连接
4.3修改配置文件,指定sonarqube服务器,编码格式,数据库连接,项目名(无规定命名,但唯一),项目主键(无规定命名,但唯一),项目保存位置,源码位置,编译过的文件位置,以及语言
sonar.host.url=http://localhost:9000
sonar.sourceEncoding=UTF-8
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.login=admin
sonar.password=admin
sonar.projectKey=test
sonar.projectName=test
sonar.projectVersion=2.2.0
sonar.projectBaseDir=项目保存位置
sonar.sources=源码位置(从基础路径下开始的文件路径)
sonar.java.binaries=编译过的文件位置(从基础路径下开始的文件路径)
sonar.language=java
4.4环境变量已配置,可以直接使用命令sonar-scanner进行执行(注意:配置文件中路径位置需要指定正确)
4.5扫描后,代码情况可以在sonarqube服务器上看到,点开项目,在更多的地方可以下载pdf文件,pdf导出需要设置账号名密码
五、安装jenkins
5.1安装liunx版的jenkins
https://pkg.jenkins.io/redhat-stable/
5.2启动jenkins服务
5.3修改镜像源为国内的https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
5.4使用密码登陆jenkins,密码保存位置如下
5.5找到/var/lib/jenkins目录下的updatas目录中default.json,使用如下文件替换
sed -i ‘s/http://updates.jenkins-ci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g’ /var/lib/jenkins/updates/default.json && sed -i ‘s/http://www.google.com/https://www.baidu.com/g’ /var/lib/jenkins/updates/default.json
5.6在进入ip:8080端口即可看到如下界面,选择安装推荐的插件(如果后续需要新的插件,可以在插件管理中下载)
5.7设置新的用户,以及jenkins的访问地址
5.8为了防止密码忘记,设置可以注册账号
5.9在服务器上安装maven和git(也可以通过jenkins自动安装)
maven:
链接:https://pan.baidu.com/s/16yApWtvJQpMxMg8FnOvIug
提取码:abcd
tar -zxvf 解压,创建软件链接
修改数据源为阿里的
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
添加环境变量,刷新环境变量,检测maven
git:
yum源安装,git --version检测
5.10 jenkins中配置全局
5.11配置系统设置
六、配置mail工具
https://blog.csdn.net/weixin_43909848/article/details/107109895?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522160913094216780271180358%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fall.%252522%25257D&request_id=160913094216780271180358&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-5-107109895.nonecase&utm_term=sonarqube%E9%85%8D%E7%BD%AEpdf
6.1yum源安装mail
6.2生成SSL证书
#生成证书
#qq的话把ali.crt替换成qq.crt
$ mkdir ~/.certs
$ echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne ‘/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p’ > ~/.certs/qq.crt
$ certutil -A -n “GeoTrust SSL CA” -t “C,” -d ~/.certs -i ~/.certs/ali.crt
$ certutil -A -n “GeoTrust Global CA” -t “C,” -d ~/.certs -i ~/.certs/ali.crt
查看证书权限
$ cd ~/.certs && ll
总用量 80
-rw-r–r-- 1 root root 2277 4月 19 10:47 ali.crt
-rw------- 1 root root 65536 4月 19 10:56 cert8.db
-rw------- 1 root root 16384 4月 19 10:56 key3.db
-rw------- 1 root root 16384 4月 19 10:48 secmod.db
#验证,显示如下信息表示 SSL 证书配置生成及安装完成
$ certutil -A -n “GeoTrust SSL CA - G3” -t “Pu,Pu,Pu” -d ./ -i ali.crt
Notice: Trust flag u is set automatically if the private key is present.
6.3配置邮箱信息
配置邮箱参数,文件末尾添加以下内容
$ vi /etc/mail.rc
ssl 校验设置,配置 SSL 证书就可以注释掉
邮箱账户,对方收到邮件时显示的发件人
set from=@qq.com
//这是QQ邮箱的stmp地址,阿里云邮箱为:smtps://smtp.mxhichina.com:465
set smtp=smtp.qq.com
#邮箱账户
set smtp-auth-user=1125
#邮箱密码,部分邮箱(163、qq)为授权密码而非邮箱密码
set smtp-auth-password=xjvfwiwlie*****
smtp 认证方式。默认是 login
set smtp-auth=login
#如果用阿里邮箱,这个要注释掉,否则会报错 SSL/TLS handshake failed: SSL received a malformed Alert record.
set smtp-use-starttls
set ssl-verify=ignore
#设置 nss 配置目录,上一步骤 SSL 证书目录
set nss-config-dir=/home/jenkins/.certs
6.4使用jenkins用户配置邮件发送
mkdir -p /home/Jenkins/.certs
cd /root/.certs
cp * /home/Jenkins/.certs
6.5测试发送邮件功能
su jenkins
#发送邮件
$ echo “邮件内容” | mail -s “邮件标题” qq邮箱
七、配置项目
https://www.cnblogs.com/mingyue5826/p/10768486.html
7.1新建一个自由风格的软件项目,命名为aaa
7.2源码管理设置为git,配置如下
7.3配置触发器如下
7.4登陆git仓库,配置如下
7.5将上方生成的凭据添加到如下位置
7.6增加构建步骤
sonar.projectKey=
J
O
B
N
A
M
E
s
o
n
a
r
.
s
o
u
r
c
e
s
=
.
s
o
n
a
r
.
p
r
o
j
e
c
t
N
a
m
e
=
{JOB_NAME} sonar.sources=. sonar.projectName=
JOBNAMEsonar.sources=.sonar.projectName={JOB_NAME}
sonar.projectVersion=
B
U
I
L
D
V
E
R
S
I
O
N
s
o
n
a
r
.
l
a
n
g
u
a
g
e
=
j
a
v
a
s
o
n
a
r
.
s
o
u
r
c
e
E
n
c
o
d
i
n
g
=
U
T
F
−
8
s
o
n
a
r
.
s
o
u
r
c
e
s
=
{BUILD_VERSION} sonar.language=java sonar.sourceEncoding=UTF-8 sonar.sources=
BUILDVERSIONsonar.language=javasonar.sourceEncoding=UTF−8sonar.sources=WORKSPACE
sonar.java.binaries=$WORKSPACE
export LANG=“zh_CN.UTF-8”
export LC_ALL=“zh_CN.UTF-8”
sonar_url=aaa
rm -f
J
O
B
N
A
M
E
.
p
d
f
w
g
e
t
h
t
t
p
:
/
/
s
o
n
q
r
q
u
b
e
的
服
务
器
i
p
:
9000
/
a
p
i
/
p
d
f
r
e
p
o
r
t
/
g
e
t
?
c
o
m
p
o
n
e
n
t
K
e
y
=
{JOB_NAME}.pdf wget http://sonqrqube的服务器ip: 9000/api/pdfreport/get?componentKey=
JOBNAME.pdfwgethttp://sonqrqube的服务器ip:9000/api/pdfreport/get?componentKey={sonar_url} -O
J
O
B
N
A
M
E
.
p
d
f
e
c
h
o
"
{JOB_NAME}.pdf echo "
JOBNAME.pdfecho"{JOB_NAME}-第${BUILD_NUMBER}次代码扫描报告" > mail.txt
echo “项目名称 :
J
O
B
N
A
M
E
"
>
>
m
a
i
l
.
t
x
t
e
c
h
o
"
构
建
编
号
:
第
{JOB_NAME}" >> mail.txt echo "构建编号 : 第
JOBNAME">>mail.txtecho"构建编号:第{BUILD_NUMBER}次构建” >> mail.txt
echo “代码路径 : ${SVN_URL}” >> mail.txt
echo “构建日志 : ${BUILD_URL}consoleText” >> mail.txt
echo “构建Url : ${JOB_URL}” >> mail.txt
echo “工作目录 : ${WORKSPACE}” >> mail.txt
cd
W
O
R
K
S
P
A
C
E
s
e
n
d
1
=
{WORKSPACE} send1=
WORKSPACEsend1=(git show -s --format=%ae)
mail -a ${WORKSPACE}/*.pdf -s “sonarqube report” ${send1}< ${WORKSPACE}/mail.txt
搭建完成,自行测试