[Linux] yum repository 서버 구축

2019. 9. 25. 10:32DEV SYSTEM/OS

[ repository 환경 및 구축 ]

 

* os : CentOS 7.x

* repository 경로 : /home/repo

* 저장소 연결 방식 : http

* 설정 :

    - repository 서버를 통해서만 패키지를 다운받을 경우를 가정하고 진행

    - repository 서버는 구축할 때 외부 통신 가능함을 가정 (구축이 완료되면 외부 통신 끊어도 무관)

 

 

 

1. 저장소 생성을 위한 패키지 다운로드

# yum install createrepo

 

 

2. 저장소 생성

  : /home/repo 라는 레포지토리 경로 생성(원하는 위치에 생성해도 무관)

  : createrepo 명령어를 통해 레포지토리 생성

# mkdir /home/repo
# createrepo /home/repo

 

 

3. /etc/yum.repo.d/ 에 로컬저장소 위치가 지정된 repo 추가

  : repository가 만들어지는 서버에서 먼저 작동이 정상적으로 되는지 테스트

 

 (1) 기존 레포지토리 정보 삭제/백업

# mkdir /etc/yum.repo.d/backup
# mv /etc/yum.repo.d/*.repo /etc/yum.repo.d/backup/

 

 (2) 새로 만든 레포지토리 추가

    - 파일명 *.repo 형식으로 /etc/yum.repo.d 에 생성

# vim /etc/yum.repo.d/repo-server.repo
[repo-server]
name=Repository server        
baseurl=file:///home/repo  
enabled=1
gpgcheck=0

 name=원하는 레포지토리 이름

 baseurl=file://레포지토리 경로

 

 

4. /home/repo에 패키지 다운받기

  : 설정한 레포지토리 경로에 패키지 다운받기. 예시는 net-snmp를 사용

# yum install net-snmp --downloadonly --downloaddir=/home/repo

yum install 패키지명 --downloadonly --downloaddir=레포지토리경로

 

 

5. repository 업데이트하여 신규 생성된 레포지토리 적용

# createrepo --update /home/repo

createrepo --update 레포지토리경로

 

 

6. 레포지토리 캐시 삭제 적용

# yum clean all

 

 

7. 로컬 테스트

  : repo가 repo-server 로 확인되면 성공!

# yum install net-snmp

 

 

8. http 설정

  : 다른 서버에서 http를 통하여 레포지토리를 사용할 수 있도록 설정

 

 (1) httpd 설치

# yum install httpd

 

 (2) http root 경로 변경

# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/home/repo"

기존 "/var/www/html" 로 설정되어 있는것을 변경

 

 

# systemctl restart httpd

 ** http 실행이 안되는 경우 : selinux를 꺼줄 것

 

 

 

 

[ 구축한 repository 사용 ]

 : 위에서 만든 repository 서버를 사용하기 위해서, 다른 서버들(client)에서 설정할 것들!

 

 

1. 기존 레포지토리 정보 삭제/백업

# mkdir /etc/yum.repo.d/backup
# mv /etc/yum.repo.d/*.repo /etc/yum.repo.d/backup/

 

 

2. 새로 만든 레포지토리 서버 추가

# vim /etc/yum.repo.d/repo-server.repo 
[repo-server]
name=Repository server   
baseurl=http://192.168.0.10   
enabled=1
gpgcheck=0

 name=원하는 이름으로 지정

 baseurl=http://레포지토리서버IP