centos7 svn + jenkins + sonar 配置管理

1、服务器

IP:

192.168.58.115

2、软件包下载

jdk-8u181-linux-x64.tar.gz

sonarqube-7.5.zip

sonar-l10n-zh-plugin-1.25-SNAPSHOT.jar

http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.zip

http://archives.jenkins-ci.org/war-stable/2.150.1/jenkins.war

https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.2.0.1227-linux.zip

3、安装配置

3.1、配置jdk

# pwd

/data/packages

# ll

total 272400

-rw-r----- 1 jkuser jkuser  10246390 Mar  5 16:24 apache-tomcat-8.5.37.zip

-rw-r----- 1 jkuser jkuser 185646832 Mar  5 16:24 jdk-8u181-linux-x64.tar.gz

-rw-r----- 1 jkuser jkuser  74297875 Mar  5 16:25 jenkins.war

# tar -zxf jdk-8u181-linux-x64.tar.gz -C /usr/local

# cd /usr/local

# ln -s jdk1.8.0_181 jdk

# vi /etc/profile

JAVA_HOME=/usr/local/jdk

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME PATH

# source /etc/profile

# java -version

java version "1.8.0_181"

Java(TM) SE Runtime Environment (build 1.8.0_181-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

3.2、配置tomcat

# cd /data 

# mkdir webApps

# chown jkuser:jkuser /data/webApps

# su jkuser 

$ cd packages/

$ unzip apache-tomcat-8.5.37.zip -d /data/webApps

$ cd /data/webApps/

$ ln -s apache-tomcat-8.5.37 tomcat

$ cd /data/webApps/tomcat/bin

$ chmod +x *.sh

$ catalina.sh version

Using CATALINA_BASE:   /data/webApps/tomcat

Using CATALINA_HOME:   /data/webApps/tomcat

Using CATALINA_TMPDIR: /data/webApps/tomcat/temp

Using JRE_HOME:        /usr/local/jdk

Using CLASSPATH:       /data/webApps/tomcat/bin/bootstrap.jar:/data/webApps/tomcat/bin/tomcat-juli.jar

Server version: Apache Tomcat/8.5.37

Server built:   Dec 12 2018 12:07:02 UTC

Server number:  8.5.37.0

OS Name:        Linux

OS Version:     3.10.0-693.21.1.el7.x86_64

Architecture:   amd64

JVM Version:    1.8.0_181-b13

JVM Vendor:     Oracle Corporation

$ vi /data/webApps/tomcat/conf/server.xml

Connector port="8080" URIEncoding="UTF-8"

$ vi /data/webApps/tomcat/conf/tomcat-users.xml 

<role rolename="manager-gui"/>

<user username="tomcat" password="tomcat" roles="manager-gui"/>

$ mkdir /data/webApps/tomcat/webapps

$ cp /data/packages/jenkins.war /data/webApps/tomcat/webapps

3.3、进入jenkins页面配置账号密码

通过下面的链接可以访问jenkins页面

http://192.168.58.115:8080/jenkins

$ cat /data/webApps/tomcat/webapps/jenkins/secrets/initialAdminPassword

c703afade6354435bf9bdd6d2767d810

把上边查到的字符串填入页面中--跳过插件安装--设置账号密码

账号admin

密码jenkinsadmin

3.4、sonar安装配置

首先安装数据库,记得数据库版本要高于5.6,不然启动sonar会报错。

# tar -xf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar

# rpm -qa | grep postfix

postfix-2.10.1-6.el7.x86_64

# rpm -qa | grep mariadb

mariadb-libs-5.5.60-1.el7_5.x86_64

# yum remove postfix-2.10.1-6.el7.x86_64

# yum remove mariadb-libs-5.5.60-1.el7_5.x86_64

# rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm 

# rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm 

# rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm 

# rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm

# systemctl enable mysqld.service

# systemctl start mysqld.service

为sonar创建数据库

# mysql -uroot -p

> set password for root@localhost = password('devroot');

MariaDB [(none)]> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> CREATE USER 'sonar' IDENTIFIED BY 'sonar';

Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';

Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;

# cd /data/packages

# unzip sonarqube-7.5.zip -d /usr/local

# ln -s sonarqube-7.5 sonar

# chown -R jkuser:jkuser /usr/local/sonarqube-7.5

# unzip sonar-scanner-cli-3.2.0.1227-linux.zip 

# chown -R jkuser:jkuser /usr/local/sonar-scanner-3.2.0.1227-linux

# mv sonar-scanner-3.2.0.1227-linux /usr/local/sonar

# vi /etc/profile

JAVA_HOME=/usr/local/jdk

CATALINA_BASE=/data/webApps/tomcat

JENKINS_HOME=$CATALINA_BASE/webapps/jenkins

SONAR_RUNNER_HOME=/usr/local/sonarqube-7.5/sonar-scanner-3.2.0.1227-linux

export JAVA_HOME CATALINA_BASE JENKINS_HOME SONAR_RUNNER_HOME PATH

PATH=$JAVA_HOME/bin:$CATALINA_BASE/bin:$SONAR_RUNNER_HOME/bin:$PATH

export SONAR_HOME=/usr/local/sonarqube-7.5

# source /etc/profile

# su jkuser

配置sonar

$ vi /usr/local/sonar/conf/sonar.properties 

sonar.web.port=9000

sonar.search.port=9001

sonar.jdbc.username=sonar

sonar.jdbc.password=sonar

sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

$ vi /usr/local/sonar/conf/wrapper.conf 

wrapper.java.command=/usr/local/jdk/bin/java

优化

# vi /etc/sysctl.conf

vm.max_map_count = 262144

# sysctl -p 

对sonar做汉化

$ cd /data/packages/

$ cp sonar-l10n-zh-plugin-1.25-SNAPSHOT.jar /usr/local/sonar/extensions/plugins/

启动sonar

$ cd /usr/local/sonar

$ ./bin/linux-x86-64/sonar.sh start

为sonar设置代理,当然如果没有防火墙的问题也可以直接通过 http://192.168.58.115:9000 访问sonar。

# yum install nginx

# vi /etc/nginx/nginx.conf 

http中添加下面的配置,默认是20M

client_max_body_size 50M;

在server中做下面的修改

#        listen       [::]:80 default_server;

#        location / {

#        }

        location / {

            proxy_pass              http://192.168.58.115:9000;

            proxy_set_header Host $host;

            proxy_redirect off;

            proxy_cache_valid 200 302 1h;

            proxy_cache_valid 301 1d;

            proxy_cache_valid any 1024m;

            expires 30d;

        }

# systemctl enable nginx.service

# systemctl start nginx.service

浏览器访问sonarqube的页面 http://192.168.58.115

默认账号密码

账户:admin

密码:admin

3.5、jenkins插件安装

下载:

http://updates.jenkins-ci.org/download/plugins

svn和sonarqube依赖插件:

Script Security Plugin 1.50 

Command Agent Launcher Plugin 1.2 

bouncycastle API Plugin 2.16.3

Structs Plugin 1.9

workflow-step-api (Pipeline: Step API)2.15 

workflow-scm-step (Pipeline: SCM Step)2.5 

JDK Tool Plugin 1.0 

JAXB plugin 2.3.0 

Credentials Plugin 2.1.16  

SSH Credentials Plugin 1.13

SCM API Plugin 2.2.7 

workflow-api(Pipeline: API) 2.25

JUnit Plugin 1.25 

MapDB API Plugin 1.0.9.0 

Subversion Plug-in 2.10 

jQuery plugin 1.12.4

sonar(SonarQube Plugin) 2.5 

可以到jenkins网站查找插件,就可以显示该插件所依赖的插件。

可以登录管理页面通过下面方式安装插件:

登录--系统管理--管理插件--高级--上传插件(选择文件)

上面的安装插件方式比较麻烦,可以把插件放到jenkins项目的plugins目录下,重启jenkins项目就可以生效。

3.6、在jenkins管理页面中配置sonar

系统管理--系统设置--Add SonarQube,填写内容 

Name SonarQube7.5 

Server URL http://192.168.58.115

Server version 5.3 or higher  

Server authentication token 下边是生成方式

获取token步骤:

登录sonarqube--Administration--Configuration--Security,把 Force user authentication 的对勾打上,保存。

Administration--Security--Users--Tokens,输入一个名字 sonar ,点击 Generate ,拷贝生成的token添加到到之前的jenkins管理页面sonarqube配置的 Server authentication token 选项,保存配置。

全局工具配置-- JDK installations ,填写 JDK Name 参数为 jdk1.8 ,取消自动安装,JAVA_HOME 参数为 /usr/local/jdk 

全局工具配置-- SonarQube Scanner ,填写 SonarQube Scanner Name 参数为 sonar-runner-3.2 ,取消自动安装, SONAR_RUNNER_HOME 参数为 /usr/local/sonarqube-7.5/sonar-scanner-3.2.0.1227-linux

4、使用jenkins打包并上传到开发服务器上

说明:

192.168.22.177和192.168.22.178两台服务器是tomcat应用服务器,使用jenkins打好的包要自动上传到这两台服务器上,tomcat应用的启动账户为hduser。

在jenkins服务器上做免密登录tomcat应用服务器的配置

# su jkuser 

$ ssh-keygen -t rsa

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected] 

登录jenkins管理界面

新建任务--构建一个自由风格的软件项目--configure

Source Code Management 选项 点击 Subversion ,填入 Repository URL 参数 svn://192.168.14.65/innovation/hbaseserv ,Credentials 新建账户,填入 访问svn的账户密码,然后下拉框选中该账户

Build 选项 , 点击 Add build step 下拉框,选择“执行shell”,在 commend 框中填入下面的内容:

cd /data/webApps/tomcat/webapps/jenkins/workspace

jar -cvf hbaseserv.war hbaseserve/

scp hbaseserv.war [email protected]:/data/webApp/war_pacakage

scp hbaseserv.war [email protected]:/data/webApp/war_pacakage

解释下上边的shell:

对从svn拉下来的代码进行打包,之后把打好的包传到对应的项目服务器上。

如果需要在上传完包之后自动更新应用,则需要添加更新应用的shell命令。

配置 Additional arguments 参数为 -X

之后保存配置,点击 立即构建 ,等待构建完成后在应用服务器上就可以看到打好的包。

5、使用sonar分析代码

新建任务--构建一个自由风格的软件项目--configure

Source Code Management 选项 点击 Subversion ,填入 Repository URL 参数 svn://192.168.14.65/innovation/hbaseserv ,Credentials 新建账户(如果有账户的话就不用新建了),填入 访问svn的账户密码,然后下拉框选中该账户

Build 选项 , 点击 Add build step 下拉框,点击 Execute Sonarqube Scanner ,JDK 参数 选择 jdk1.8,Analysis properties 参数 如下所示:

sonar.projectKey=hbaseserve_java

soanr.projectName=hbaseserve_java

sonar.sources=/data/webApps/tomcat/webapps/jenkins/workspace  /hbaseserve

sonar.java.binaries=/data/webApps/tomcat/webapps/jenkins/workspace/hbaseserve/src

sonar.binaries=bin

sonar.language=java

sonar.sourcrEncoding=UTF-8

Additional arguments 参数 -X

之后保存配置,点击 立即构建 ,等待构建完成后,在sonarqube管理页面就可以看到分析后的结果

参考:

https://blog.csdn.net/qq_26886929/article/details/54864439

https://blog.csdn.net/j15221024030/article/details/49781769

https://blog.csdn.net/zh520qx/article/details/55669142

https://blog.csdn.net/yangwenjianywj/article/details/82771309

https://www.cnblogs.com/zndxall/p/9336879.html


猜你喜欢

转载自blog.51cto.com/xiaoxiaozhou/2380168
今日推荐