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端口

  1. 确认已开放的端口
  1. firewall-cmd --zone=public --list-ports
  1. 永久打开端口5432
  1. firewall-cmd --zone=public --add-port=5432/tcp --permanent
  1. 重新载入防火墙
  1. firewall-cmd --reload

image.png

2.2 修改Postgresql配置文件

  1. 修改postgresql.conf
  1. vi /var/lib/pgsql/11/data/postgresql.conf

根据Polarion的文档,修改文件内容为:

  1. listen_addresses = '10.1.2.55' # 应为当前IP
  2. max_connections = 20 # 应小于 10*CPU Cores数量
  3. shared_buffers = 300MB # 应为 10%~15%的系统内存
  4. work_mem = 4MB # 应为 10MB~100MB
  5. maintenance_work_mem = 200MB
  6. dynamic_shared_memory_type = posix
  7. fsync = off
  8. synchronous_commit = off
  9. full_page_writes = off
  10. wal_buffers = 256kB
  11. max_wal_size = 1GB
  12. min_wal_size = 80MB
  13. effective_cache_size = 3GB
  14. max_locks_per_transaction = 100
  15. log_destination = 'stderr'
  16. logging_collector = on
  17. log_directory = 'log'
  18. log_filename = 'postgresql-%a.log'
  19. log_truncate_on_rotation = on
  20. log_rotation_age = 1d
  21. log_rotation_size = 0
  22. log_line_prefix = '%m [%p] '
  23. log_timezone = 'Asia/Shanghai'
  24. datestyle = 'iso, ymd'
  25. timezone = 'Asia/Shanghai'
  26. lc_messages = 'zh_CN.UTF-8'
  27. lc_monetary = 'zh_CN.UTF-8'
  28. lc_numeric = 'zh_CN.UTF-8'
  29. lc_time = 'zh_CN.UTF-8'
  30. default_text_search_config = 'pg_catalog.simple'
  1. 修改pg_hba.conf
  1. vi /var/lib/pgsql/11/data/pg_hba.conf

在文件最后增加,允许远程连接

  1. host all all 0.0.0.0/0 md5
  1. 重启postgresql服务
  1. systemctl restart postgresql-11

2.3 创建Polarion用户及数据库

使用默认账户postgres连接数据库postgres,执行SQL,其中PASSWORD为polarion用户的密码

  1. CREATE USER polarion WITH PASSWORD 'PASSWORD' CREATEROLE;
  2. CREATE DATABASE polarion OWNER polarion ENCODING 'UTF8';
  3. CREATE DATABASE polarion_history OWNER polarion ENCODING 'UTF8';

使用默认账户postgres连接数据库polarion,执行SQL,安装dblink扩展

  1. CREATE EXTENSION dblink;
  2. CREATE LANGUAGE plpgsql;

使用默认账户postgres连接数据库polarion_history,执行SQL,安装dblink扩展

  1. CREATE EXTENSION dblink;
  2. CREATE LANGUAGE plpgsql;

3 节点1配置

3.1 OpenJDK安装

  1. 在官网上获取指定版本的OpenJDK介质,本实验中版本为OpenJDK 11,获取的介质为ZIP压缩包;
  2. 在硬盘新建JDK文件夹;

image.png

  1. 解压缩OpenJDK压缩包至JDK文件夹中;

image.png

3.2 Polarion节点配置

3.2.1 使用Standard模式完成节点的Polarion安装

  1. 执行安装程序;

image.png

  1. 输入用户名称及公司名称,此处测试实例,任意填写;

image.png

  1. 选择Standard Installation进行生产环境标准安装;

image.png

  1. 保持默认,单节点实例至少需要安装 Polarion Server、Apache、Subversion,但该安装程序下均会完整安装;

image.png

  1. 填写OpenJDK的安装位置

image.png

  1. 点击Install进行安装

image.png

  1. 等待安装完成

image.png

  1. 点击Next进行进一步配置;

image.png

  1. 填写该节点的FQDN域名或IP地址

image.png

  1. 填写该节点的对外端口

image.png

  1. 配置内置PgSQL的参数,因此实例使用独立数据库,此处随意填写即可;

image.png

  1. 填写SMTP邮箱服务器;

image.png

  1. 查看配置概要表

image.png

  1. 等待配置完成,此处不要启动Polarion Server

image.png

3.2.2 进行Polarion的数据库配置

  1. 编辑C:\Polarion\polarion\configuration\polarion.properties
  2. 找到com.polarion.platform.internalPG项,修改配置并保存,格式为<用户名>:<密码>@:<端口>
  1. com.polarion.platform.internalPG=polarion:PASSWORD@10.1.2.55:5432

3.2.3 重新索引数据库

  1. 运行Polarion安装目录下 \polarion\reindex.bat 执行重新索引

image.png

  1. 等待Polarion服务器完成索引

image.png

  1. 使用数据库客户端查看PgSQL数据库,可以看到polarion的schemas已经完成建立了

image.png

3.2.4 清除内置PgSQL

  1. 停止PostgreSQLPolarion服务

image.png

  1. 删除 Polarion 安装目录下 bundled 下的 postgres 即可完成内置数据库的卸载

image.png