artifactory 설치하기

etc tools 2016. 1. 30. 08:54



nexus는 버전 이슈가 많고 발전이 더딘 것 같다. (특히 자바와 최신 nexus 버전 이슈가 좀 있는 것 같다.) 문서도 예전 버전이고, 신선함이 사라져가는 느낌이다. 


artifactory의 큰 장점은 편리하고 개선되는 UI, HA, docker, webdav, rest api, 다양한 설치본(jar 뿐 아니라. npm, docker..)에 대한 proxy 기능, 완전 좋은 문서화이다. 생전 처음 artifactory 써봤는데, 아주 만족스럽다. (gradle 프로젝트하면서 지원하는 프로젝트가 jcenter쪽 repostiory가 jfrog였는데. 지원 벤더가 jfrog였는데, artifactory도 jfrog가 지원한다.)

더 좋은 기능을 돈을 줘야 하지만, 무료 기능만으로 괜찮은 것 같다.

artifactory 4.2.2 기준이다.

artifactory 설치시 꼭 문서를 참조하는 좋다.


1) 설치

java 설치

artifactory 4.4 설치  (최소 java8 이상)

(docker로 쓸 수 있지만, 굳이..)


2) 설정

https://www.jfrog.com/confluence/display/RTF/System+Requirements

JAVA_HOME JRE_HOME 설정하기


$ARTIFACTORY_HOME/bin/artifactory.default의 memory 설정을 변경

-server -Xms10g -Xmx10g -Xss512k -XX:+UseG1GC


3) 서버 실행

$ARTIFACTORY_HOME/bin/artifactory.sh 으로 실행하면 foreground로 실행된다.

$ARTIFACTORY_HOME/bin/artifactoryctl start 또는 $ARTIFACTORY_HOME/bin/artifactory.sh start로 실행한다.


4) 웹 서버 확인

http://localhost:8081/artifactory/

문제시 logs 밑에 로그를 확인한다.


5) 보안 강화

https://www.jfrog.com/confluence/display/RTF/Configuring+Security

admin/password 디폴트 패스워드에서 admin메뉴의 security에 들어가 패스워드 변경


6)  virtual 묶음

https://www.jfrog.com/confluence/display/RTF/Virtual+Repositories

내부 repository와 & 외부 repository 묶어서 maven, gradle, sbt 파일에서 repository는 새로 설치된 서버만 바라보게 설정.


7) nginx 설정

https://www.jfrog.com/confluence/display/RTF/nginx 

server {
    listen *:80 ;
    server_name artifactory.yourdomain.com;
    client_max_body_size 2048M;
    access_log /var/log/nginx/artifactory.yourdomain.com.access.log;
  
    location /artifactory {
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://localhost:8081;
        proxy_pass_header Server;
        proxy_read_timeout 90;
    }
}


제일 중요한 것은 client_max_body_size이다. 이거 안 쓰거나 너무 작은 크기이면, 413 에러 발생한다.

http://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/


8) 로컬에서 확인

pom.xml에 repository 추가/변경 후 rm -f ~/.m2/ 후, mvn clean compile 로 확인


9) deploy 계정 확인

mvn deploy시 jar 업로드 할 때, 권한 관리를 한다.

anonymous하게 jar deploy되게 하려면, 따로 설정해야 한다. 그렇지 않으면 401 에러가 발생한다.

만약 권한 없이 deploy되게 하려면, security->users 메뉴에서 anonymous에 deploy/cache 기능에 checkbox되도록 수정한다. (edit anonymous user)


만약 권한 설정하려면 아래와 같이 진행한다.

http://jeroenmols.com/blog/2015/08/13/artifactory2/


10) deploy 확인

mvn deploy이 잘되는지 확인한다.

 

용량 관리 및 GC설정

https://www.jfrog.com/confluence/display/RTF/Managing+Disk+Space+Usage


주기적인 백업

https://www.jfrog.com/confluence/display/RTF/Managing+Backups


빠른 읽기

https://www.jfrog.com/confluence/display/RTF/Remote+Repositories

Eagerly Fetch Sources, Eagerly Fetch Jars

관련 lib를 백그라운드로 받도록 설정한다.




play1은 iBiblio를 사용한다. (virtual repo를 사용할 수도 있다.)

type: iBiblio

root: "http://artifactory.google.com:8081/artifactory/google-repo".

https://www.playframework.com/documentation/1.2.x/dependency

https://www.jfrog.com/confluence/display/RTF/Working+with+Ivy#WorkingwithIvy-TheIBiblioResolver


'etc tools' 카테고리의 다른 글

[git] git log 범위  (0) 2016.08.24
[git] git hash 얻기  (0) 2016.08.24
[gradle] provided compile  (0) 2015.11.30
gradle 2.9 - 50% 줄어든 컴파일 속도  (0) 2015.11.26
[git] Github의 ssh key 이슈  (0) 2015.11.04
Posted by '김용환'
,