九、安装artifactory并配置PostgreSQL--失败了
八、centos7安装mysql5.7-CSDN博客
基于八,克隆出一个新的虚拟机,用来安装制品库并配置mysql数据库。
比较官方的文章:
How to install JFrog Artifactory on CentOS 7 | CentLinux
仅参考,未使用(配置的centos自带的数据库,不会用)
目录
一、环境准备
1.查看jdk版本
2.查看mysql服务
3.安装jdk
二、安装artifactory并配置MySQL--失败
1.使用npm包--失败
2.使用tar.gz包--失败
设置环境变量
启动artifactory--浏览器无法访问
配置Mysql
三、安装PostgreSQL
一、环境准备
1.查看jdk版本
java -version 未找到java命令,说明未安装
2.查看mysql服务
sudo service mysqld status
sudo service mysqld start
本机mysql服务是启动的,sql yong也连接上了。
3.安装jdk
wget https://download.oracle.com/java/17/archive/jdk-17.0.6_linux-x64_bin.rpm
yum install -y jdk-17.0.6_linux-x64_bin.rpm
java -version
cd /usr/lib/jvm/jdkxxxx
二、安装artifactory并配置MySQL--失败
1.使用npm包--失败
之前下载了npm安装包:jfrog-artifactory-oss-7.90.8.rpm
放到虚拟机里,执行
sudo yum install jfrog-artifactory-oss-7.90.8.rpm -y
报错:
错误:软件包:jfrog-artifactory-oss-7.90.8-79008900.x86_64 (/jfrog-artifactory-oss-7.90.8)
需要:libstdc++.so.6(CXXABI_1.3.9)(64bit)
您可以尝试添加 --skip-broken 选项来解决该问题
您可以尝试执行:rpm -Va --nofiles --nodigest
解决方法:
执行 yum repolist
[root@localhost ~]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.tuna.tsinghua.edu.cn
* updates: mirrors.tuna.tsinghua.edu.cn
源标识 源名称 状态
base/7/x86_64 CentOS-7 - Base 10,072
extras/7/x86_64 CentOS-7 - Extras 526
mysql-connectors-community/x86_64 MySQL Connectors Community 258
mysql-tools-community/x86_64 MySQL Tools Community 108
mysql57-community/x86_64 MySQL 5.7 Community Server 696
updates/7/x86_64 CentOS-7 - Updates 6,173
repolist: 17,833
[root@localhost ~]# yum provides libstdc++.so.6
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.tuna.tsinghua.edu.cn
* updates: mirrors.tuna.tsinghua.edu.cn
libstdc++-4.8.5-44.el7.i686 : GNU Standard C++ Library
源 :base
匹配来源:
提供 :libstdc++.so.6
关闭了防火墙 systemctl stop firewalld
执行 sudo yum install -y libstdc++-4.8.5-44.el7.i686
之后继续安装artifactory,仍然报错。
2.使用tar.gz包--失败
提前下载了 jfrog-artifactory-oss-7.90.8-linux.tar.gz, 上传到虚拟机
tar -zxvf jfrog-artifactory-oss-7.90.8-linux.tar.gz -C /usr/local
cd /usr/local
ln -s /usr/local/artifactory-oss-7.90.8/ /usr/local/jfrog
ls -al /usr/local/jfrog/
安装后的目录只有app / var ,具体是干啥的没有搞明白,后面在研究
设置环境变量
# 编辑
sudo vim /etc/profile
或者用
vi /etc/profile
# 添加
export ARTIFACTORY_HOME=/usr/local/jfrog
# 生效
sudo source /etc/profile
或者用
. /etc/profile
启动artifactory--浏览器无法访问
(未启动时,var/log var/data var/backup var/etc/system.yml 都没有,要注意)
cd /usr/loca/jfrog/app/bin
./artifactoryctl start
启动之后,var/logs之类的才会出来
但此时浏览器访问8081端口报404(此时防火墙已经关了,即使开了防火墙开放了8081端口,仍然是404。猜测是mysql未配置的原因)
配置Mysql
mysql -u root -p
因为artifactory区分大小写,所以创建一个区分大小写的数据库(使用utf8_bin区分大小写)
create database if not exists artifactory default character set utf8 collate utf8_bin;
之后 exit退出
cd /usr/local/jfrog/var/etc
vi system.yaml
artifactory运行内存配置
shared:
## Java 17 distribution to use
#javaHome: "JFROG_HOME/artifactory/app/third-party/java"
## Extra Java options to pass to the JVM. These values add to or override the defaults.
extraJavaOpts: "-Xms512m -Xmx2g"
extraJavaOpts原本是注释掉的,在运行时仍然会按照这个设置运行内存,可能在tomcat里设置了。这里我取消注释了。
配置数据库
database:
type: mysql
driver: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/artifactory?useUnicode=true&useSSL=false&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=UTC
username: <User name>
password: <Password>
这个配置有两个问题
1.username后面是否需要空格
2.password是明文吗,有安全风险
安装mysql驱动
cd /usr/local/jfrog/app/artifactory
curl -O https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.2.0/mysql-connector-j-8.2.0.jar
启动artifactory
2024-09-01T08:18:49.539Z [shell] [WARN ] [] [installerCommon.sh:819 ] [main] - System.yaml validation failed
[WARN ] Error while initializing File resolver : yaml: line 68: could not find expected ':'
yaml文件,: 后面必须留空格,上面说的username留空格的问题解决了。
再次启动artifactory
访问浏览器报404,var/log下的日志提示
2024-09-01T08:25:54.730Z ^[[36m[jfrou]^[[0m ^[[34m[INFO ]^[[0m [1048b85c0cbc30ad] [security_keys.go:172 ] [main ] [] - Master key is missing. Pending for 115 seconds with 5m0s timeout
2024-09-01T08:25:55.071Z ^[[34;1m[jfmd ]^[[0m ^[[34m[INFO ]^[[0m [ ] [security_keys.go:172 ] [main ] - Master key is missing. Pending for 115 seconds with 2m0s timeout [init]
2024-09-01T08:25:55.400Z ^[[36;1m[jfevt]^[[0m ^[[34m[INFO ]^[[0m [5c060f643aa64c4d] [security_keys.go:172 ] [main ] [ ] - Master key is missing. Pending for 115 seconds with 2m0s timeout [startup]
2024-09-01T08:25:56.256Z ^[[[35[jfob ]^[[0m ^[[34m[INFO ]^[[0m [5f7d4d057d2fb922] [security_keys.go:172 ] [main ] - Master key is missing. Pending for 115 seconds with 2m0s timeout [startup]
2024-09-01T08:25:59.745Z ^[[36m[jfrou]^[[0m ^[[34m[INFO ]^[[0m [1048b85c0cbc30ad] [security_keys.go:172 ] [main ] [] - Master key is missing. Pending for 120 seconds with 5m0s timeout
2024-09-01T08:25:59.746Z ^[[34;1m[jfmd ]^[[0m ^[[31;1m[ERROR]^[[0m [ ] [keys.go:23 ] [main ] - Failed resolving master key: failed resolving 'shared.security.masterKey' key; file does not exist: /usr/local/jfrog/var/etc/security/master.key
goroutine 1 [running]:
runtime/debug.Stack()
/src/runtime/debug/stack.go:24 +0x5e
jfrog.com/jfrog-go-commons/v7/pkg/log.(*standardLogger).Panicfc(0xc0004be150, {0x20da9f8, 0xc000989e30}, {0xc0003b2750, 0x90}, {0x0, 0x0, 0x0})
goroot/pkg/mod/jfrog.com/jfrog-go-commons/v7@v7.111.0/pkg/log/standard_logger.go:98 +0xc6
jfrog.com/metadata/v7/services/common.MustResolveSecurityKeys({0x20da9f8, 0xc000989e30}, {0x20deea8, 0xc00093ceb0}, {0x20e92c8?, 0xc0004be150})
jfrog.com/metadata/v7@v7.72.6/services/common/keys.go:23 +0x1c3
main.main()
jfrog.com/metadata/v7@v7.72.6/metadata.go:35 +0x31d
[init]
Caused by: org.jfrog.storage.dbtype.DbTypeNotAllowedException: DB Type mysql is not allowed: Cannot start the application with a database other than PostgreSQL. For more information, see JFrog documentation.
(上面的master.key,随机数生成了一个,百度一下这个报错就行)
服了
6.x的版本,应该可以连接mysql。
以后看看,不搞一把,要不mysql白安装了。
三、安装PostgreSQL
9.1centos安装postgres-CSDN博客
创建artifactory账户和数据库
[root@localhost ~]# su - postgres
-bash-4.2$ psql
psql (14.13)
输入 "help" 来获取帮助信息.
postgres=#
postgres=# CREATE USER artifactory WITH PASSWORD 'artifactory';
CREATE ROLE
postgres=# CREATE DATABASE artidb WITH OWNER=artifactory ENCODING='UTF8';
CREATE DATABASE
postgres=# GRANT ALL PRIVILEGES ON DATABASE artidb TO artifactory;
GRANT
postgres=#
输入exit,回车,在输入exit,就退出了
下载数据库驱动
可以去官网下载,但好像artifactory自带了。一会运行试一下
配置artifactory的数据库
type: postgresql
driver: org.postgresql.Driver
url: "jdbc:postgresql://localhost:5432/artidb"
username: artifactory
password: artifactory
明文密码,有安全风险。以后看看怎么搞
启动artifactory
2024-09-03T13:06:52.690Z ^[[[35[jfob ]^[[0m ^[[34m[INFO ]^[[0m [7cd33b0bf83d7d16] [security_keys.go:185 ] [main ] - Cluster join: Join key is missing. Pending for 115 seconds with 2m0s timeout [startup]
2024-09-03T13:06:57.533Z ^[[[35[jfob ]^[[0m [FATAL] [7cd33b0bf83d7d16] [bootstrap.go:104 ] [main ] - Cluster join: Failed resolving join key: failed resolving 'shared.security.joinKey' key; file does not exist: /usr/local/jfrog/var/etc/security/join.key [startup]
~
master.key报错完,又报join.key
87c26c05611cc9ccba503b69a3c54862fccf1634deecaff8e3262cbe89b2e47b
直接复制了一个
artifactory-ha cannot find join key during migration from 6.x to 7.x · Issue #865 · jfrog/charts (github.com)
启动又报
line 65: found character that cannot start any token
不能用tab,要用空格。
重启后,浏览器还是连不上,看有一个报错
[FATAL] Failed bootstrapping application: context deadline exceeded. last error: Get "http://localhost:8046/router/api/v1/system/health": dial tcp [::1]:8046: connect: connection refused
把防火墙关了试试
还是不行,没搞定
发现一个master.key和join.key失败的原因,以后验证一下
注意:数据库一定要用干净的新建的数据库,否则启动服务会报错!会报missing master key,因为不会生成master key 和 join key!