安装 方法一
参考
Jenkins的安装很简单,官网提供的安装方式如下
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins
- 启动/停止/重启命令
须使用root权限
service jenkins start/stop/restart - 设置自启动
sudo chkconfig jenkins on - 问题解决
- Failed to start LSB: Jenkins Automation Server. jenkins启动失败的解决办法
Jenkins 未加载到 java 环境的问题, candiddates 参数内追加 java 的环境变量即可;
命令
vi /etc/rc.d/init.d/jenkins
/usr/local/jdk1.8.0_141/bin/java
如下图
安装 方法二
- 到Jenkins的网站下载一个war包,下载地址
https://jenkins.io/download/
jenkins.war下载后放置在/usr/local/src 目录下
Windows新建一个startup.bat文件,Linux新建一个startup.sh文件,其内容如下
@echo off
set JENKINS_HOME="/root/.jenkins"
set JAVA_HOME="/usr/local/src/jdk1.8.0_141"
%JAVA_HOME%\bin\java -jar jenkins.war --httpPort=8081 --prefix=/ --controlPort=8083
- 官方启动方式
java -jar jenkins.war --httpPort=8081 --prefix=/ --controlPort=8083
这样启动方式,在关闭控制台或者ssh断开服务器链接后 jenkins也就自动关闭了。
- 在Linux下,可以使用以下方式启动。
nohup java -jar jenkins.war --httpPort=8081 --prefix=/ --controlPort=8083 &
启动后 会生成一个nohup.out输出,需要的话,可以tail -f nohup.out实时查看日志
然后访问ip:8081
jenkins日志问题
[DNSQuestion@1549353466 type: TYPE_IGNORE index 0, class: CLASS_UNKNOWN index 0, name: ]
上面内容主要是因为DNS查询错误,返回了所有的日志数据,解决方法:
【系统管理】=》【system log】=>【日志级别】=》【Name: javax.jmdns,Level: off】
SonarQube代码质量检查
- 软件版本:sonarqube-6.7.5,sonar-runner-dist-2.4 sonar-scanner-3.0.3.778
sonarqube-6.7.5 下载
链接:https://pan.baidu.com/s/1UrhPygfE7KWC_sf7Fd0wJA 提取码:6075
下载Sonar-Runner:
cd /usr/local/src
wget http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip
sonar-scanner下载扫描器地址:
wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-linux.zip
Scanner下载
https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip
- 解压
unzip sonarqube-6.7.5.zip
unzip sonar-scanner-cli-3.3.0.1492-linux.zip
cp -R sonarqube-6.7.5 /usr/local/sonarqube-6.7.5
mv sonar-scanner-3.3.0.1492-linux /usr/local/sonar-scanner - 配置环境变量
vim /etc/profile
export SONAR_HOME=/usr/local/sonarqube-6.7.5
export SONAR_SCANNER_HOME=/usr/local/sonar-scanner
PATH=$PATH:$SONAR_HOME/bin:$SONAR_SCANNER_HOME/bin
source /etc/profile
- 新建数据库
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';
FLUSH PRIVILEGES;
- 添加用户组和用户
groupadd sonar
添加用户mysql 到用户组mysql
useradd -g sonar sonar
passwd sonar
输入密码 123456 - 配置sonar.properties
cd /usr/local
vim sonarqube-6.7.5/conf/sonar.properties
修改如下
#数据库的账号密码,刚才创建的
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
#连接数据库
sonar.jdbc.url=jdbc:mysql://xxxx:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
#驱动程序类名,其实可以不写的
#sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
sonar.sorceEncoding=UTF-8
sonar.login=admin
sonar.password=admin
#开启端口
sonar.web.port=9000
- 启动SonarQube注意事项
- SonarQube 启动
不能用root启动
,所以新建一个用户。 -
必须先启动elasticsearch
,才能在启动sonar。
sonar文件目录里面有elasticsearch这个目录。
启动elasticsearch
- 编写配置文件elasticsearch.yml
cd /usr/local
chown -R sonar:sonar sonarqube-6.7.5
chmod 777 -R sonarqube-6.7.5
vim sonarqube-6.7.5/elasticsearch/config/elasticsearch.yml
开启端口和指定服务去掉注释修改
network.host: 0.0.0.0
http.port: 9200
- 启动elasticsearch
su sonar 切换用户
./sonarqube-6.7.5/elasticsearch/bin/elasticsearch -d-d代表后台运行
解决问题一:sonar用户内存过低
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
elasticsearch启动时遇到的错误
问题翻译过来就是:elasticsearch用户拥有的内存权限太小,至少需要262144;
- 解决方式一:
切换到root用户
执行命令:
sysctl -w vm.max_map_count=262144
查看结果:
sysctl -a|grep vm.max_map_count
显示:
vm.max_map_count = 262144
上述方法修改之后,如果重启虚拟机将失效 - 解决方式二:
在 /etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
即可永久修改
elasticsearch安装后启动时候,遇到此问题
解决问题三:由于内存不足原因引起的elasticsearch自动退出
max file descriptors [65535] for elasticsearch process is too low
问题翻译过来就是:elasticsearch用户拥有的可创建文件描述的权限太低,至少需要65536;
- 解决办法:
切换到root用户修改
vim /etc/security/limits.conf
在最后面追加下面内容
*** hard nofile 65536
*** soft nofile 65536
解决问题三:由于内存不足原因引起的elasticsearch自动退出
/usr/local/sonarqube-6.7.5/elasticsearch/config
vi jvm.options
修改
-Xms1g
-Xmx1g
启动sonar(用sonar用户启动)
su sonar
cd /usr/local/sonarqube-6.7.5/bin/linux-x86-64/
./sonar.sh start
- 其他命令
sonar日志、启动,关闭、重启、状态,dump
./sonar.sh console | start | stop | restart | status | dump
可设置参数max_allowed_packet
控制代码检查量
访问:http://129.211.24.177:9000
汉化sonar
- 访问页面,搜索
chinese
插件,提示安装重启启动即可
http://129.211.24.177:9000/admin/marketplace?search=chinese
安装sonar-scanner扫描(方式一)
- 解压文件(上面已解压,并配置环境变量)
sonar-scanner -v
INFO: Scanner configuration file: /usr/local/sonar-scanner/conf/sonar-scanner.properties
INFO: Project root configuration file: /usr/local/sonar-project/xy99/sonar-project.properties
INFO: SonarQube Scanner 3.3.0.1492
INFO: Java 1.8.0_121 Oracle Corporation (64-bit)
INFO: Linux 3.10.0-514.26.2.el7.x86_64 amd64
cd /usr/local/sonar-scanner
- 编辑文件
vim conf/sonar-scanner.properties
sonar.sourceEncoding=UTF-8
sonar.host.url=http://129.211.24.177:9000
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://129.211.24.177:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.login=admin
sonar.password=admin
- 创建一个sonar-project.properties
vim sonar-project.properties
sonar.projectKey=xy99
sonar.projectName=xy99
sonar.projectVersion=4.0.0
# Set modules IDs
sonar.modules=core,core-db
# Modules inherit properties set at parent level
sonar.sources=src/main/java
#sonar.tests=src/test/java
sonar.java.binaries=target/classes
sonar.language=java
sonar.login=admin
sonar.password=admin
#编码格式
#sonar.sourceEncoding=UTF-8
- 开始扫描
cd /usr/local/sonar-scanner/bin
./sonar-scanner
问题一
ERROR: You must define the following mandatory properties for 'Unknown': sonar.projectKey, sonar.sources
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
要在项目文件下执行,如我的项目放在/usr/local/sonar-project目录下则
cd /usr/local/sonar-project/xy99
sonar-scanner 配置了环境变量
Jenkins配置Sonar
-
登录Sonar
http://129.211.24.177:9000
开启scm
-
获取jenkins登入token
-
配置SonarQube server
系统管理-->系统设置
-
配置maven和SonarQube Scanner
系统管理-->全局工具配置
安装 Sonar 插件
系统管理--->管理插件。找到插件SonarQube Scanner进行安装。-
Execute SonarQube Scanner加入到jenkins项目中
- 配置如下
sonar.projectKey=xy99
sonar.projectName=xy99
sonar.projectVersion=4.0.0
# Set modules IDs
sonar.modules=core,core-db
# Modules inherit properties set at parent level
sonar.sources=src/main/java
#sonar.tests=src/test/java
sonar.java.binaries=target/classes
sonar.language=java
sonar.login=admin
sonar.password=admin