SonarSource
外部资源
以下链接在SonarQube的安装过程中被使用,并已在整个博客中被提及。
SonarQube屏幕截图基于生命周期期望的软件质量评估关于github(多语言)的项目示例扩展声纳集成
Eclipse Sonar插件
MySQL调谐器
在CI服务器上安装Sonar(2011)
在linux构建服务器上安装Sonar(2009)
笔记
Sonar和SonarQube这些术语在上面的许多地方已被互换使用。其中一些是由于引用的链接未被更新,而其他链接是由于脚本和程序引用继续与其原始名称一起使用,以防止依赖性问题。
不要在本博客中提到设置,路径和文件位置,URL引用,excetra,在某些情况下,它们需要根据与您的环境相关的设置进行调整。
请注意,此博客上的所有外部链接可能会或可能不会保持实际,并且不可维护,代理商sonarqube安装配置,作为此博文的一部分。
ratings 2001-如果某些东西没有为您工作,并且您已经设法使其工作或有一个解决方案/替代方案,请与我们分享!





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 泊坞窗图像, 但无法使用, 因为我们的 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 工具进行比较。
这两个步骤都需要后续的手动升级, 我认为这些升级准备活动。
SonarSource结论
由 SonarSource 设计和实现, 内部质量连续检测是一个整体,完全实现的过程, 旨在使代码质量成为软件开发生命的一个组成部分循环并提高其在整个生命周期中的所有利益干系人的可见性。连续检查范例是非常有效的, 并已被证明是在现实世界中工作, 在所有行业从 one-man 商店到财富100强企业不等的组织。连续检测是一种新的软件质量模型, 它包含较短的反馈回路确保快速解决质量问题。简而言之, 它是一个从一开始就建立质量的模型,而不是事后考虑。随着持续的检查, 发现质量缺陷-和纠正--在开发过程的早期, 影响很小而且易于管理。一些问题将在开发人员的 IDE 中被的捕获,中国sonarqube, 然后再进行签入。其余的将被报告在一天内, 虽然代码仍然是新的开发人员的头脑和修复仍然便宜和容易。这快速反馈周期具有提高质量和教育的双重效益。连续检查很好地适应了敏捷和瀑布开发环境, 并解决了传统方法的缺点。持续的检查提供了改进的质量对开发过程和时间线的xiao中断。持续的检查促进了团队协作和生产力的增强, 并产生了强大团队对代码质量的归属感, 因为质量过程与代码本身一样, 是由团队。在那里, 准时的审计被嘲笑为迅速过时, 并忽略增量软件开发的性质,sonarqube, 连续检查提供了一个即时性和清晰的图片软件质量随时间推移。随着持续的检查, 质量的感知成本是零, 因为质量是混合无缝地进入开发过程本身。经过不断的检验, 企业终于可以接受代码质量 whole-heartedly, 并da化其软件 ROI。
sonarqube-苏州华克斯信息由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司位于苏州工业园区新平街388号。在市场经济的浪潮中拼博和发展,目前华克斯在行业软件中享有良好的声誉。华克斯取得全网商盟认证,标志着我们的服务和管理水平达到了一个新的高度。华克斯全体员工愿与各界有识之士共同发展,共创美好未来。