1 环境准备
1.1 背景描述
Polarion默认单节点生产实例使用内置的PostgreSQL数据库,但实际适用于生产环境时,为了安全性、易维护性、可用性、性能以及扩展性考虑,往往需要将Web服务于数据库服务分离。
本文介绍了如何实施一个使用独立PgSQL的Polarion单节点生产实例。
1.2 实验环境机器清单
实验环境基于VMware ESXi 6.7;
宿主机环境配置 CPU : 40 Cores @ 2.0GHz / RAM : 256GB / Storage : 800GB SSD
实验涉及到的虚拟机清单如下:
序号 | 机器名 | IP地址 | 机器描述 | 硬件配置 | 软件配置 |
---|---|---|---|---|---|
1 | database1 | 10.1.2.55 | 数据库 | CPU: 2 Cores @ 2.0GHz RAM:4GB Storage:64GB SSD |
CentOS 7.7 Postgresql 11 |
2 | node1 | 10.1.2.59 | 节点 | CPU: 4 Cores @ 2.0GHz RAM:8GB Storage:64GB SSD |
Windows Server 2019 Standard |
2 数据库配置
2.1 基础环境确认
在进行实施前,确认服务器已完成以下组件的安装:
- postgresql11
- postgresql11-server
- postgresql11-contrib
2.1 打开Postgresql端口
- 确认已开放的端口
firewall-cmd --zone=public --list-ports
- 永久打开端口5432
firewall-cmd --zone=public --add-port=5432/tcp --permanent
- 重新载入防火墙
firewall-cmd --reload
2.2 修改Postgresql配置文件
- 修改postgresql.conf
vi /var/lib/pgsql/11/data/postgresql.conf
根据Polarion的文档,修改文件内容为:
listen_addresses = '10.1.2.55' # 应为当前IP
max_connections = 20 # 应小于 10*CPU Cores数量
shared_buffers = 300MB # 应为 10%~15%的系统内存
work_mem = 4MB # 应为 10MB~100MB
maintenance_work_mem = 200MB
dynamic_shared_memory_type = posix
fsync = off
synchronous_commit = off
full_page_writes = off
wal_buffers = 256kB
max_wal_size = 1GB
min_wal_size = 80MB
effective_cache_size = 3GB
max_locks_per_transaction = 100
log_destination = 'stderr'
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 0
log_line_prefix = '%m [%p] '
log_timezone = 'Asia/Shanghai'
datestyle = 'iso, ymd'
timezone = 'Asia/Shanghai'
lc_messages = 'zh_CN.UTF-8'
lc_monetary = 'zh_CN.UTF-8'
lc_numeric = 'zh_CN.UTF-8'
lc_time = 'zh_CN.UTF-8'
default_text_search_config = 'pg_catalog.simple'
- 修改pg_hba.conf
vi /var/lib/pgsql/11/data/pg_hba.conf
在文件最后增加,允许远程连接
host all all 0.0.0.0/0 md5
- 重启postgresql服务
systemctl restart postgresql-11
2.3 创建Polarion用户及数据库
使用默认账户postgres连接数据库postgres,执行SQL,其中PASSWORD为polarion用户的密码
CREATE USER polarion WITH PASSWORD 'PASSWORD' CREATEROLE;
CREATE DATABASE polarion OWNER polarion ENCODING 'UTF8';
CREATE DATABASE polarion_history OWNER polarion ENCODING 'UTF8';
使用默认账户postgres连接数据库polarion,执行SQL,安装dblink扩展
CREATE EXTENSION dblink;
CREATE LANGUAGE plpgsql;
使用默认账户postgres连接数据库polarion_history,执行SQL,安装dblink扩展
CREATE EXTENSION dblink;
CREATE LANGUAGE plpgsql;
3 节点1配置
3.1 OpenJDK安装
- 在官网上获取指定版本的OpenJDK介质,本实验中版本为OpenJDK 11,获取的介质为ZIP压缩包;
- 在硬盘新建JDK文件夹;
- 解压缩OpenJDK压缩包至JDK文件夹中;
3.2 Polarion节点配置
3.2.1 使用Standard模式完成节点的Polarion安装
- 执行安装程序;
- 输入用户名称及公司名称,此处测试实例,任意填写;
- 选择Standard Installation进行生产环境标准安装;
- 保持默认,单节点实例至少需要安装 Polarion Server、Apache、Subversion,但该安装程序下均会完整安装;
- 填写OpenJDK的安装位置
- 点击Install进行安装
- 等待安装完成
- 点击Next进行进一步配置;
- 填写该节点的FQDN域名或IP地址
- 填写该节点的对外端口
- 配置内置PgSQL的参数,因此实例使用独立数据库,此处随意填写即可;
- 填写SMTP邮箱服务器;
- 查看配置概要表
- 等待配置完成,此处不要启动Polarion Server
3.2.2 进行Polarion的数据库配置
- 编辑C:\Polarion\polarion\configuration\polarion.properties
- 找到com.polarion.platform.internalPG项,修改配置并保存,格式为<用户名>:<密码>@
:<端口>
com.polarion.platform.internalPG=polarion:PASSWORD@10.1.2.55:5432
3.2.3 重新索引数据库
- 运行Polarion安装目录下 \polarion\reindex.bat 执行重新索引
- 等待Polarion服务器完成索引
- 使用数据库客户端查看PgSQL数据库,可以看到polarion的schemas已经完成建立了
3.2.4 清除内置PgSQL
- 停止PostgreSQLPolarion服务
- 删除 Polarion 安装目录下 bundled 下的 postgres 即可完成内置数据库的卸载