yieryi 2020-06-02
download
archive
github-sonarqube
sonarqube-7.9.3-lts
01、mkdir home && unzip
[ ~]# mkdir /opt/sonarqube //项目运行目录 [ ~]# tar zxf openjdk-11.0.2_linux-x64_bin.tar.gz -C /opt/sonarqube/ [ ~]# [ ~]# cd /opt/sonarqube/ [ sonarqube]# ll total 0 drwxr-xr-x 8 root root 96 Jun 1 23:47 jdk-11.0.2 [ sonarqube]# cd jdk-11.0.2/ [ jdk-11.0.2]# pwd /opt/sonarqube/jdk-11.0.2
02、add openjdk-env
cat <<-‘EOF‘ >>/etc/profile #add openjdk-11 export JAVA_HOME=/opt/sonarqube/jdk-11.0.2 export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH EOF [ jdk-11.0.2]# source /etc/profile [ jdk-11.0.2]# [ jdk-11.0.2]# java -version openjdk version "11.0.2" 2019-01-15 OpenJDK Runtime Environment 18.9 (build 11.0.2+9) OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode) [ jdk-11.0.2]#
01、requirement
[ postgresql-10.10]# yum install -y gcc gcc-c++ make autoconf [ jdk-11.0.2]# yum install -y ncurses-devel readline-devel zlib-devel
02、adduser && pgdata && pg_env
[ ~]# useradd postgres [ ~]# mkdir -p /opt/sonarqube/pgdata/{data,archive}
su - postgres //配置环境变量 tee <<-‘EOF‘ >>.bash_profile export PGHOME=/opt/sonarqube/pgdata export PGDATA=$PGHOME/data export PATH=$PGHOME/bin:$PATH export LD_LIBRARY_PATH=.:$PGHOME/lib EOF source .bash_profile
03、compile && init
[ ~]# yum install -y lbzip2 [ ~]# tar zxf postgresql-10.10.tar.bz2 [ postgresql-10.10]# ./configure -q --prefix=/opt/sonarqube/pgdata [ postgresql-10.10]# make -s -j4 [ postgresql-10.10]# make -s install [ postgresql-10.10]# chown -R postgres: /opt/sonarqube/pgdata/
su - postgres initdb --auth=trust --auth-host=md5 --auth-local=trust --pgdata=$PGDATA --encoding=‘UTF-8‘ --username=postgres --pwprompt
[ data]$ pwd /opt/sonarqube/pgdata/data [ data]$ tee <<-‘EOF‘ >> postgresql.auto.conf listen_addresses = ‘*‘ port = 5432 wal_level = hot_standby archive_mode = on archive_command = ‘cp %p /opt/sonarqube/pgdata/archive/%f‘ #max_wal_senders = 10 logging_collector = on EOF [ data]$ egrep -v ‘^#|^$‘ pg_hba.conf local all all trust host all all 127.0.0.1/32 md5 host all all ::1/128 md5 local replication all trust host replication all 127.0.0.1/32 md5 host replication all ::1/128 md5 host all all 0.0.0.0/0 md5
[ ~]$ pg_ctl start //start pg waiting for server to start....2020-06-02 00:14:57.195 CST [20182] LOG: listening on IPv4 address "0.0.0.0", port 5432 2020-06-02 00:14:57.195 CST [20182] LOG: listening on IPv6 address "::", port 5432 2020-06-02 00:14:57.196 CST [20182] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432" 2020-06-02 00:14:57.211 CST [20182] LOG: redirecting log output to logging collector process 2020-06-02 00:14:57.211 CST [20182] HINT: Future log output will appear in directory "log". done server started [ ~]$ [ ~]$ ss -lnt State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 128 *:5432 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 :::22 :::* LISTEN 0 128 :::5432 :::* LISTEN 0 100 ::1:25 :::* [ ~]$ psql psql (10.10) Type "help" for help. postgres=# \q [ ~]$
04、init sonar db
su - postgres psql create database sonar; create user sonar with superuser createdb createrole login password ‘123123‘; alter database sonar owner to sonar;
01、linux-sonar turn
link
tee <<-EOF >>/etc/sysctl.conf #add sonarqube vm.max_map_count=262144 fs.file-max=102400 EOF sysctl -p tee <<-EOF >>/etc/security/limits.conf #add sonarqube sonar - nofile 102400 sonar - nproc 102400 EOF
02、add user && config
[ ~]# useradd sonar [ ~]# yum install -y unzip [ ~]# unzip sonarqube-7.9.3.zip -d /opt/sonarqube/ [ ~]# chown -R sonar: /opt/sonarqube/sonarqube-7.9.3/ [ conf]# pwd /opt/sonarqube/sonarqube-7.9.3/conf [03 conf]# egrep -v ‘^#|^$‘ sonar.properties sonar.jdbc.username=sonar sonar.jdbc.password=123123 sonar.jdbc.url=jdbc:postgresql://192.168.3.103/sonar sonar.web.javaOpts=-Xmx1024m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError sonar.web.host=0.0.0.0 [ conf]#
03、privileges && start
[ conf]# su - sonar //change sonar to running [ ~]$ /opt/sonarqube/sonarqube-7.9.3/bin/linux-x86-64/sonar.sh start |status |stop [ linux-x86-64]$ ./sonar.sh --help Usage: ./sonar.sh { console | start | stop | force-stop | restart | status | dump } [ ~]$ tail -F /opt/sonarqube/sonarqube-7.9.3/logs/sonar.log [ logs]$ pwd /opt/sonarqube/sonarqube-7.9.3/logs [ logs]$ ll total 212 -rw-r--r-- 1 sonar sonar 54757 Jun 2 11:28 access.log -rw-r--r-- 1 sonar sonar 1136 Jun 2 11:26 ce.log -rw-r--r-- 1 sonar sonar 11500 Jun 2 11:26 es.log -rw-r--r-- 1 sonar sonar 88 Mar 24 08:24 README.txt -rw-r--r-- 1 sonar sonar 4978 Jun 2 11:26 sonar.log -rw-r--r-- 1 sonar sonar 128911 Jun 2 11:26 web.log [ logs]$
04、open sonarqube web
http://192.168.3.103:9000/ admin/admin //default user
01、download && unzip
[ ~]# unzip sonar-scanner-cli-4.3.0.2102-linux.zip -d /opt/sonarqube/ [ ~]# chown -R sonar: /opt/sonarqube/sonar-scanner-4.3.0.2102-linux/ [ sonar-scanner-4.3.0.2102-linux]$ ll bin/ total 8 -rwxr-xr-x 1 sonar sonar 1761 Feb 20 08:14 sonar-scanner -rwxr-xr-x 1 sonar sonar 595 Feb 20 08:14 sonar-scanner-debug [ sonar-scanner-4.3.0.2102-linux]$ ./bin/sonar-scanner -h INFO: INFO: usage: sonar-scanner [options] INFO: INFO: Options: INFO: -D,--define <arg> Define property INFO: -h,--help Display help information INFO: -v,--version Display version information INFO: -X,--debug Produce execution debug output [ sonar-scanner-4.3.0.2102-linux]$ [ sonar-scanner-4.3.0.2102-linux]$ [ sonar-scanner-4.3.0.2102-linux]$ [ sonar-scanner-4.3.0.2102-linux]$ ./bin/sonar-scanner -v INFO: Scanner configuration file: /opt/sonarqube/sonar-scanner-4.3.0.2102-linux/conf/sonar-scanner.properties INFO: Project root configuration file: NONE INFO: SonarScanner 4.3.0.2102 INFO: Java 11.0.3 AdoptOpenJDK (64-bit) INFO: Linux 3.10.0-862.el7.x86_64 amd64 [ sonar-scanner-4.3.0.2102-linux]$
02、add env && config
tee <<-‘EOF‘ >> ~/.bash_profile #add sonaqube env export SONAR_HOME=/opt/sonarqube/sonarqube-7.9.3 export SONAR_SCANNER_HOME=/opt/sonarqube/sonar-scanner-4.3.0.2102-linux export PATH=$SONAR_SCANNER_HOME/bin:$PATH export SONAR_SCANNER_OPTS="-Xmx1024m" EOF source ~/.bash_profile
[ conf]$ cat sonar-scanner.properties #Configure here general information about the environment, such as SonarQube server connection details for example #No information about specific project should appear here #----- Default SonarQube server sonar.host.url=http://192.168.3.103:9000 #----- Default source code encoding #sonar.sourceEncoding=UTF-8
03、scanner codes
进入到待扫描代码根目录新建sonar-project.properties #sonar-project.properties # must be unique in a given SonarQube instance sonar.projectKey=my:project # --- optional properties --- # defaults to project key #sonar.projectName=My project # defaults to ‘not provided‘ #sonar.projectVersion=1.0 # Path is relative to the sonar-project.properties file. Defaults to . #sonar.sources=. # Encoding of the source code. Default is default system encoding #sonar.sourceEncoding=UTF-8 #path to your project build output path #sonar.java.binaries=target/classes sonar-scaneer //代码根目录执行
sonar.projectName是项目名字
sonar.sources=是源文件所在的目录
To help you get started, simple project samples are available for most languages on github. They can be browsed or downloaded. You‘ll find them filed under sonarqube-scanner/src.
postgresql
su - postgres pg_ctl start ps -ef | grep postgres //查看pgsql进程 pg_ctl status //查看数据状态 pg_ctl stop -m fast //停止数据库
对于多语言扫描请预先安装对应的编译语言组件 go/node/python ...