Artifactory 군집 을 세우다.

11204 단어
Artifactory 군집 을 세우다.
아 리 운 에 Artifactory 군집 을 만들다.
Artifactory 라이선스
공식 정품 license, 3 개의 License 25900 달러 (16 만 7000 위안) 는 1 년 동안 비 싸 고 터무니없다.본 고 는 실험 학습 을 위주 로 최신 해독 판 4.7.4 를 사용 하여 해독 도 쉽게 군말 하지 않 는 다.상업 용 도 는 정품 을 사용 하 세 요.
필요 한 하드웨어
Artifactory 클 러 스 터 는 다음 과 같은 하드웨어 장치 가 필요 합 니 다.
  • 점성 세 션 의 균형 부하 (HAProxy / Nginx 등) 를 지원 한다.
  • NFS 공유 폴 더.
  • 데이터베이스 (MySQL 등).

  • 네트워크
    클 러 스 터 의 모든 노드 는 같은 랜 에 있 고 노드 간 에 고정 포트 로 데 이 터 를 전송 하 는 것 이 좋 습 니 다.
    서버
    본 고 는 아 리 클 라 우 드 ECS 서버 를 사용 하여 아 리 클 라 우 드 ECS 서버 세 대 를 각각 아 티 팩 터 리 - master, 아 티 팩 터 리 - slave, 아 티 팩 터 리 - nfs 라 는 이름 으로 신청 합 니 다.
    Artifactory 노드 설정
    artifactory 는 artifactory - master 와 artifactory - slave 에 배치 되 며 필요 한 소프트웨어 를 설치 해 야 합 니 다.
  • ssh key 생 성 및 authorized 설정keys 편리 서비스 관리.
  • JDK 8 설치.
    1 apt-get install software-properties-common
    2 add-apt-repository ppa:webupd8team/java 3 apt-get update 4 apt-get install oracle-java8-installer

  • 편집. bashrc 파일 vi ~/.bashrc 은 파일 끝 에 다음 과 같은 내용 을 추가 합 니 다.
    1 if [ -f ~/.bash_env ]; then
    2    . ~/.bash_env
    3 fi

  • 파일 생 성 .bash_env 및 JAVA 추가HOME 환경 변수:
    1 export JAVA_HOME=/usr/lib/jvm/java-8-oracle
    2 export JRE_HOME=$JAVA_HOME/jre 3 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib 4 export PATH=$JAVA_HOME/bin:$PATH

  • artifactory - pro - 4.7.4. zip 을 artifactory - master 와 artifactory - slave 서버 touch ~/.bash_env 디 렉 터 리 에 업로드 하고 압축 을 풀 며 서로 다른 /opt 허가증 을 생 성하 여 각각 / opt / artifactory - pro - 4.7.4 / etc 디 렉 터 리 에 놓 습 니 다.
    1 scp artifactory-pro-4.7.4.zip root@<ip>:/opt

  • 각각 artifactory 두 노드 에 artifactory 환경 변 수 를 설정 하고 파일 을 편집 합 니 다 artifactory.lic.
    1 export ARTIFACTORY_HOME=/opt/artifactory-pro-4.7.4
    2 export JAVA_HOME=/usr/lib/jvm/java-8-oracle
    3 export JRE_HOME=$JAVA_HOME/jre 4 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib 5 export PATH=$JAVA_HOME/bin:$PATH

  • artifactory as service 를 설치 합 니 다.
    1 sh installService.sh
    2 
    3 passwd artifactory <new password>


  • NFS 설정
    NFS 설정 은 artifactory - nfs 에 NFS 서버 를 설치 해 야 하 며, artifactory - master 와 artifactory - salve 에 NFS 클 라 이언 트 를 설치 해 야 합 니 다.
  • artifactory - nfs 서버 에 nfs - kernel - server 를 설치 합 니 다.
    1 apt-get install nfs-kernel-server

  • / etc / exports 파일 에 한 줄 을 추가 합 니 다.
    1 /artifactory/cluster-home *(rw,sync,no_root_squash,no_subtree_check)

  • artifactory - master 와 artifactory - salve 에 각각 NFS 클 라 이언 트 를 설치 합 니 다.
    1 apt-get install nfs-common portmap

  • artifactory - master 와 artifactory - salve 에서 각각 NFS 마 운 트 대기 디 렉 터 리 / artifactory / cluster - home 을 만 듭 니 다.
    1 mkdir /artifactory/cluster-home
    2 mount <artifactory-nfs' IP>:/artifactory/cluster-home /artifactory/cluster-home

  • NFS 디 렉 터 리 에 권한 을 할당 합 니 다.
    1 chown -R artifactory:artifactory /artifactory/cluster-home


  • MySQL 설치
    artifactory - nfs 에 MySQL 을 설치 합 니 다.
  • MySQL 을 설치 합 니 다.
    1 apt-get install mysql-server mysql-client
    2 
    3 mysql>
    4 CREATE DATABASE artdb CHARACTER SET utf8 COLLATE utf8_bin; 5 CREATE USER artifactory IDENTIFIED BY 'password'; 6 GRANT ALL PRIVILEGES ON *.* TO 'artifactory'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 7 FLUSH PRIVILEGES;

  • MySQL 성능 최적화.
  • MySQL 원 격 접근 을 허용 합 니 다.클 라 우 드 호스트 의 / etc / mysql / my. cnf 파일 을 수정 하고 bid 를 주석 합 니 다.address = 127.0.1 이면 됩 니 다.

  • artifactory - master 설정
  • .bash_env 에서 디 렉 터 리 를 만 듭 니 다.
    1 mkdir ha-etc
    2 mkdir ha-data 3 mkdir ha-backup

  • /artifactory/cluster-home 에서 파일 을 만 듭 니 다 ./ha-etc. 내용 은:
    1 ##     token,      
    2 security.token=4n4tpxip7spQQu2pKf3811S2W7GY46Yb

  • cluster.properties 에서 파일 을 만 듭 니 다 ./ha-etc. 내용 은:
    1 type=mysql
    2 driver=com.mysql.jdbc.Driver 3 url=jdbc:mysql://<artifactory-nfs' IP>:3306/artdb?characterEncoding=UTF-8&elideSetAutoCommits=true 4 username=artifactory 5 password=password

  • 복사 storage.propertiesartifactory.system.properties 파일
    1 mv /opt/artifactory-pro-4.7.4/etc/artifactory.system.properties /artifactory/cluster-home/ha-etc
    2 mv /opt/artifactory-pro-4.7.4/etc/mimetypes.xml /artifactory/cluster-home/ha-etc

  • / opt / artifactory - pro - 4.7.4 / etc 디 렉 터 리 에서 파일 을 만 듭 니 다. 내용 은 다음 과 같 습 니 다.
    1 node.id=art1
    2 cluster.home=/artifactory/cluster-home 3 context.url=http://<artifactory-master's IP>:8081/artifactory 4 membership.port=10001 5 primary=true

  • mimetypes.xml 파일 에 $CLUSTER 추가HOME 환경 변수.
    1 export ARTIFACTORY_HOME=/opt/artifactory-pro-4.7.4
    2 export CLUSTER_HOME=/artifactory/cluster-home
    3 export JAVA_HOME=/usr/lib/jvm/java-8-oracle 4 export JRE_HOME=$JAVA_HOME/jre 5 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib 6 export PATH=$JAVA_HOME/bin:$PATH


  • artifactory - slave 설정
    메모: 모든 아 티 팩 터 리 클 러 스 터 노드 에 사용 되 는 아 티 팩 터 리. lic 는 다 르 며, 그렇지 않 은 사람 은 오 류 를 보고 할 수 있 습 니 다.
  • / opt / artifactory - pro - 4.7.4 / etc 디 렉 터 리 에서 파일 을 만 듭 니 다. 내용 은 다음 과 같 습 니 다.
    1 node.id=art1
    2 cluster.home=/artifactory/cluster-home 3 context.url=http://<artifactory-slave's IP>:8081/artifactory 4 membership.port=10001 5 primary=false

  • 재. bashenv 파일 추가 ha-node.properties 환경 변수.
    1 export ARTIFACTORY_HOME=/opt/artifactory-pro-4.7.4
    2 export CLUSTER_HOME/artifactory/cluster-home
    3 export JAVA_HOME=/usr/lib/jvm/java-8-oracle 4 export JRE_HOME=$JAVA_HOME/jre 5 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib 6 export PATH=$JAVA_HOME/bin:$PATH


  • Nginx 부하 균형 설치
    Nginx 도 사용 .bash_env 등 점성 세 션 을 지원 하지만 가장 좋 은 방안 은 세 번 째 미들웨어 인 Redis 를 통 해 session 을 저장 하고 Nginx + Tomcat + Redis 조합 을 사용 하 는 것 이다.여기 서 나 는 가장 간단 한 ha-node.properties 방법 을 사용한다.Nginx 의 default 파일 설정:
    ##nginx.conf
    user www-data;
    
    worker_processes 8;
    
    error_log /var/log/nginx/error.log crit;
    
    pid /run/nginx.pid;
    
    events
    {
      use epoll;
      worker_connections 8192;
    }
    
    http
    {
      include /etc/nginx/mime.types;
      default_type application/octet-stream;
    
      charset utf-8;
    
      server_names_hash_bucket_size 128;
      client_header_buffer_size 32k;
      large_client_header_buffers 4 32k;
    
      keepalive_timeout 30;
    
      sendfile on;
      tcp_nopush on;
      tcp_nodelay on;
    
      # gzip      
      gzip on;
      gzip_min_length 1k;
      gzip_buffers 4 16k;
      gzip_http_version 1.1;
      gzip_comp_level 2;
      gzip_types text/plain application/json application/xml application/x-javascript text/css text/xml text/javascript;
      gzip_vary on;
    
      #                  
      client_max_body_size 10m;
    
      #                  
      client_body_buffer_size 128k;
    
      #             _            
      proxy_connect_timeout 600;
    
      #     _           _                 
      proxy_read_timeout 600;
    
      #           _                       
      proxy_send_timeout 600;
    
      #       _                 Nginx      _             
      proxy_buffer_size 16k;
    
      #Nginx        Buffer        
      proxy_buffers 4 32k;
    
      #                proxy_buffers
      proxy_busy_buffers_size 64k;
    
      #proxy         
      proxy_temp_file_write_size 64k;
    
      include /etc/nginx/conf.d/*.conf;
      include /etc/nginx/sites-enabled/*;
    }
    ##default
    upstream artifactory {
        ip_hash;
        server <ip>:<port>;
        server <ip>:<port>;
    }
    
    server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;
    
        root /usr/share/nginx/html;
        index index.html index.htm;
    
        # Make site accessible from http://localhost/
        server_name localhost;
    
        location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
        }
    
       location /artifactory {
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header Host $http_host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Url-Scheme $scheme;
           proxy_redirect off;
           proxy_pass http://artifactory;
       }
      
       # Media: images, icons, video, audio, HTC
       location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc| woff)$ {
           expires 1M;
           access_log off;
           add_header Cache-Control "public";
           proxy_pass http://artifactory;
       }
        
       # CSS and Javascript
       location ~* \.(?:css|js)$ {
           expires 1M;
           access_log off;
           add_header Cache-Control "public";
           proxy_pass http://artifactory;
       }
    }

    시동 을 걸다
    1 su - artifactory
    2 service artifactory start

    창고 간 복사
    Artifactory 는 지역 별 프로젝트 간 아 티 팩 토리 인 스 턴 스 복 제 를 지원 합 니 다.가 져 온 좋 은 점 은 다음 과 같은 몇 가지 가 있다.
  • 지역 별 개발 팀 은 같은 아 티 팩 트 를 사용 할 수 있다.
  • 구 축 된 산출 아 티 팩 트 는 제때에 공유 할 수 있다.
  • 원 격 네트워크 연결 의 불안정 성 을 완화 한다.
  • 원 격 기타 artifactory 창 고 를 방문 합 니 다.

  • Push 방식
    로 컬 창고 에 사용 합 니 다. 특정한 아 티 팩 토리 인 스 턴 스 에 올 린 로 컬 창 고 는 다른 원 격 아 티 팩 토리 창고 에 동기 화 할 수 있 습 니 다.
    Pull 방식
    원 격 창고 에 사용 합 니 다. 원 격 artifactory 창 고 를 로 컬 artifactory 의 한 창고 에 동기 화 합 니 다.
    Artifactory 클 러 스 터 성능 최적화
  • Artifactory Performance Tuning
  • 좋은 웹페이지 즐겨찾기