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 驱动程序/
备份数据库
删除数据/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指标集成到TFS构建中 - 简介
2014年7月31日/ ANDYBDEV
我一直在努力将SonarQube整合到我们每周运行的TFS中。如果你不知道SonarQube是否检查出来。它是一个很好的方法来集中有关您的代码的信息,这有助于捕获和跟踪关注KPI的人的指标(如果我们必须让他们至少对他们的代码质量有积极的作用),同时给那些“它是一个中心的地方,可以看到他们可以改进的代码质量等问题。
以前,中国sonarqube开源代码质量管理软件,我们从TFS开发了一个单独的Jenkins构建阅读源,但是我们希望摆脱这个额外的构建,中国sonarqube开源代码质量管理软件,并且只需在TFS中执行一次 - 似乎有点浪费和耗时地整理Jenkins以及TFS。事实证明,我已经有了很好的时机(在写作的时候),近才有声纳可以处理微软测试结果和覆盖文件的上传(分别为.trx和.coverage) - http://docs.codehaus .ORG /显示/ SONAR / C%23 +插件。
方法 - 使用标准的TFS Build工具包
不幸的是,将SonarQube集成到TFS构建中并不是直接的过程。那里已经有可以为您进行扫描和上传方面的定制活动(http://www.vlaquest.com/2013/10/sonar-build-activity-for-tfs-updated/)。我不太喜欢自定义程序集,因为您需要创建一个项目来管理模板,并提供大量引用来删除所有的警告和错误,并且实际上允许您配置导入的活动,从那时起就成为一个需要从项目中编辑你的模板 - 我知道..它没有什么大不了的,但我宁愿把它作为一个简单的可编辑工作流程。然后,您需要将程序集提供给构建控制器,我希望避免需要这样做 - 加上我曾经遇到过这样的问题,以便与过去的托管Team Foundation Service一起工作,这在历史的上使我无法避免。
考虑到这些要点,我已经采取了一种方法,这意味着大多数工作可以使用标准活动在构建模板中完成,其余的工作可以在几个可以坐在源中的批处理文件中完成。
我会引导你完成这个过程。
SonarSource
在这些更复杂的环境中, 组织必须做更多的事情。
竞争环境, 资源很少和/或减少。他们必须弥合 everincreasing
它与业务的新形式的社会参与之间的差距, 并抗衡
随着更多的要求创新的应用程序, 满足业务和
消费者的需求。
企业项目在激烈的压力下的水平和率
技术变化要求部门协同工作, 包括业务干系人
和跨 IT、开发、质量和运营的管理人员,代理商sonarqube开源代码质量管理软件, 以便在竞争中生存。
正如我们看到的组织转向复杂的采购, 以解决这些业务和
技术需求, 我们看到了对软件分析、自动化和通用过程的需求
通过.对于 IDC 来说, 复杂的采购意味着利用外部服务提供商的资源
(如陆上和近海 SIs), 来自商业、IT、基础设施的内部资源,
承包商, 并使用开源软件 (OSS) 解决方案和组件。
需要建立伙伴关系和使用一系列资源, 要求管理、自动化、
和质量的协调。代码质量的可见性成为关键, 有助于提高
行为, 以产生更好的软件和地图团队的适当类型的项目给
经验水平和执行 (即使机会成为教育团队
更有效地执行)。服务提供商和内部员工都需要 "他们的游戏" 与
关于软件的创建、适当的质量和缺陷的积压。"技术债务" 只能
识别和解决, 如果它是可见的, 可以通过适当的自动化工具启用和
过程策略的采用和分析, 以了解影响。
这一 IDC 技术聚焦将讨论改进软件分析方法的必要性,
缺陷管理、安全和度量, 通过主动可见性来获得业务和 IT 好处。
那些不懂历史的人注定要重蹈覆辙;这句谚语也适用于无效
软件创建、质量和缺陷缓解和解决方法。
不断变化的质量观
随着企业越来越依赖于技术和软件来提供产品,sonarqube开源代码质量管理软件,
CIO 的工作正在转变。预算没有增加, 但业务期望它能够
在高度复杂的环境中比以前更快地交付新的业务价值
提高了对质量的期望。此外, 有一种期望, 它会变得更清楚
新的业务目标, 并将 IT 优先级与之相匹配。一个关键的挑战是如何使
更快地交付更高质量的应用程序, 以满足业务和客户需求。它, 并
cio 必须超越提高 IT 效率以实现业务创新, 并提供
具有持续部署和改进的软件实践的客户体验。和一个
基本的构建模块是代码分析和管理。
缺乏对代码质量的可见性, 以及导致问题的代码更加明显
和更多的削弱企业现在由于能见度和曝光要求
移动和其他面向客户的应用程序。这已经成为高管们的问题,
那些在代码创建级别的组织。
开发和提供高质量的软件版本和新的面向客户的应用程序
时间是一个越来越大的挑战, 特别是对于那些必须与复杂的
与遗留系统和资源相结合的现代技术网络。组织必须
解决内部业务的需求-企业应用程序的扩展和可用性
移动/社会/云平台-以及满足客户/消费者对可用性的需求
创新的应用。然而, 如何做到这一点, 而不提供洞察问题, 因为它们是
无意中创建的?
可以做些什么来提高整体软件质量以减少问题和风险, 同时
加快发布周期, 使新的服务和产品更快地投放市场?这
要求对软件漏洞和缺陷进行有效和早期的管理, 以使
主动的质量战略和降低成本。然而, 如何才能减轻现有的不良行为
hao完成这些目标?
sonarqube开源代码质量管理软件-华克斯由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司为客户提供“Loadrunner,Fortify,源代码审计,源代码扫描”等业务,公司拥有“Loadrunner,Fortify,Webinspect”等品牌,专注于行业软件等行业。,在苏州工业园区新平街388号的名声不错。欢迎来电垂询,联系人:华克斯。