安裝 方法一
參考
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 環(huán)境的問題, candiddates 參數內追加 java 的環(huán)境變量即可;
命令
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查詢錯誤,返回了所有的日志數據,解決方法:
【系統(tǒng)管理】=》【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 - 配置環(huán)境變量
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
修改如下
#數據庫的賬號密碼,剛才創(chuàng)建的
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用戶
執(zhí)行命令:
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用戶擁有的可創(chuàng)建文件描述的權限太低,至少需要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日志、啟動,關閉、重啟、狀態(tài),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
安裝漢化插件.png
安裝sonar-scanner掃描(方式一)
- 解壓文件(上面已解壓,并配置環(huán)境變量)
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
- 創(chuàng)建一個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.
要在項目文件下執(zhí)行,如我的項目放在/usr/local/sonar-project目錄下則
cd /usr/local/sonar-project/xy99
sonar-scanner 配置了環(huán)境變量
Jenkins配置Sonar
-
登錄Sonar
http://129.211.24.177:9000
開啟scm
SCM.png -
獲取jenkins登入token
token.png -
配置SonarQube server
系統(tǒng)管理-->系統(tǒng)設置
SonarQube server -
配置maven和SonarQube Scanner
系統(tǒng)管理-->全局工具配置
maven和SonarQube Scanner 安裝 Sonar 插件
系統(tǒng)管理--->管理插件。找到插件SonarQube Scanner進行安裝。-
Execute SonarQube Scanner加入到jenkins項目中
Execute SonarQube Scanner
- 配置如下
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





