본문 바로가기

DEV/CICD

오프라인에서 CICD 구성하기-3(Local Repository)

반응형

OS설치와 네트워크까지 설정이 마무리 되었다면, CentOS의 rpm 설치를 위해 환경을 준비합니다.

 

인터넷 연결이 되어야 다운 받을 수 있습니다. 

네트워크 아답터를 NAT타입으로 추가해 줍니다.(인터넷 사용가능)
추가된 네트워크 아답터는 Local Repository 구성하는 동안만 추가하고 완료 후 삭제 할 예정입니다.

NAT 네트워크 추가

 

- rpm 다운로드
  CentOS RPM Repository 설정은 /etc/yum.repo.d/ 의 repo파일에 등록이 되어 있습니다.

CentOS-Base.repo 초기 설정

위 사진과 같이 온라인으로 설치 및 업데이트를 받을 수 있도록 Repository가 구성되어 있습니다.

오프라인 환경에서 Repository에 접속하기 위해 rpm들을 다운로드 받아 Local Repository를 구성해야 됩니다.

 

- CentOS Repository 미러사이트 목록
www.centos.org/download/mirrors/

 

Mirror List

CentOS welcomes new mirror sites. If you are considering setting up a public mirror site for CentOS, please follow the mirror guidelines to make sure that your mirror is consistent with the other mirror sites. If you’re searching for mirrors providing Al

www.centos.org

위 사이트를 통해 CentOS Mirror 사이트를 검색하여 다운로드 받을 수 있습니다.

그 중 한국 서버는 kaist, kakao, naver, open source consulting 4군데에서 받을 수 있으며, rsync를 지원하는 곳은 kaist와 open source consulting 2군데 뿐입니다.

 

CentOS Repo Mirror Site

- wget 명령어를 통한 다운로드
  wget -m -nH -np -R "index.*, *.iso" -P "/다운받을경로" "http://mirror.kakao.com/centos/"

- rsync 명령어를 통한 다운로드

  rsync -avSHP --delete --exclude "local*" --exclude "isos" rsync://mirror.opensourcelab.co.kr/CentOS/ /다운받을 경로

wget과 rsync 중에 rsync를 추천 드립니다.

rsync로 받을 수 있는 카이스트와 오픈소스컨설팅 중 카이스트는 세션이 50개로 제한되어 있어 연결이 되지 않아

오픈소스컨설팅을 통해 소스를 다운 받습니다.

제 기준으로 다운로드 시간은 약 20시간 정도 걸렸습니다.

2020년 8월 7일 기준 다운로드 용량은 약 200기가입니다.

(CentOS 7버전만 운영하실거라면 6, 8 버전은 제외하고 받으셔도 됩니다.)

 

 

- httpd 설치
  웹서버를 통해 Repository 서버를 배포합니다. 웹서버로는 httpd를 사용합니다.

  다운받은 RPM을 통해 httpd를 설치합니다.

  yum install -y /data/repo/centos/7/os/x86_64/Packages/httpd-2.4.6-93.el7.centos.x86_64.rpm
  사용자 다운로드 경로 : /data/repo/ -> 다운받은 경로로 수정하시고 뒤의 httpd rpm 명의 상세 버전은 바뀔수 있으니

 확인 후 수정하여 설치합니다.

- httpd 설정

  설정파일 : /etc/httpd/conf/httpd.conf


  #웹서버 포트 설정

  Listen 80 -> Listen 8080 

  #DocumentRoot 설정

  DocumentRoot "/data/repo/"

  #접근권한 설정(2.4버전 이상은 Require all granted, 2.2버전 이상은 Allow from all)
  <Directory "/data/repo/">

      AllowOverride Noe

      # Require all granted

      Allow from all

  </Directory>

 

  <Directory "/data/repo/centos/">

       ....

       Options Indexes FollwSymlinks

       AllowOverride None

       Allow from all

   </Directory>

 

위와 같이 수정후 저장한다.

파란색으로 표시된 부분은 수정하여 웹배포 경로와 접근권한을 수정합니다.

붉은색으로 표시된 부분은 기본값으로 수정하게 되면 소프트링크가 연결되지 않으므로 꼭 해당값으로 설정합니다.


- 방화벽 허용
 firewall-cmd --permanent --zone=public --add-port=8080/tcp 

- httpd 배포 관련 오류
  403 forbiden 오류 발생 시 

  1) 배포경로의 권한을 변경 
  chmod -R 755 /data/repo/

  2) 보안 콘텍스트 적용
     ls -Z /data/repo
     chcon -R -t httpd_sys_content_t /data/repo/
     
  3) 2번까지 적용 후 안 될 경우
     selinux를 구동 중지하여 사용합니다. 다만 보안이 취약해지므로 최후의 수단으로 생각합시다.

     
     vi /etc/selinux/config

 

    SENINUX=disabled

 

설정이 완료되었으면 

curl http://localhost:8080/centos/timestamp.txt

로 접근이 가능한지 확인합니다.
 

Docker 서버에서도 접근이 가능한지 확인합니다.

curl http://레포지토리서버IP/centos/timestamp.txt

 

* 이제 온라인 연결은 필요하지 않으니 추가된 네트워크 아답터를 삭제합니다.


설치된 웹서버를 통해 Rpm을 연결 할수 있도록 repo 파일을 수정합니다.

 

cd /etc/yum.repo.d/

sudo mkdir /back (작업전 백업)

sudo mv ./* /back

sudo vi local.repo

 

아래 내용을 붙여 넣습니다.(등록된 IP는 개별 설정에 맞춰 수정)

 

[rpm]

name=localRepository

baseurl=http://192.168.234.132:8080/centos/$releasever/os/$basearch/

enabled=1

gpgcheck=0

 

[updates]

name=CentOS-$releasever-Updates

baseurl=http://192.168.234.132:8080/centos/$releasever/updates/$basearch/

gpgcheck=0

 

[extras]

name=CentOS-$releasever-Extras

baseurl=http://192.168.234.132:8080/centos/$releasever/extras/$basearch/

gpgcheck=0

 

[centosplus]

name=CentOS-$releasever-Plus

baseurl=http://192.168.234.132:8080/centos/$releasever/centosplus/$basearch/

gpgcheck=0

 

 

- repo 설정 초기화

yum clean all

yum clean metadata

sudo rm -rf /var/cache/yum/*

 

repo와 관련된 캐쉬를 초기화 후 로컬 레퍼지토리에 연결이 잘 되는지 확인합니다.

yum check-update

 

로컬 레퍼지토리 설정 후 yum update로 확인 결과

위와 같이 local.repo에 등록된 항목에 대해 응답이 정상이면 설정은 마무리 됩니다.

 

이제 yum install을 사용하여 필요한 rpm들을 설치합니다. 

반응형
댓글