SonarQube

第1章 安裝mysql

1.下載mysql 5.7

下載地址

https://downloads.mysql.com/archives/community/
https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

2.創(chuàng)建目錄

mkdir -p /data/soft
mkdir -p /data/mysql_3306/

3.下載并解壓軟件

cd /data/soft
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
tar zxf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C /opt/
mv /opt/mysql-5.7.28-linux-glibc2.12-x86_64 /opt/mysql-5.7.28
ln -s /opt/mysql-5.7.28 /opt/mysql 

4.設(shè)置環(huán)境變量

echo "export PATH=$PATH:/opt/mysql/bin" >>/etc/profile
source /etc/profile
mysql -V

5.清除遺留環(huán)境

rpm -qa|grep mariadb
yum remove mariadb-libs -y
rm -rf /etc/my.cnf

6.安裝mysql依賴包

yum install -y libaio-devel

7.創(chuàng)建mysql普通用戶并授權(quán)

useradd -s /sbin/nologin -M mysql
chown -R mysql.mysql /data/
chown -R mysql.mysql /opt/mysql*

8.初始化數(shù)據(jù)庫

mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/data/mysql_3306/

9.編輯mysql配置文件

cat> /etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/opt/mysql
datadir=/data/mysql_3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF

10.準備啟動腳本并啟動數(shù)據(jù)庫

cp /opt/mysql/support-files/mysql.server  /etc/init.d/mysqld
chkconfig --add mysqld
systemctl start mysqld
netstat -lntup|grep 3306

11.前臺啟動

/opt/mysql/bin/mysqld --basedir=/opt/mysql --datadir=/data/mysql_3306 --plugin-dir=/opt/mysql/lib/plugin --user=mysql --log-error=/data/mysql_3306/log/mysql.log --pid-file=/data/mysql_3306/db01.pid --socket=/tmp/mysql.sock

12.修改root密碼

mysqladmin password 

13.登陸mysql

mysql -uroot -p123456

第2章 安裝SonarQube

1.安裝java環(huán)境

yum install java -y

2.解壓并創(chuàng)建軟鏈接

unzip sonarqube-7.0.zip -d /opt/
ln -s /opt/sonarqube-7.0/ /opt/sonarqube

3.創(chuàng)建普通用戶并更改授權(quán)

useradd sonar -M -s /sbin/nologin
chown -R sonar.sonar /opt/sonarqube*

4.配置sonarqube數(shù)據(jù)庫連接信息

[root@sonar ~]# vim /opt/sonarqube/conf/sonar.properties          
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

5.指定sonarqube啟動用戶

vim /opt/sonarqube/bin/linux-x86-64/sonar.sh 
RUN_AS_USER=sonar

6.創(chuàng)建sonarqube數(shù)據(jù)庫

mysql -uroot -p123456 -e 'create database sonar default character set utf8;'
mysql -uroot -p123456 -e 'show databases;'

7.編寫systemd啟動文件

cat >/usr/lib/systemd/system/sonar.service<<'EOF'
[Unit]
Description=sonar

[Service]
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
Type=forking
User=sonar
Group=sonar

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload

8.啟動SonarQube

systemctl start sonar.service 

9.檢查服務

[root@sonar ~]# netstat -lntup|grep java
tcp        0      0 127.0.0.1:32000         0.0.0.0:*               LISTEN      18202/java          
tcp6       0      0 :::9000                 :::*                    LISTEN      18305/java          
tcp6       0      0 127.0.0.1:9001          :::*                    LISTEN      18227/java          
tcp6       0      0 127.0.0.1:36949         :::*                    LISTEN      18475/java

10.啟動報錯

使用systemd啟動后失敗猎塞,查看es日志發(fā)現(xiàn)提示max file descriptors太低:

[root@sonar /opt/sonarqube/logs]# tail -f /opt/sonarqube/logs/es.log 
2020.05.14 09:51:19 INFO  es[][o.e.t.TransportService] publish_address {127.0.0.1:9001}, bound_addresses {127.0.0.1:9001}
2020.05.14 09:51:19 WARN  es[][o.e.b.BootstrapChecks] max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
2020.05.14 09:51:19 WARN  es[][o.e.b.BootstrapChecks] max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解決方法:

echo "vm.max_map_count=262144" >> /etc/sysctl.conf
echo "root             -       nofile          65536"  >> /etc/security/limits.conf
echo "sonar            -       nofile          65536"  >> /etc/security/limits.conf
sysctl -p

第3章 初始化SonarQube

1.使用admin登陸

登陸地址為:

http://10.0.0.203:9000/about

賬號密碼均為admin:

2.生成token

在輸入框內(nèi)輸入jenkins夕冲,然后點擊Generate生成token,需要保存好這個tocken语卤,后面會用到

3.選擇項目類型

點擊Done之后會給我們生成提示信息:

第4章 安裝插件

1.在線安裝中文插件方法

Administration-->Marketplace-->chinese-->install

2.離線安裝插件方法

離線安裝的話只需要將插件壓縮包解壓到指定目錄然后重啟服務即可,解壓之前可以先備份插件目錄

mv /opt/sonarqube/extensions/plugins/ /opt/sonarqube/extensions/plugins_bak
tar xf sonar_plugins.tar.gz -C /opt/sonarqube/extensions/

3.重啟服務

systemctl restart sonar.service 

4.瀏覽器訪問查看

第5章 安裝客戶端

1.jenkins主機安裝客戶端

我們需要將jenkins拉取的代碼推送到SonarQube,所以需要在jenkins主機上安裝sonar客戶端:

unzip sonar-scanner-cli-4.0.0.1744-linux.zip -d /opt/
cd /opt/
ln -s sonar-scanner-4.0.0.1744-linux sonar-scanner

寫入環(huán)境變量:

echo 'export PATH=$PATH:/opt/sonar-scanner/bin' >> /etc/profile
source /etc/profile

2.推送代碼到SonarQube

進入代碼目錄執(zhí)行推送命令

注意:這里的推送命令是初始化的時候生成的酪刀,Dsonar.login的值也是初始化時候生成的token

cd /var/lib/jenkins/workspace/h5game/
/opt/sonar-scanner/bin/sonar-scanner  \
  -Dsonar.projectKey=html \
  -Dsonar.sources=. \
  -Dsonar.host.url=http://10.0.0.203:9000 \
  -Dsonar.login=4f57dfb332463fa8220be49856a0f1d27c88a142

我們也可以將服務器相關(guān)的命令寫入配置文件里粹舵,這樣推送的命令可以精簡一些:

vim /opt/sonar-scanner/conf/sonar-scanner.properties
sonar.host.url=http://10.0.0.203:9000 
sonar.login=be400d585a529e6e2152e6742fe3f5cb3fc803d2
sonar.sourceEncoding=UTF-8

然后推送命令只需要指定兩個選項即可:

cd /var/lib/jenkins/workspace/my-freestyle-job/
sonar-scanner \
  -Dsonar.projectKey=html \
  -Dsonar.sources=.

3.web頁面查看掃描結(jié)果

4.執(zhí)行報錯解決

報錯現(xiàn)象:推送的時候提示我們找不到node環(huán)境

解決方法:在jenkins服務器上安裝nodejs環(huán)境,然后重新推送就不會再報錯了:

cd /opt/
wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz
tar xf node-v12.13.0-linux-x64.tar.xz
mv node-v12.13.0-linux-x64 node
echo 'export PATH=$PATH:/opt/node/bin' >> /etc/profile
source /etc/profile
npm -v
node -v

第6章 與Jenkins集成

1.配置SonarQube憑證信息

在jenkins頁面進入 系統(tǒng)管理-->系統(tǒng)配置-->找到sonar的配置

填寫sonar服務器信息:

此時點擊添加憑證按鈕沒有反應,沒關(guān)系骂倘,先保存一下眼滤,然后回來再添加一次即可:

填寫sonar初始化的token信息:

添加完成后就可以選擇sonar的憑證了:

2.配置sonar客戶端家目錄

點擊系統(tǒng)管理-->全局工具配置-->找到SonarQube Scanner選項:

3.工程中配置sonar構(gòu)建選項

添加構(gòu)建步驟:

填寫詳細信息:

填寫參數(shù):

sonar.projectName=${JOB_NAME} 
sonar.projectKey=html
sonar.sources=.

4.調(diào)整構(gòu)建執(zhí)行順序

注意!@浴诅需!這里我們還需要將構(gòu)建順序調(diào)整一下漾唉,先執(zhí)行代碼掃描,然后再發(fā)布版本

可以直接拖動選項塊來調(diào)整順序堰塌,最終結(jié)果如下:

5.發(fā)布測試

我們可以使用git嘗試發(fā)布代碼赵刑,然后查看執(zhí)行是否成功:

git branch 
git pull
vim index.html 
git add .
git commit -m "v5.0 穩(wěn)定版"
git push -u origin master

sonar查看是否發(fā)布:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市场刑,隨后出現(xiàn)的幾起案子般此,更是在濱河造成了極大的恐慌,老刑警劉巖牵现,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铐懊,死亡現(xiàn)場離奇詭異,居然都是意外死亡瞎疼,警方通過查閱死者的電腦和手機科乎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丑慎,“玉大人喜喂,你說我怎么就攤上這事「土眩” “怎么了玉吁?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長腻异。 經(jīng)常有香客問我进副,道長,這世上最難降的妖魔是什么悔常? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任影斑,我火速辦了婚禮,結(jié)果婚禮上机打,老公的妹妹穿的比我還像新娘矫户。我一直安慰自己,他們只是感情好残邀,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布皆辽。 她就那樣靜靜地躺著,像睡著了一般芥挣。 火紅的嫁衣襯著肌膚如雪驱闷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天空免,我揣著相機與錄音空另,去河邊找鬼。 笑死蹋砚,一個胖子當著我的面吹牛扼菠,可吹牛的內(nèi)容都是我干的摄杂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼循榆,長吁一口氣:“原來是場噩夢啊……” “哼匙姜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起冯痢,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎框杜,沒想到半個月后浦楣,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡咪辱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年振劳,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片油狂。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡历恐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出专筷,到底是詐尸還是另有隱情弱贼,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布磷蛹,位于F島的核電站吮旅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏味咳。R本人自食惡果不足惜庇勃,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望槽驶。 院中可真熱鬧责嚷,春花似錦、人聲如沸掂铐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽堡纬。三九已至聂受,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間烤镐,已是汗流浹背蛋济。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留炮叶,地道東北人碗旅。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓渡处,卻偏偏與公主長得像,于是被迫代替她去往敵國和親祟辟。 傳聞我的和親對象是個殘疾皇子医瘫,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359