SonarSource简介
治理产品为 gear-up SonarQube 提供了从团队级部署到企业广泛部署 SonarSource 解决方案的功能。它是组织和管理大型项目组合的基石, 其质量模型基于4关键指标: 性、可维护性、可靠性和安全性。
组织大量的应用程序
治理产品提供了组织和构建大型应用程序组合的能力。这是通过定义树来完成的, 其中节点是项目组和项目的叶子。例如, 可以按应用程序、按团队的应用程序、按部门分组等对项目进行分类。
治理
树的数量没有限制, 树木的深度也没有限制。
评估总体健康状况
治理产品为应用程序组合提供了几个健康因素, 包括可维护性, 又称技术债务, 它代表了应用程序或应用程序组的未来维护成本, 以及性, 它代表了应用程序或应用程序组准备装运到生产的情况。
治理
突出风险领域
治理产品作为散热器, 在应用程序组合中突出显示风险区域。这包括操作风险, 即不同于运行时的预期行为以及安全漏洞风险的应用程序, 即可用于其他目的的应用程序, 而不是它们的设计用途。
治理PDF 文件导出 PDF 报表
治理产品增加了将执行仪表板作为 pdf 导出的能力, 以便能够在 web 应用程序之外共享一个投资组合。还可以安排将 PDF 报告定期发送到预定义的收件人列表, 从而在任何级别的投资组合中进行。查看示例项目转移转移项目历史记录
在大型组织中, 为不同部门、业务线运行多个 SonarQube 的实例非常常见, 但也有历史原因。如果是这种情况, 则需要能够在保留项目历史记录的同时将项目从实例转移到另一项。治理产品提供了这种功能。通过扩展, 此功能允许合并 SonarQube 的两个实例。
债务模型控制调整分析模型
每个代码分析器都包含每个规则的预定义补救成本。这些费用在发现问题时适用, 允许计算技术债务补救费用。尽管这些补救费用已在几百万行代码上进行了调整, 并且可以按目前的情况使用, 但可能需要对它们进行调整, 以反映环境中的某些具体情况。
Ansible SonarQube 升级的角色
你可能知道, 并希望使用 SonarQube。这是一个伟大的工具, 是积极的发展和改善。这是伟大的, 如果你是一个开发使用 SonarQube。但是, 如果您碰巧管理 SonarQube 实例, 则由于升级指南由11步骤组成, 因此不断升级非常麻烦。
停止旧的 SonarQube 服务器
下载并解压新的 SonarQube 分布在一个新鲜的目录, 让我们说 NEW_SONARQUBE_HOME
使用默认的 H2 数据库启动它, 并使用更新中心安装您需要的插件
手动安装任何自定义插件
停止新服务器
更新声纳的内容. 属性和包装. 配置文件位于 NEW_SONARQUBE_HOME/配置目录中, 其内容与 OLD_SONARQUBE_HOME/配置目录中的相关文件 (web 服务器 URL、数据库设置等) 有关。不复制-粘贴旧文件
如果使用了自定义 JDBC 驱动程序, 请将其复制到 NEW_SONARQUBE_HOME/扩展/jdbc 驱动程序/<dialect>
备份数据库
删除数据/es 目录
启动新的 web 服务器
复制 http://localhost:9000/setup (用您自己的 URL 替换 "localhost:9000") 来浏览并按照安装说明进行操作
这是一个太多的步骤, 手动执行。因此, 我决定通过为它编写一个 Ansible 的角色来实现自动化。
初始设置
在我开始编写 Ansible 剧本之前, 我需要找到一种方法来测试我的代码。所以我开始与流浪汉旋转了一个虚拟机, 并提供了一个简单的脚本。这是需要有类似的环境, 以我们的实际 SonarQube 生产实例。我能够增量地构建我的 Ansible 剧本并在这个 VM 上测试它。很快我就明白了, 与流浪汉一起工作会减慢我的速度, 因为我需要重置环境, 而不是初的预期。所以我决定考虑泊坞窗。
用于测试的泊坞窗
我找到了正式的 SonarQube 泊坞窗图像, 但无法使用, 因为我们的 SonarQube 实例安装在 CentOS 和官fang图像使用不同的基础图像。另外, 我需要自定义特定的 SonarQube 版本我想开始。因此, 我创建了我们自己的 Dockerfile 与 CentOS 6 基地和 Ansible 安装。
此泊坞窗映像不需要启动 SonarQube, 因为我只是想验证是否进行了正确的文件更改, 而我的 Ansible 手册没有错误。升级的第yi步之一就是关闭服务器。
我将我的剧本装入容器, 并在该容器内运行 Ansible, 对该本地环境进行了更改。
当前脚本的路径
TESTS_DIR = $ (cd "$ (dirname" $ {BASH_SOURCE [0]} ")" & & 密码 "
# 命令测试剧本
TEST_COMMAND = "cd/行动 & & ansible-剧本 $ @
-我 ' 本地主机 '-c
升级-声纳 database.yml "
# 运行容器安装行动为卷
泊坞 run-v "$ TESTS_DIR/.。/行动/:/行动 "
"声纳-升级-测试"/"垃圾/bash-c" $ {TEST_COMMAND} "
在泊坞窗中运行我的剧本大大减少了反馈回路, 所以我决定泊坞窗是走的路。你可以看看我所有的脚本在 GitHub
Ansible 角色
我一步一步地往前走, 我到达了一个点, 一切似乎都在工作, 我有一个非常有用的 Ansible 的角色在我的手中。它尚未发布到 Ansible Galaxy, 但您可以在 GitHub 的 SonarQube 升级 Ansible 角色项目下找到源文件和文档。
当前 Ansible 角色通过在当前位置旁边创建新安装来升级 SonarQube。这提供了回滚的方法 (如果需要)。
此时, 角色执行以下任务:
确保特定的根用户存在于声纳安装
在所有安装所在的目录中创建声纳. sh
确保 SonarQube 服务存在
停止 SonarQube
下载新版本
备份数据库
下载和安装插件
将自定义配置应用于新实例
确保删除数据/es
重新 SonarQube 服务启动新版本
开始 SonarQube
手动步骤
这个过程仍然需要几个手动步骤。
在运行升级手册之前, 应手动确保在升级过程中要安装的插件列表是xin的。您可以从 SonarQube 的管理视图中获得xin支持的版本号。
根据 SonarQube 的建议, 此 Ansible 角色不仅复制以前安装的配置, 而且使用带有变量的模板来为新实例创建配置。这意味着在执行升级之前, 开发人员可以将模板和基本配置与新的 SonarQube 下载进行比较。虽然这是一个手动步骤, 但与以前的操作相比, 它更容易, 因为可以使用 IDE 而不仅仅是从命令行中的 diff 工具进行比较。
这两个步骤都需要后续的手动升级, 我认为这些升级准备活动。
使用SonarQube - Blockers进行PL / SQL分析
发表评论
PLSQL_BlockersCritical在上一篇文章中,我们已经看到如何创建我们自己的PL / SQL质量配置文件,激huo SonarQube默认配置文件中的所有132个现有规则。现在,我们可以重新启动前面发起的分析。
这样,我将能够处理PL / SQL配置文件中存在的所有规则,并选择我想要使用的规则,以便为我的演示环境创建PL / SQL仪表板。继续阅读→
此条目发布于2014年1月5日由Jean-Pierre FAYOLLE发行的SonarQube - PL / SQL。
使用SonarQube进行PL / SQL分析 - PL / SQL质量配置文件
发表评论
SonarQubePLSQL3在从Jenkins配置我们的第yi个PL / SQL分析后,我们启动了它,现在我们可以在SonarQube仪表板中查看结果。
这将是一个机会,在我们的下一篇文章中讨论和解释SonarQube提出的PL / SQLjia实践。但首先,我们来看看SonarQube PL / SQL质量配置文件中的规则。继续阅读→
Jean-Pierre FAYOLLE于2013年12月29日发布了SonarQube - PL / SQL。