이 문서는 Archive 파일을 이용하여 Linux에 Artifactory를 설치하는 방법을 공유하기 위해 작성되었습니다.


설치환경

  • OS : Rocky-8.9
  • Artifactory : artifactory-oss-7.84.17
  • PostgreSQL : 13


Artifactory 설치 미디어 다운로드

아래 링크에 접속하여 최신버전의 Artifactory를 다운로드 받습니다.


Artifactory 설치 파일 압축 해제 및 디렉토리 설정

JFrog Home 디렉터리 생성 후 해당 위치에 Artifactory 압축 해제 및 디렉토리명을 변경합니다.

$ mkdir -p /opt/jfrog
$ tar -xvf jfrog-artifactory-oss-7.84.17-linux.tar.gz /opt/jfrog
$ cd /opt/jfrog
$ mv artifactory-oss-7.84.17 artifactory


JFrog Home 환경 변수 설정 

JFrog Home 환경 변수를 설정합니다.

$ export JFROG_HOME=/opt/jfrog


방화벽 설정

Artifactory는 기본적으로 다음과 같은 외부 네트워크 포트를 사용합니다. 

  • 8081
  • 8082
방화벽 허용
$ sudo firewall-cmd --zone=public --add-port=8081/tcp --permanent
$ sudo firewall-cmd --zone=public --add-port=8082/tcp --permanent
 
적용
$ sudo firewall-cmd --reload
 
확인
$ sudo firewall-cmd --list-ports


데이터 베이스 연동 (선택 사항)

 Artifactory에는 기본으로 내장된 Derby 데이터베이스가 제공됩니다.

그러나 운영 환경에서는 외부 PostgreSQL 데이터베이스를 사용할 것을 권장합니다.


system.yaml 파일을 사용하여 시스템 설정을 구성할 수 있습니다.

/artifactory/var/etc 폴더에 있는 템플릿을 복사하여 사용합니다. (system.basic-template.yaml, system.full-template.yaml)

$ cd artifactory/var/etc/
$ cp system.basic-template.yaml system.yaml


복사한 system.yaml 파일에 database 정보를 입력합니다. 

  • allowNonPostgresql : JFrog Artifactory는 기본적으로 PostgreSQL 데이터베이스와 함께 사용하도록 설정되어 있습니다.
    하지만 다른 데이터베이스 (예: MySQL, Oracle 등)을 사용하고자 할 경우, 이 설정을 'true'로 변경해야 합니다. (default:false)

$ vi system.yaml

  ## Database Configuration
  database:
    ## To run Artifactory with any database other than PostgreSQL allowNonPostgresql set to true.
    #allowNonPostgresql: false

    ## One of mysql, oracle, mssql, postgresql, mariadb
    ## Default Embedded derby

    ## Example for postgresql
    type: postgresql
    driver: org.postgresql.Driver
    url: "jdbc:postgresql://<your db url, for example: localhost:5432>/artifactory"
    username: artifactory
    password: password


Artifactory를 프로세스로 실행 

Artifactory를 포그라운드 또는 데몬 프로세스로 실행할 수 있습니다. 

포그라운드 프로세스로 실행
$ JFROG_HOME/artifactory/app/bin/artifactoryctl

데몬 프로세스로 실행
$ JFROG_HOME/artifactory/app/bin/artifactoryctl start

프로세스 확인 및 중지
$ JFROG_HOME/artifactory/app/bin/artifactoryctl check
$ JFROG_HOME/artifactory/app/bin/artifactoryctl stop


Artifactory를 서비스로 실행

Artifactory는 번들된 Tomcat과 설치 스크립트가 포함된 아카이브 파일 형태로 패키징되어 있으며, 이 스크립트를 사용하여 사용자 정의 계정으로 서비스를 설치할 수 있습니다. 이 방식은 현재 Linux와 Solaris 시스템에서 지원됩니다.

Artifactory를 서비스로 실행할 때, 설치 스크립트는 artifactory라는 사용자를 생성하며, 이 사용자는 설치 디렉토리에 대한 실행 권한을 가져야 합니다. Artifactory 다운로드 파일을 모든 사용자에게 실행 권한이 있는 /opt와 같은 디렉토리에 압축 해제하는 것을 권장합니다.


서비스 생성 스크립트 실행

$ JFROG_HOME/artifactory/app/bin/installService.sh

# 사용자를 지정할 경우
$ JFROG_HOME/artifactory/app/bin/installService.sh [USER] [GROUP]
  • USER : 애플리케이션을 실행하려는 사용자
  • GROUP : 응용 프로그램이 실행될 그룹


서비스 관리

systemd 사용할 경우
$ systemctl start artifactory.service
$ systemctl status artifactory.service
$ systemctl stop artifactory.service

init.d 사용할 경우
$ service artifactory start
$ service artifactory check
$ service artifactory stop


Artifactory 설정

Artifactory를 설정하기 위해 http://localhost:8082/ui/ 으로 접속합니다.

초기 계정 정보는 다음과 같습니다.

  • ID : admin
  • PW : password
  • 레이블 없음