lrk.sonarqube
Ansible 角色:SonarQube (lrk.sonarqube)
一个安装 SonarQube 的 Ansible 角色。
支持的操作系统
该角色已在以下操作系统上进行测试:
- EL - 7
- Debian - Stretch
要求
SonarQube 要求包括:
- 需要在机器上安装 Oracle JRE 11 版本或 OpenJDK 11 版本及以上。
在生产环境中,请确保将 sonar_db_embedded
变量设置为 false,并配置 sonar_db_* 变量。
SonarQube 支持以下数据库:MySQL、Oracle、PostgreSQL 和 Microsoft SQLServer。
有关更多信息,请参考 SonarQube 要求
SonarQube 插件安装
该角色支持基于 "SonarQube 安装插件" 的插件安装。支持市场和手动两种方式。
请注意,该角色不处理之前安装的插件。您 需要 自行删除以前的版本。
要安装插件,请在 sonar_plugins
字典中列出,以下选项可用:
name
:插件名称,对于市场插件,应使用插件清单(json)中的名称,手动插件可以是插件文件夹的名称,或提供url
选项(见下文);version
:插件版本;commercial
:是否为商业插件(实际是另一个下载位置),仅适用于手动插件;url
:插件的 jar 文件链接,如果提供,角色将使用此链接,而不是尝试查找插件;对于市场插件不适用,因为下载链接应在清单中提供;marketplace
:是否为手动或市场插件,默认为 false。
示例:
sonar_plugins:
- name: "sonar-city-model-plugin"
version: "3.3"
commercial: true
url: "http://www.qalitax.com/descargas/product/sonar-city-model-plugin-3.3.jar?customerSurnames=update-center&customerCompany=sonar-update-center&customerName=sonarqube&[email protected]"
- name: "ansible"
version: "2.4.0"
marketplace: true
如何使用 vagrant 本地测试
- 安装 Vagrant 和 VirtualBox。
- 初始化虚拟环境并设置要求,例如:
python -m venv ~/.virtualenvs/molecule
. ~/.virtualenvs/molecule/bin/activate
pip install -r molecule/vagrant/requirements.txt
- 运行测试(默认使用 CentOS 盒子):
molecule test -s vagrant
- (可选)为其他操作系统运行测试(此例中为 ubuntu):
MOLECULE_DISTRO=ubuntu/trusty64 molecule test -s vagrant
角色变量
可用的变量及其默认值如下(见 defaults/main.yml
)
---
---
# ansible-role-sonarqube 的默认文件
# SonarQube 安装目录
sonar_install_directory: /opt/sonarqube
# SonarQube 基础目录
sonar_base_dir: "{{ sonar_install_directory }}/sonarqube-{{ sonar_version }}"
# SonarQube 守护程序目录
sonar_daemon_dir: "{{ sonar_base_dir }}/bin/linux-x86-{{ ansible_userspace_bits }}"
# SonarQube 配置目录
sonar_conf_dir: "{{ sonar_base_dir }}/conf"
sonar_logs_dir: "/var/log/sonarqube"
# 持久数据文件的路径(嵌入式数据库和搜索索引)
sonar_data_dir: "{{ sonar_base_dir }}/data"
# 临时文件的路径
sonar_temp_dir: "{{ sonar_base_dir }}/temp"
# 要安装的 SonarQube 版本
sonar_version: 5.6.7
# SonarQube 系统组
sonar_group: sonar
# SonarQube 系统用户
sonar_user: sonar
# SonarQube 服务 LimitNOFILE 参数
sonar_limitnofile: 65536
# 要安装的 SonarQube 插件(见上文详细说明)
sonar_plugins: []
# 使用嵌入式 H2 数据库,不适用于生产环境
sonar_db_embedded: true
sonar_db_embedded_port: 9092
# SonarQube JDBC 凭据
sonar_db_user: ""
sonar_db_pass: ""
# SonarQube JDBC URL
sonar_jdbc_url: ""
# SonarQube JDBC 最大活动连接数
sonar_jdbc_maxactive: 60
# 可以保持空闲的最大连接数
sonar_jdbc_maxidle: 5
# 可以保持空闲的最小连接数
sonar_jdbc_minidle: 2
# 连接池等待可用连接的最大毫秒数
sonar_jdbc_maxwait: 5000
sonar_jdbc_min_evictable_idle_time_millis: 600000
sonar_jdbc_time_between_eviction_runs_millis: 30000
# SonarQube Web 服务器配置
sonar_web_java_opts: ""
# 绑定 IP 地址。用于具有多个 IP 地址的服务器
sonar_web_host: 0.0.0.0
# TCP 端口用于接收 HTTP 连接。默认值为 9000。
sonar_web_port: 9000
# TCP 端口用于接收 AJP 连接。禁用时值为 -1。默认情况下禁用。
sonar_ajp_port: -1
依赖关系
没有直接依赖关系。JDK 应先安装。
示例 Playbook
- hosts: servers
pre_tasks:
- name: 安装包依赖。
package:
name: "{{ item }}"
state: "present"
with_items:
- unzip
roles:
- lrk.sonarqube
升级
请先在预发布环境中测试升级。
过程包括以下步骤:
- 更改变量
sonar_version
- 根据 https://docs.sonarqube.org/latest/instance-administration/plugin-version-matrix/ 审查变量
sonar_plugins
- 在现有安装上运行该角色。Ansible 将:
- 创建安装文件夹
- 将新 SonarQube 的二进制文件和插件放入此处
- 停止当前正在运行的服务
- 更新配置
- 重新启动服务
- 确保 Web 服务已启动,并且 SonarQube 版本号出现在 web.log 中
- 确保正在运行的 Sonar 版本与预期相符
- 然后,您需要打开 http://yourSonarQubeServerURL/setup 并按照 https://docs.sonarqube.org/latest/setup/upgrading/ 中描述的设置说明进行操作(角色输出会留下提醒)。
请注意:
- 角色不会备份数据库
- 角色不会比较版本。请避免错误降级
- 角色不会删除以前安装的文件夹,因此升级后,变量
sonar_install_directory
中指定的路径将包含多个sonar_base_dir
许可证
Apache 许可证 版本 2.0
参考
作者信息
该角色由 Lrk 创建。
安装
ansible-galaxy install lrk.sonarqube
许可证
apache-2.0
下载
103.5k
拥有者