OS설치와 네트워크까지 설정이 마무리 되었다면, CentOS의 rpm 설치를 위해 환경을 준비합니다.
인터넷 연결이 되어야 다운 받을 수 있습니다.
네트워크 아답터를 NAT타입으로 추가해 줍니다.(인터넷 사용가능)
추가된 네트워크 아답터는 Local Repository 구성하는 동안만 추가하고 완료 후 삭제 할 예정입니다.
- rpm 다운로드
CentOS RPM Repository 설정은 /etc/yum.repo.d/ 의 repo파일에 등록이 되어 있습니다.
위 사진과 같이 온라인으로 설치 및 업데이트를 받을 수 있도록 Repository가 구성되어 있습니다.
오프라인 환경에서 Repository에 접속하기 위해 rpm들을 다운로드 받아 Local Repository를 구성해야 됩니다.
- CentOS Repository 미러사이트 목록
www.centos.org/download/mirrors/
위 사이트를 통해 CentOS Mirror 사이트를 검색하여 다운로드 받을 수 있습니다.
그 중 한국 서버는 kaist, kakao, naver, open source consulting 4군데에서 받을 수 있으며, rsync를 지원하는 곳은 kaist와 open source consulting 2군데 뿐입니다.
- 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
위와 같이 local.repo에 등록된 항목에 대해 응답이 정상이면 설정은 마무리 됩니다.
이제 yum install을 사용하여 필요한 rpm들을 설치합니다.
'DEV > CICD' 카테고리의 다른 글
무중단 배포(Blue-Green Deployment) (0) | 2020.12.20 |
---|---|
Nexus Repository 설정 (1) | 2020.12.14 |
오프라인에서 CICD 구성하기-4(Git 설치) (0) | 2020.08.20 |
오프라인에서 CICD 구성하기-2(네트워크 구성) (0) | 2020.08.07 |
오프라인에서 CICD 구성하기-1(구성) (0) | 2020.08.07 |