【.com快速翻译】如果您是云原生开发人员(或任何其他开发人员),您可能需要一个工具来分析您的代码以帮助发现安全问题、错误、漏洞、异常和一般问题。如果你只是在做一个小项目,你可以用老式的手动方式来做。如果你经常为CI/CD之类的项目编写代码,那么工作量决定了你可能无法手动检查它。此时该怎么办?你总是可以安装像SonarQube这样的工具。这种基于Web的软件擅长使开发人员能够编写更简洁、更安全的代码。如果您恰好拥有本地Linux服务器或AWS、GoogleCloud或Azure等云帐户,则可以免费部署SonarQubeCommunityEdition。此版本具有以下功能:静态代码分析支持15种广泛使用的语言缺陷和漏洞检测代码中的安全热点审查代码异常跟踪技术债务解决代码质量指标和历史CI/CD集成可扩展到50+您还可以查看版本矩阵中SonarQube付费版本的功能。下面介绍在UbuntuServer20.04上安装运行社区版SonarQube的过程。你需要什么?一个正在运行的UbuntuServer20.04实例拥有sudo权限的用户如何修改内核系统限制?我们要做的第一件事是修改一些内核系统限制。使用以下命令打开sysctl.conf文件进行编辑:sudonano/etc/sysctl.conf在文件末尾添加以下行:vm.max_map_count=262144fs.file-max=65536ulimit-n65536ulimit-u4096保存并关闭文件。接下来,我们将编辑limits.conf。使用以下命令打开文件:sudonano/etc/security/limits.conf在文件末尾添加以下内容:sonarqube-nofile65536sonarqube-nproc4096保存并关闭文件。重新启动系统以使更改生效。如何安装OpenJDK11?我们现在将安装OpenJDK依赖项。使用以下命令安装:sudoapt-getinstallopenjdk-11-jdk-y如何安装和配置PostgreSQL?对于SonarQube的数据库部分,我们将使用PostgreSQL(已弃用对MySQL的支持)。由于PostgreSQL不在标准存储库中,因此我们必须添加它。下载并安装GPG密钥:wget-qhttps://www.postgresql.org/media/keys/ACCC4CF8.asc-O-|sudoapt-keyadd-createanewaptrepositorywith:sudosh-c'echo"debhttp://apt.postgresql.org/pub/repos/apt/`lsb_release-cs`-pgdgmain">>/etc/apt/sources.list.d/pgdg.list'使用以下命令安装PostgreSQL:sudoaptinstallpostgresqlpostgresql-contrib-y启动并启用数据库服务:sudosystemctlenablepostgresqlsudosystemctlstartpostgresqlSetthePostgreSQLpasswordwith:sudopasswdpostgres将提示您输入并验证数据库管理员用户的新密码。使用以下命令切换到postgres用户:su-postgres使用以下命令为SonarQube数据库创建一个新用户:createusersonar使用以下命令登录到PostgreSQL控制台:psql使用以下命令为新的sonar用户设置密码:ALTERUSERsonarWITHENCRYPTEDPASSWORD'password';密码是不会重复的强密码。使用以下命令创建一个新的声纳数据库:CREATEDATABASEsonarqubeOWNERsonar;使用以下命令授予对数据库的必要权限:GRANTALLPRIVILEGESONDATABASEsonarqubetosonar;退出PostgreSQL控制台:\q退出postgres用户:exit启用PostgreSQL服务:sudosystemctlenablepostgresql下载并解压缩SonarQube?数据库就位后,我们现在可以下载并解压缩SonarQube。最新版本为8.5.1.3814。您应该检查下载链接(https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.5.1.38104.zip)以确保您下载的是最新版本。下载SonarQube,执行命令:wgethttps://binaries.sonarqube/Distribution/sonarqube/sonarqube-8.5.1.38104.zip使用以下命令解压文件:unzipsonarqube*.zip如果发现没有解压命令,使用以下命令安装它:sudoapt-getinstallzip-y使用以下命令移动并重命名您刚刚创建的目录:sudomvsonarqube-8.5.1.38104/opt/sonarqube如果您下载的版本不是8.5.1.38104,请确保更改该版本号与上述命令。如何创建新的SonarQube组和用户?现在我们需要为SonarQube创建新的组和用户。使用以下命令创建一个组:sudogroupaddsonar接下来,使用以下命令创建一个用户并将其添加到组中(并将其主目录设置为/opt/sonarqube目录):sudouseradd-c"SonarQube-User"-d/opt/sonarqube/-gsonarsonar使用以下命令更改/opt/sonarqube目录的所有权:sudochown-Rsonar:sonar/opt/sonarqube/如何配置SonarQube?下一步是配置SonarQube。使用以下命令打开配置文件进行编辑:sudonano/opt/sonarqube/conf/sonar.properties在文件中查找以下行:#sonar.jdbc.username=#sonar.jdbc.password=#sonar.jdbc。url=jdbc:postgresql://localhost/sonarqube#sonar.search.javaOpts=-Xmx512m-Xms512m-XX:+HeapDumpOnOutOf需要把上面四行的#字符去掉,第一行改成:sonar.jdbc。username=sonarchange在密码行中,添加为sonarPostgreSQL用户创建的密码。还应编辑以下行以确保它们反映您在下面看到的内容:sonar.jdbc.username=sonarsonar.jdbc.password=PASSWORDsonar.jdbc.url=jdbc:postgresql://localhost/sonarqubesonar.web.host=0.0。0.0sonar.web.port=9000sonar.web.javaAdditionalOpts=-serversonar.search.javaOpts=-Xmx512m-Xms512m-XX:+HeapDumpOnOutOfMemoryErrorsonar.log.level=INFOsonar.path.logs=logs其中PASSWORD是你sonarPostgreSQL设置的密码由用户。保存并关闭文件。如何创建systemd文件并启动服务?现在让我们创建一个systemd文件,以便我们可以控制SonarQube服务。使用以下命令创建文件:sudonano/etc/systemd/system/sonarqube.service在此文件中,粘贴以下内容:[Unit]Description=SonarQubeserviceAfter=syslog.targetnetwork.target[Service]Type=forkingExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.shstartExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.shstopUser=sonarGroup=sonarRestart=alwaysLimitNOFILE=65536LimitNPROC=4096[Install]WantedBy=multi-user.target保存并关闭文件。使用以下命令启用并启动服务:systemctlenablesonarqubesystemctlstartsonarqube如何安装和配置NGINX?我们将使用NGINX作为SonarQube的反向代理。要安装NGINX,请执行此命令:sudoapt-getinstallsnginx-y使用以下命令启动并启用NGINX服务:sudosystemctlenablenginxsudosystemctlstartnginx使用以下命令创建新的NGINX配置文件:sudonano/etc/nginx/sites-enabled/sonarqube.conf在这个文件,粘贴以下内容:server{listen80;server_namesonarqube.da.com;access_log/var/log/nginx/sonar.access.log;error_log/var/log/nginx/sonar.error.log;proxy_buffers166??4k;proxy_buffer_size128k;location/{proxy_passhttp://127.0.0.1:9000;proxy_next_upstreamerrortimeoutinvalid_headerhttp_500http_502http_503http_504;proxy_redirectoff;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_headerX-Forwarded-Protohttp;}}保存并关闭文件。Restart使用以下命令的NGINX:sudosystemctlrestartnginx如何访问SonarQube?SonarQube现已安装,打开浏览器并指向http://SERVER_IP:9000(SERVER_IP是您服务器的IP地址)。您将看到欢迎页面(图A)。图A:SonarQube欢迎页面也充当仪表盘点击“登录”,使用登录信息admin/admin。登录后,您将看到主SonarQube页面,您可以在其中开始上传要分析的代码(图B)。图B:SonarQube主页面已准备就绪恭喜,您拥有一个强大的工具,可以帮助您毫无问题地编写干净的代码。经常和明智地使用它。原标题:如何在UbuntuServer20.04上安装SonarQube代码质量分析器,作者:JackWallen
