View Categories

Docker 方式安装 Artifactory 集群

提示:请使用 Docker 20.10.10 及以上版本

第一个节点安装:

1. 下载镜像

以 7.71.11 版本为例:

docker pull releases-docker.jfrog.io/jfrog/artifactory-pro:7.71.11

2. 创建安装目录

(安装路径以 /root/jfrog/ 为例)

$ mkdir /root/jfrog
$ mkdir -p  /root/jfrog/artifactory/var/etc/
$ touch  /root/jfrog/artifactory/var/etc/system.yaml
$ chown -R 1030:1030 /root/jfrog/artifactory/var

3. 配置数据库

(可选。以 MySQL 为例, 其他配置参考 《Artifactory 安装 – 数据库配置》)
如当前没有数据库,通过如下语句创建:

CREATE DATABASE artdb CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER 'artifactory'@'%' IDENTIFIED BY 'password';
GRANT ALL on artdb.* TO 'artifactory'@'%';
FLUSH PRIVILEGES;ls

下载 MySQL jdbc jar 包,并拷贝至 /root/jfrog/artifactory/var/bootstrap/artifactory/tomcat/lib/:
(下载地址:https://dev.mysql.com/downloads/connector/j/), 如:

$ wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-8.0.13.tar.gz
$ tar zxf mysql-connector-java-8.0.13.tar.gz
$ mkdir -p /root/jfrog/artifactory/var/bootstrap/artifactory/tomcat/lib/
$ cp mysql-connector-java-8.0.13/mysql-connector-java-8.0.13.jar /root/jfrog/artifactory/var/bootstrap/artifactory/tomcat/lib/
$ chown -R 1030:1030 /root/jfrog/artifactory/var

修改数据库配置:
编辑配置文件 /root/jfrog/artifactory/var/etc/system.yaml, 添加 database 部分,完整示例如下:

configVersion: 1
shared:
    node:
        id: "art1"
        ip: "192.168.56.13"
        haEnabled: true
        taskAffinity: any
    database:
        type: mysql
        driver: com.mysql.jdbc.Driver
        url: "jdbc:mysql://192.168.56.13:3306/artdb?characterEncoding=UTF-8&elideSetAutoCommits=true&useSSL=false"
        username: artifactory
        password: password

说明:
shared.node.id:  自定义,如 art1, art2…
shared.node.ip:  本机 IP, 如 192.168.56.13
shared.node.haEnabled:  用于集群配置,值为 true
shared.node.taskAffinity:  用于集群配置,默认所有节点均执行Artifactory应用内部任务

4. 配置存储

(可选。以 本地存储 为例, 如不配置,默认存储在持久化目录 /root/jfrog/artifactory/var/data/artifactory/filestore/,其他存储方式请参考《Artifactory 安装 – 存储配置》)
创建目录及文件:

$ mkdir -p /root/jfrog/artifactory/var/etc/artifactory/
$ touch /root/jfrog/artifactory/var/etc/artifactory/binarystore.xml
$ chown -R 1030:1030 /root/jfrog/artifactory/var

编辑配置文件 /root/jfrog/artifactory/var/etc/artifactory/binarystore.xml, 添加以下部分:

<?xml version="1.0" encoding="UTF-8"?>
<config version="2">
    <chain> <!--template="cluster-file-system"-->
        <provider id="cache-fs" type="cache-fs">
            <provider id="sharding-cluster" type="sharding-cluster">
                <sub-provider id="state-aware" type="state-aware"/>
                <dynamic-provider id="remote-fs" type="remote"/>
            </provider>
        </provider>
    </chain>

    <provider id="state-aware" type="state-aware">
        <zone>local</zone>
        <fileStoreDir>/var/opt/jfrog/artifactory/data/artifactory/filestore</fileStoreDir>
    </provider>

    <!-- Shard dynamic remote provider configuration -->
    <provider id="remote-fs" type="remote">
        <zone>remote</zone>
    </provider>

    <provider id="sharding-cluster" type="sharding-cluster">
        <readBehavior>crossNetworkStrategy</readBehavior>
        <writeBehavior>crossNetworkStrategy</writeBehavior>
        <redundancy>2</redundancy>
        <lenientLimit>1</lenientLimit>
        <property name="zones" value="local,remote"/>
    </provider>

</config>

说明:
fileStoreDir: 二进制文件存储目录, 可自定义。注意,自定义路径需使用 -v 参数挂载,并授权,chown -R 1030:1030 /your_path/
redundancy: 副本数,默认为 2。如集群 3 个节点,配置为 2,一份二进制文件将随机存储在其中 2 节点。

5. 安装并启动

(以 Artifactory 7.71.11 为例)

docker run --name artifactory -v /root/jfrog/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8081:8081 -p 8082:8082 releases-docker.jfrog.io/jfrog/artifactory-pro:7.71.11

6. 检查日志

docker logs -f artifactory

日志有如下输出,启动成功:

###############################################################
###   All services started successfully in 50.958 seconds   ###
###############################################################

7. 访问页面

http://192.168.56.13:8082
默认用户名密码: admin/password

提示:
进入页面后需填写 License,您可联系 JFrog 商务以获取。HA 环境每个节点需要单独的一个 License,如您部署 3 节点,登录页面后,您可添加 3 个 License,并继续部署其余节点。
 

其他节点安装:

8. 创建安装目录

参考步骤 1

9. 配置数据库

(参考步骤 2,与第一个节点连接同一个数据库)
注意 id,ip 各个节点应不同。id 如改为 art2, art3…, ip 改为本机 IP,如 192.168.56.14。
编辑配置文件 /root/jfrog/artifactory/var/etc/system.yaml, 添加 database 部分,完整示例如下:

configVersion: 1
shared:
    node:
        id: "art2"
        ip: "192.168.56.14"
        haEnabled: true
        taskAffinity: any
    database:
        type: mysql
        driver: com.mysql.jdbc.Driver
        url: "jdbc:mysql://192.168.56.13:3306/artdb?characterEncoding=UTF-8&elideSetAutoCommits=true&useSSL=false"
        username: artifactory
        password: password

10. 配置存储

无需配置,将自动同步 1 节点的配置。
注意,如单独配置了自定义路径,需在当前节点创建对应目录,并赋予 1030 权限,如:

$ mkdir -p /your_path/
$ chown -R 1030:1030 /your_path/

 

11. 拷贝 master.key【重要】

拷贝第一个节点的 $ARTIFACTORY_HOME/var/etc/security/master.key 到本节点的对应目录,如无目录需创建:

$ mkdir -p /root/jfrog/artifactory/var/etc/security/
$ scp root@<1节点 ip>:/root/jfrog/artifactory/var/etc/security/master.key /root/jfrog/artifactory/var/etc/security/
$ chown -R 1030:1030 /root/jfrog/artifactory/var/etc/security/

 

12. 安装并启动

参考步骤 4,5,6
节点安装完成。可按相同步骤继续安装其他节点。