[RHEL9] Lacal & Remote repository 설정하기
문제 상황
RHEL의 라이선스를 취득하지 않으면 기본 dnf repository를 사용할 수 없으므로 패키지 설치가 불가능하다.
실제 업무에서도 외부 네트워크를 사용할 수 없는 경우가 있으므로 패지기 저장소를 내부에 만들 필요가 있다.
그 두 가지 방법을 알아보자.
1. Local reposiroty
RHEL OS의 ISO 이미지에는 필요한 패키지들이 포함되어 있다.
지금 환경에서 iso이미지는 DVD에 있으므로 /dev/sr0 경로를 마운트 해준다.
# DVD 마운트
mount /dev/sr0 /mnt
repository의 데이터인 AppStream과 BaseOS가 확인된다.
이제 RHEL에서 패키지 저장소 정보를 담는 설정 파일들의 경로인 /etc/yum.repos.d를 확인해 보면 redhat.repo 파일이 확인된다.
라이선스 취득이 없으므로 repository의 데이터가 없다.
local repository를 인식시키기 위해 /etc/yum.repos.d의 하위경로에 아래와 같이 loacl.repo 파일을 생성한다.
[rhel-BaseOS]
name=RHEL_9.5_BaseOS
baseurl=file:///mnt/BaseOS/
gpgcheck=0
Enabled=1
[rhel-AppStream]
name=RHEL_9.5_AppStream
baseurl=file:///mnt/AppStream/
gpgcheck=0
Enabled=1
- gpgcheck는 GPG 서명 검사 여부로, 로컬에서는 0으로 disable
- Enabled를 1로 하여 활성화
이후 메타 데이터 캐시를 재생성해 주면 repo가 인식된다.
sudo dnf clean all
sudo dnf repolist
이후 정상적으로 패키지 설치가 가능해진다.
2. remote repository
모든 서버마다 ISO 이미지를 마운트해서 사용하는 것은 번거로운 작업이 될 수 있다.
따라서 만들어둔 repository를 사설망 내부의 다른 서버들도 사용할 수 있도록 해보자.
# apache 서버를 통해 http로 패키지를 다운로드할 수 있도록 함.
yum install httpd
cd /var/www/html
mkdir repo
#패키지 데이터를 웹 접근이 가능한 경로로 복사해주기.
sudo cp -r /mnt/AppStream /var/www/html/repo/
이제 같은 네트워크의 다른 서버(10.10.20.150)에서 해당 서버의 주소를 repository를 등록해 주자.
vi /etc/yum.repos.d/remote.repo
[remote-repo]
name=RHEL_9.5_remote_repo
baseurl=http://10.10.20.151/repo/AppStream/
gpgcheck=0
Enabled=1
#적용
sudo dnf clean all
이후 아래와 같이 접속 불가 문제가 발생한다면 방화벽으로 인해 해당 포트가 차단되어 있을 수 있다.
sudo systemctl enable --now httpd
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
위의 커맨드로 방화벽을 해제하면 정상적으로 패키지 설치가 가능해진다.
참조
https://justdaily.tistory.com/4
https://velog.io/@ljk0509/Linux-%EC%82%AC%EC%84%A4-RHEL-Repository-%EB%A7%8C%EB%93%A4%EA%B8%B0