로컬 Red Hat 리포지토리를 만드는 방법
이 페이지에서
- 저장소에 필요한 패키지 설치\n
- 저장소용 디렉토리 생성
- 유용한 명령\n
- 저장소 동기화\n
- Createrepo 명령
- 클라이언트 서버 설정
- 리포지토리 업데이트를 위한 스크립트 및 Cron 작업 만들기\n
- 최종 생각
- 출처
로컬 Red Hat Enterprise Linux 리포지토리를 원하는 데는 여러 가지 이유가 있습니다. 인터넷에서 업데이트를 다운로드하는 데 시간과 대역폭이 많이 소요될 수 있으므로 대역폭은 중요한 요소입니다. 또 다른 이유는 서버가 인터넷에 연결되어 있지 않아 로컬 소스에서 업데이트를 받아야 하기 때문일 수 있습니다. 라이선스에 돈을 쓰지 않고 업데이트해야 하는 개발 환경이 있을 수 있습니다. 이유가 무엇이든 이 튜토리얼은 로컬 리포지토리를 설정하는 과정을 안내합니다.
참고: 리포지토리 역할을 하는 서버는 리포지토리 역할만 해야 합니다.
리포지토리에 필요한 패키지 설치
yum install yum-utils createrepo httpd
리포지토리용 디렉터리 만들기
mkdir /var/www/html/rhel6
mkdir /var/www/html/rhel6/server
mkdir /var/www/html/rhel6/dts
mkdir /var/www/html/rhel6/dts2
mkdir /var/www/html/rhel6/rhsc
유용한 명령
활성화 및 비활성화된 서버의 리포지토리를 모두 나열합니다.
yum repolist all
구독에서 사용 가능한 리포지토리 나열
subscription-manager repos --list
시스템에서 저장소 활성화
subscription-manager repos --enable=rhel-6-server-optional-rpms
시스템에서 저장소 비활성화
subscription-manager repos --disble=rhel-6-server-optional-rpms
서버, dts 및 rhsc(소프트웨어 컬렉션) 리포지토리를 리포지토리에서 활성화하려고 합니다.
리포지토리 동기화
이러한 모든 리포지토리가 활성화되면 해당 리포지토리의 download_path와 일치하도록 각각의 download_path를 변경하는 모든 리포지토리에 대해 다음 명령을 수행합니다.
reposync --gpgcheck -l --repoid=repoid --download_path=/var/www/html/rhel6/repo_name --downloadcomps --download-metadata
Createrepo 명령
패키지가 다운로드되면 각 리포지토리에 대해 아래의 createrepo 명령만 있으면 됩니다.
createrepo -v /var/www/html/rhel6/repo_name/ -g comps.xml
클라이언트 서버 설정
이제 로컬 리포지토리가 있지만 업데이트를 위해 이러한 리포지토리를 사용할 Red Hat 서버에서 몇 가지 사항을 변경해야 합니다.
먼저 /etc/yum.repos.d의 repo 파일 내에서 다른 모든 저장소의 사용 가능 플래그가 0(영)으로 설정되어 있는지 확인하세요. 나중에 필요할 수 있으므로 지금은 저장소를 삭제하지 않을 것입니다. 활성화된 플래그를 변경하는 것만으로도 충분합니다.
이제 저장소를 사용하는 모든 서버의 /etc/yum.repos.d 디렉토리에 추가될 .repo 파일을 만들어야 합니다. 해당 파일은 다음 파일과 유사해야 합니다.
vi /etc/yum.repos.d/name_of_repo_file.repo
[server] name = rhel-6-server-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/server gpgcheck = 0 enabled = 1 [dts] name = rhel-server-dts-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts gpgcheck = 0 enabled = 1 [dts2] name = rhel-server-dts2-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2 gpgcheck = 0 enabled = 1 [rhsc] name = rhel-server-dts2-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2 gpgcheck = 0 enabled = 1
리포지토리 업데이트를 위한 스크립트 및 Cron 작업 생성
update-repository.sh라는 스크립트를 만들고 다음 내용과 함께 /usr/local/bin에 넣습니다.
vi /usr/local/bin/update-repository.sh
echo Update script started at $(date) >> /var/log/update-repository.log reposync --gpgcheck -l --repoid=rhel-6-server-rpms --download_path=/var/www/html/rhel6/server --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/server/ reposync --gpgcheck -l --repoid=rhel-server-dts-6-rpms --download_path=/var/www/html/rhel6/dts --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/dts/ \\ reposync --gpgcheck -l --repoid=rhel-server-dts2-6-rpms --download_path=/var/www/html/rhel6/dts2 --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/dts2/ echo Update script ended at $(date) >> /var/log/update-repository.log
chmod 600 /usr/local/bin/update-repository.sh
/etc/cron.d에 파일을 만들고 다음 내용을 사용하여 이름을 update-repository로 지정합니다.
vi /etc/cron.d/update-repository
@weekly root /usr/local/bin/update-repository.sh
마지막 생각들
로컬 리포지토리를 설정하는 데는 여러 가지 방법이 있으며 저는 확실히 이 방법을 발명하지 않았습니다. 설정에 대한 자세한 정보와 통찰력은 아래의 출처를 참조하십시오.
출처
- https://linux-console.net/creating_a_local_yum_repository_centos