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 

 

$ 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

你可能感兴趣的:(版本控制)