创建PostgreSQL数据库
支持的PostgreSQL版本
Artifactory支持PostgreSQL版本13。X及以下(2021年的EOL为9.5和9.6)。
使用下面的命令创建一个具有适当权限的Artifactory用户和数据库。修改相关值以匹配您的特定环境:
CREATE USER artifactory WITH PASSWORD创建一个UTF8的数据库授予数据库artifactory上的所有特权给artifactory;
一旦您验证了脚本是正确的,您就需要运行它来创建数据库并继续配置数据库。
Artifactory特权
我们建议为Artifactory提供数据库上的全部特权。
配置Artifactory使用PostgreSQL
当您将Artifactory配置为使用PostgreSQL时,所有的工件信息都存储在PostgreSQL中,而工件二进制数据存储在文件系统中$ JFROG_HOME / artifactory / var /数据/ artifactory / filestore
).
虽然可以在PostgreSQL中存储blob,但我们不推荐这样做。这一点很重要,因为PostgreSQL驱动程序不支持将长度未知的blob流到数据库中。因此,Artifactory临时将部署的文件保存到文件系统中,然后才将BLOB保存到数据库中。
配置Artifactory使用PostgreSQL单节点
- 停止Artifactory服务。
中的数据库连接详细信息system.yamlconfiguration file如下。
shared: database: type: postgresql driver: org.postgresql.Driver url: jdbc:postgresql://<您的db url,例如:localhost:5432>/artifactory username: artifactory password:密码
- 启动Artifactory服务。
配置Artifactory HA使用PostgreSQL数据库
从Artifactory 7.31.10提供。
- 停止Artifactory服务。
编辑
system.yaml
文件更新以下值。因为Artifactory使用多个驱动程序,您需要分别为这些驱动程序配置连接字符串。
的
url
场下共享
数据库部分的如下格式。jdbc:postgresql://< postgresql Database 1 URL>…,
/artifactory?targetServerType =主 的
url
场下元数据
数据库部分的如下格式。jdbc:postgresql://< postgresql Database 1 URL>…,
/artifactory?target_session_attrs =读写” 下面的示例显示了一个示例
system.yaml
文件配置。systemYaml: shared: logging:…数据库:type: postgresql url: "jdbc:postgresql://17.21.0.2:5432,17.21.0.3:5432/artifactory? "targetServerType =主" driver: org.postgresql.Driver username: "artifactory" password: "password" artifactory: Database: ... frontend: ... access: ... metadata: database: type: postgresql url: "jdbc:postgresql://17.21.0.2:5432,17.21.0.3:5432/artifactory?target_session_attrs=read-write" driver: org.postgresql.Driver username: "artifactory" password: "password" ...
- 启动Artifactory服务。
启用TLS加密
若要启用PostgreSQL的TLS (Transport Layer Security)加密,请设置sslmode
财产verify-full
在JDBC连接器URL.
例如,在$ JFROG_HOME / artifactory / var / etc / system.yaml文件:
Shared: database:…url: jdbc: postgresql: / / mypostgress.mydomain.com: 5432 / artifactory ? ssl = true&sslfactory = org.postgresql.ssl.jdbc4.LibPQFactory&sslmode =验证- full&sslrootcert = / tmp /服务器。crt……
如果您正在使用旧证书或使用在2020年7月之前创建的AWS RDS实例,则不会启用主题替代名称(SAN)。要解决此问题,需要生成一个新证书与SAN。