Jfrog官方文档:Installing Artifactory - JFrog - JFrog Documentation
Jfrog Artifactory作为一个制品库可以存放任何形式的文件。这里我搭建artifactory主要用于二进制文件的管理。稍稍科普一下,为什么二进制文件不建议放在git仓库,看一下git的原理就知道,git不能很好的拆解二进制形成提交差,所以每一次的二进制提交在git仓库都是一个object。二进制文件如果存放在git仓库,一旦形成版本的更迭,会让git仓库越来约大,这对git来说将是灾难。
一、Artifactory的安装
环境准备:Linux Centos7.9
我目前用的是开源版本,版本号7.27.10
1.1 下载安装包
Download Artifactory OSS | JFrog
安装包下载后,最好本地保存一份,因为这个界面只能下载到最新的开源版本,找不到历史开源版本。
1.2 解压安装包
cd /usr/local
tar zxf jfrog-artifactory-oss-7.27.10-linux.tar.gz
mv artifactory-oss-7.27.10/ artifactory/
1.3 启动artifactory
cd /usr/local/artifactory/app/bin
./artifactory.sh start
1.4 访问artifactory界面
浏览器访问:http://ip:8082
默认初始管理员用户名:admin, 密码:password
二、Artifactory的备份恢复
其实我今天主要想写的是artifactory的备份恢复。这个我可是捣鼓了好一段时间。
参考的是这个文章的method1:https://jfrog.com/knowledge-base/artifactory-what-is-the-best-way-to-migrate-a-large-artifactory-instance-with-minimal-downtime/
2.1 安装备份环境
准备一台新的机器,解压同样版本的artifactory(先不要启动),将生产环境的master.key拷贝到备份环境(路径:/usr/local/artifactory/var/etc/security/ )
原因如下:
启动artifactory。
2.2 生产环境Artifactory系统导出
执行全量系统导出(Import & Export->System->Export System),注意要将“Exclude Content”勾上,导出至/artifactory_backup共享路径,如果不是共享路径,则导出完成后,需要拷贝到备份环境上。
这步执行后,会在/artifactory_backup生成一个时间戳命名的文件夹:20230118.133251
2.3 备份环境上同步生产环境的filestore下的文件
cd /usr/local/artifactory/var/data/artifactory/
rsync -avz --partial --exclude '.snapshot' --ignore-errors --delete root@生产环境ip:/usr/local/artifactory/var/data/artifactory/filestore/ ./filestore
2.4 备份环境执行系统导入
在备份环境界面执行系统导入(Import & Export->System->Import System),注意不要勾选“Exclude Content”。
这样就完成了一次生产环境到备份环境的同步。
备注:
如果master.key不一致,则执行系统导入时可以在console.log看到如下报错:
Failed to reload configuration: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption