Oracle Linux 7에서 Oracle Yum Server를 Local에 Mirror 구성하는 방법을 기술한다 |
1. Yum Repository Mirror 구성
1.1 remote Repository 설정
1) 사전 패키지 설치
(1) createrepo 설치
[root@SA-OLVM1:/etc/yum.repos.d:#] yum install -y createrepo ============================================================================================================ Package Arch Version Repository Size ============================================================================================================ Installing: createrepo noarch 0.9.9-28.el7 ol7_latest 93 k Installing for dependencies: deltarpm x86_64 3.6-3.el7 ol7_latest 81 k python-deltarpm x86_64 3.6-3.el7 ol7_latest 30 k
Transaction Summary ============================================================================================================ |
(2) HTTP 서비스 설치
[root@SA-OLKH1:~:#] yum install -y httpd ============================================================================================================ Package Arch Version Repository Size ============================================================================================================ Installing: httpd x86_64 2.4.6-95.0.1.el7 ol7_latest 1.2 M Installing for dependencies: apr x86_64 1.4.8-7.el7 ol7_latest 103 k apr-util x86_64 1.5.2-6.0.1.el7 ol7_latest 91 k httpd-tools x86_64 2.4.6-95.0.1.el7 ol7_latest 92 k mailcap noarch 2.1.41-2.el7 ol7_latest 30 k
Transaction Summary ============================================================================================================ |
2) remote Repository 구성
http://yum.oracle.com/oracle-linux-7.html 에서 구성하고자 하는 Repository를 등록
[root@SA-OLVM1:~:#] vi /etc/yum.repos.d/ol7.7-yum.repo [ol7_latest] name=Oracle Linux $releasever Latest ($basearch) baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/latest/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1
[ol7_UEKR5] name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch) baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/UEKR5/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1
[ol7_gluster6] name=Oracle Linux $releasever Gluster 6 Packages ($basearch) baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/gluster6/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1
[ol7_kvm_utils] name=Oracle Linux $releasever KVM Utilities ($basearch) baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/kvm/utils/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1
[ol7_optional_latest] name=Oracle Linux $releasever Optional Latest ($basearch) baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/optional/latest/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1
[ovirt-4.3] name=Latest oVirt 4.3 Release ($basearch) baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/ovirt43/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1
[ovirt-4.3-extra] name=oVirt 4.3 Extra ($basearch) baseurl=https://yum$ociregion.oracle.com/repo/OracleLinux/OL7/ovirt43/extras/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1 |
3) remote Repository 구성 확인
[root@SA-OLVM1:/etc/yum.repos.d:#] yum repolist Loaded plugins: ulninfo repo id repo name status ol7.7_http_local Oracle Linux 7.7 Http Local 5210 ol7_UEKR5/x86_64 Latest Unbreakable Enterprise Kernel Release 5 for Oracle Linux 7Server (x86_64) 280 ol7_gluster6/x86_64 Oracle Linux 7Server Gluster 6 Packages (x86_64) 61 ol7_kvm_utils/x86_64 Oracle Linux 7Server KVM Utilities (x86_64) 542 ol7_latest/x86_64 Oracle Linux 7Server Latest (x86_64) 19415 ol7_optional_latest/x86_64 Oracle Linux 7Server Optional Latest (x86_64) 14167 ovirt-4.3/x86_64 Latest oVirt 4.3 Release (x86_64) 217 ovirt-4.3-extra/x86_64 oVirt 4.3 Extra (x86_64) 160 repolist: 40052 |
1.2 Local Repository 구성
1) Linux 7 Repository sync script 생성
[root@SA-OLVM1:~:#] mkdir -p /opt/repo/ol7 [root@SA-OLVM1:~:#] mkdir -p /opt/repo/logs [root@SA-OLVM1:~:#] mkdir -p /opt/repo/scripts |
|
|
[root@SA-OLVM1:~:#] vi /opt/repo/scripts/repo_sync.sh #!/bin/bash
# Create log files LOG_FILE=/opt/repo/logs/repo_sync_$(date +%Y.%m.%d).log
# Remove old log files find /opt/repo/logs/repo_sync* -mtime +7 -delete; >> $LOG_FILE 2>&1
# Reposync /usr/bin/reposync --newest-only --repoid=ol7_latest -p /opt/repo/ol7 >> $LOG_FILE 2>&1 /usr/bin/reposync --newest-only --repoid=ol7_UEKR5 -p /opt/repo/ol7 >> $LOG_FILE 2>&1 /usr/bin/reposync --newest-only --repoid=ol7_gluster6 -p /opt/repo/ol7 >> $LOG_FILE 2>&1 /usr/bin/reposync --newest-only --repoid=ol7_kvm_utils -p /opt/repo/ol7 >> $LOG_FILE 2>&1 /usr/bin/reposync --newest-only --repoid=ol7_optional_latest -p /opt/repo/ol7 >> $LOG_FILE 2>&1 /usr/bin/reposync --newest-only --repoid=ovirt-4.3 -p /opt/repo/ol7 >> $LOG_FILE 2>&1 /usr/bin/reposync --newest-only --repoid=ovirt-4.3-extra -p /opt/repo/ol7 >> $LOG_FILE 2>&1
# Createrepo /usr/bin/createrepo /opt/repo/ol7/ol7_latest/getPackage/ >> $LOG_FILE 2>&1 /usr/bin/createrepo /opt/repo/ol7/ol7_UEKR5/getPackage/ >> $LOG_FILE 2>&1 /usr/bin/createrepo /opt/repo/ol7/ol7_gluster6/getPackage/ >> $LOG_FILE 2>&1 /usr/bin/createrepo /opt/repo/ol7/ol7_kvm_utils/getPackage/ >> $LOG_FILE 2>&1 /usr/bin/createrepo /opt/repo/ol7/ol7_optional_latest/getPackage/ >> $LOG_FILE 2>&1 /usr/bin/createrepo /opt/repo/ol7/ovirt-4.3/getPackage/ >> $LOG_FILE 2>&1 /usr/bin/createrepo /opt/repo/ol7/ovirt-4.3-extra/getPackage/ >> $LOG_FILE 2>&1 |
[root@SA-OLVM1:~:#] chmod 740 /opt/repo/scripts/repo_sync.sh |
2) script 실행
[root@SA-OLVM1:~:#] /opt/repo/scripts/repo_sync.sh |
Option-3) crontab 등록
새로운 패키지 등록 시 동기화 되도록 crontab에 등록한다
[root@SA-OLVM1:~:#] crontab -e -u root 1 0 * * * /opt/repo/scripts/repo_sync.sh > /dev/null 2>&1 [root@SA-OLVM1:~:#] systemctl restart crond |
|
Option-1.3 Repository HTTP 서버 구성
1) HTTP 방화벽 허용
[root@SA-OLVM1:~:#] firewall-cmd --permanent --zone=public --add-port=80/tcp [root@SA-OLVM1:~:#] firewall-cmd --reload |
2) HTTP Conext root 설정
[root@SA-OLVM1:~:#] vi /opt/repo/scripts/repo_http.sh #!/bin/bash
/usr/bin/mkdir -p /var/www/html/repo /usr/bin/ln -s /opt/repo/ol7 /var/www/html/repo/ol7
cd /var/www/html/repo/ol7
### symbolic link loop for DIR in `ls -l | grep ^d | awk '{print $9}'`; do cd $DIR ; /usr/bin/ln -s ./getPackage ./x86_64 ; cd .. done
cp /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle /var/www/html/RPM-GPG-KEY-oracle-ol7 |
[root@SA-OLVM1:~:#] sh /opt/repo/scripts/repo_http.sh |
Option-1.4 외부서버에서 참조 가능한지 확인
1) yum repository 설정
[root@SA-OLKH1:~:#] rm -f /etc/yum.repos.d/ol7.7-yum.repo [root@SA-OLKH1:~:#] vi /etc/yum.repos.d/ol7-SA-OLVM1-http.repo [ol7_latest] name=Oracle Linux $releasever Latest ($basearch) baseurl=http://SA-OLVM1/repo/ol7/ol7_latest/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1
[ol7_UEKR5] name=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch) baseurl=http://SA-OLVM1/repo/ol7/ol7_UEKR5/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1
[ol7_gluster6] name=Oracle Linux $releasever Gluster 6 Packages ($basearch) baseurl=http://SA-OLVM1/repo/ol7/ol7_gluster6/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1
[ol7_kvm_utils] name=Oracle Linux $releasever KVM Utilities ($basearch) baseurl=http://SA-OLVM1/repo/ol7/ol7_kvm_utils/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1
[ol7_optional_latest] name=Oracle Linux $releasever Optional Latest ($basearch) baseurl=http://SA-OLVM1/repo/ol7/ol7_optional_latest/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1
[ovirt-4.3] name=Latest oVirt 4.3 Release ($basearch) baseurl=http://SA-OLVM1/repo/ol7/ovirt-4.3/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1
[ovirt-4.3-extra] name=oVirt 4.3 Extra ($basearch) baseurl=http://SA-OLVM1/repo/ol7/ovirt-4.3-extra/$basearch/ gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=0 enabled=1 |
2) 구성 확인
[root@SA-OLKH1:~:#] yum repolist Loaded plugins: ulninfo, versionlock repo id repo name status ol7_UEKR5/x86_64 Latest Unbreakable Enterprise Kernel for Oracle Linux 7Server (x86_64) 82 ol7_gluster6/x86_64 Oracle Linux 7Server Gluster 6 Packages (x86_64) 33 ol7_kvm_utils/x86_64 Oracle Linux 7Server KVM Utilities (x86_64) 52 ol7_latest/x86_64 Oracle Linux 7Server Latest (x86_64) 5422 ol7_optional_latest/x86_64 Oracle Linux 7Server Optional Latest (x86_64) 5190 ovirt-4.3/x86_64 Latest oVirt 4.3 Release (x86_64) 138 ovirt-4.3-extra/x86_64 oVirt 4.3 Extra (x86_64) 116 repolist: 11033 |