yum install -y epel-release unzip vim wget
yum install -y java-11-openjdk java-11-openjdk-devel
host all all 127.0.0.1/32 md5
listen_addresses = ‘*’
2)允许所有连接都是用 MD5 密码认证,在/var/lib/pgsql/10/data/pg_hba.conf的最后添加:host all all 0.0.0.0/0 md5
3)如果开启了防火墙,还需要在防火墙上允许 TCP port 5432firewall-cmd --permanent --add-port=5432/tcp firewall-cmd --reload
systemctl start postgresql-10 systemctl enable postgresql-10 systemctl status postgresql-10
netstat -tulpn | grep 5432
sudo -u postgres psql CREATE DATABASE sonar; CREATE USER sonar WITH ENCRYPTED PASSWORD ‘’; GRANT ALL PRIVILEGES ON DATABASE sonar TO sonar; ALTER DATABASE sonar OWNER TO sonar; \q
sudo su - postgres pg_dump sonar > sonar.pgsql
恢复 Postgres 数据库 (需要把 sonar.pgsql 复制到 /var/lib/pgsql)sudo su - postgres psql sonar < sonar.pgsql
修改所有 Tables, Sequences and Views的所有权sudo su - postgres
Tablesfor tbl in psql -qAt -c "select tablename from pg_tables where schemaname = 'public';" sonar ; do psql -c “alter table “$tbl” owner to sonar” sonar ; done
Sequencesfor tbl in psql -qAt -c "select sequence_name from information_schema.sequences where sequence_schema = 'public';" sonar ; do psql -c “alter table “$tbl” owner to sonar” sonar ; done
Viewsfor tbl in psql -qAt -c "select table_name from information_schema.views where table_schema = 'public';" sonar ; do psql -c “alter table “$tbl” owner to sonar” sonar ; done
为了回收被死元组占用的存储空间,我们要清空数据库(Vacuum database in order to reclaim storage occupied by dead tuples)sudo su - postgres vacuumdb sonar
tail -f /opt/sonarqube/logs/web.log
ERROR web[][o.s.s.p.d.m.DatabaseMigrationImpl] DB migration ended with an exception org.sonar.server.platform.db.migration.step.MigrationStepExecutionException: Execution of migration step #3002 ‘Make index on DEPRECATED_RULE_KEYS.RULE_ID non unique’ failed Caused by: org.postgresql.util.PSQLException: ERROR: cannot drop index rule_id_deprecated_rule_keys because constraint rule_id_deprecated_rule_keys on table deprecated_rule_keys requires it Hint: You can drop constraint rule_id_deprecated_rule_keys on table deprecated_rule_keys instead.
sudo -u postgres psql
查看所有数据库\list
切换到sonar数据库\connect sonar ALTER TABLE deprecated_rule_keys DROP CONSTRAINT IF EXISTS rule_id_deprecated_rule_keys; DROP INDEX IF EXISTS rule_id_deprecated_rule_keys; \q
wget -O /tmp/sonarqube.zip https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.0.zip
解压到/opt目录下unzip /tmp/sonarqube.zip -d /opt
重命名目录mv /opt/sonarqube-8.0 /opt/sonarqube
为sonarqube服务添加一个用户sudo adduser sonar -s /sbin/nologin
修改目录权限chown -R sonar:sonar /opt/sonarqube
alternatives --config java
配置JAVA_HOME, 在/etc/bashrc的最后一行添加export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.5.10-0.el7_7.x86_64/bin/java
使配置生效source /etc/bashrc
验证是否配置成功java -version
sonar.jdbc.username=sonar sonar.jdbc.password= sonar.jdbc.url=jdbc:postgresql://localhost/sonar sonar.jdbc.maxActive=60 sonar.jdbc.maxIdle=5 sonar.jdbc.minIdle=2 sonar.jdbc.maxWait=5000 sonar.jdbc.minEvictableIdleTimeMillis=600000 sonar.jdbc.timeBetweenEvictionRunsMillis=30000 sonar.jdbc.removeAbandoned=true sonar.jdbc.removeAbandonedTimeout=60
WEB SERVERsonar.web.host=127.0.0.1 sonar.web.port=9000 sonar.web.javaOpts=-server -Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError sonar.search.javaOpts=-server -Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError sonar.ce.javaOpts=-server -Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError
LDAP(如果没有使用LDAP就不需要下面这些)sonar.security.realm=LDAP sonar.security.savePassword=true sonar.authenticator.downcase = true ldap.url=ldap://.zone24x7.lk:389 ldap.bindDn=@zone24x7.lk ldap.bindPassword= ldap.user.baseDn=dc=zone24x7,dc=lk ldap.user.request=(&(objectClass=User)(sAMAccountName={login})) ldap.user.realNameAttribute=cn ldap.user.emailAttribute=mail
[Unit] Description=SonarQube Server After=syslog.target network.target [Service] Type=forking ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop LimitNOFILE=65536 LimitNPROC=4096 User=sonar Group=sonar Restart=on-failure [Install] WantedBy=multi-user.target
vm.max_map_count = 262144
使配置生效sudo sysctl -p /etc/sysctl.d/00-sysctl.conf
sudo systemctl daemon-reload sudo systemctl start sonar.service sudo systemctl enable sonar.service
如果你是在做升级,你还需要重建elasticsearch data的索引sudo systemctl stop sonar.service sudo rm -rf /opt/sonarqube/data/es* sudo systemctl start sonar.service
netstat -tulpn | grep 9000
tail -f /opt/sonarqube/logs/sonar.log
Web Server logstail -f /opt/sonarqube/logs/web.log
ElasticSearch logstail -f /opt/sonarqube/logs/es.log
Compute Engine logstail -f /opt/sonarqube/logs/ce.log
yum install -y nginx
mkdir /etc/nginx/ssl
生成自定义DH参数openssl dhparam -out /etc/nginx/ssl/dhparams.pem 2048
为*.zone24x7.lk创建自签名SSL证书openssl req -newkey rsa:2048 -nodes -keyout /etc/nginx/ssl/zone.key -x509 -days 365 -out /etc/nginx/ssl/zone.crt -subj “/C=LK/ST=WP/L=Colombo/O=Zone24x7 (Private) Limited/CN=*.zone24x7.lk”
恢复默认的 SELinux 安全上下文(如果selinux已经关闭则可以忽略这步)restorecon -RF /etc/nginx/ssl
#如果关闭了SElinux则可以忽略这步 setsebool -P httpd_can_network_connect 1
systemctl start nginx systemctl enable nginx
#如果firewall已经关闭则忽略这步 firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp firewall-cmd --reload
SonarQube 初始登录信息URL: https://IP:nginx代理端口 User: admin Password: admin
systemctl stop nginx systemctl stop sonar
rm -rf /opt/sonarqube-backup
mv /opt/sonarqube /opt/sonarqube-backup
wget -O /tmp/sonarqube.zip https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.0.zip
unzip /tmp/sonarqube.zip -d /opt
mv /opt/sonarqube-8.0 /opt/sonarqube
/bin/cp -f /opt/sonarqube-backup/conf/sonar.properties /opt/sonarqube/conf/sonar.properties
chown -R sonar:sonar /opt/sonarqube
sudo rm -rf /opt/sonarqube/data/es*
systemctl start sonar systemctl start nginx
SonarQube service log tail -f /opt/sonarqube/logs/sonar.log Web Server logs tail -f /opt/sonarqube/logs/web.log ElasticSearch logs tail -f /opt/sonarqube/logs/es.log Compute Engine logs tail -f /opt/sonarqube/logs/ce.log
follow the setup instructions.
使用兼容性矩阵确保您安装的版本与服务器版本兼容。请注意,您的版本中所有可用的SonarSource源代码分析器的最新版本都是默认安装的。不建议简单地将插件从旧服务器复制到新服务器;不兼容或重复的插件可能导致启动错误。### 3.14. Remove temp files.
rm -f /tmp/sonarqube.zip
=============================================================