频道栏目
首页 > 网络 > 其他 > 正文

centos7 svn + jenkins + sonar 配置管理-xiaoxiaozhou-51CTO博客

2019-04-18 13:09:00           
收藏   我要投稿

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 hduser@192.168.22.177

$ ssh-copy-id hduser@192.168.22.178?

登录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 hduser@192.168.22.177:/data/webApp/war_pacakage

scp hbaseserv.war hduser@192.168.22.178:/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

上一篇:shell脚本之编程规范与变量-vnvb的博客-51CTO博客
下一篇:MTR 网络诊断工具-vnvb的博客-51CTO博客
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站