Cara Mengatur Repositori HTTP Yum Lokal di CentOS 7


Repositori perangkat lunak (“repo ” singkatnya) adalah lokasi penyimpanan file pusat untuk menyimpan dan memelihara paket perangkat lunak, tempat pengguna dapat mengambil paket dan menginstalnya di komputer mereka.

Repositori sering kali disimpan di server di suatu jaringan misalnya internet, yang dapat diakses oleh banyak pengguna. Namun, Anda dapat membuat dan mengonfigurasi repositori lokal di komputer Anda dan mengaksesnya sebagai pengguna tunggal atau mengizinkan akses ke mesin lain di LAN (Jaringan Area Lokal) Anda.

Salah satu keuntungan menyiapkan repositori lokal adalah Anda tidak memerlukan koneksi internet untuk menginstal paket perangkat lunak.

YUM (Yellowdog Updater Modified) adalah alat manajemen paket yang banyak digunakan untuk RPM (RedHat Package Manager) berdasarkan sistem Linux, yang memudahkan instalasi perangkat lunak di Red Hat /CentOS Linux.

Dalam artikel ini, kami akan menjelaskan cara menyiapkan repositori YUM lokal melalui server web HTTP (Nginx) di CentOS 7 VPS dan juga menunjukkan kepada Anda cara menemukan dan menginstal paket perangkat lunak pada mesin klien CentOS 7.

Lingkungan Pengujian Kami

Yum HTTP Repository Server:	CentOS 7 [192.168.0.100]
Client Machine:		CentOS 7 [192.168.0.101]

Langkah 1: Instal Server Web Nginx

1. Pertama mulai dengan menginstal server HTTP Nginx dari repositori EPEL menggunakan manajer paket YUM sebagai berikut.

yum install epel-release
yum install nginx 

2. Setelah Anda menginstal server web Nginx, Anda dapat memulainya untuk pertama kali dan mengaktifkannya untuk memulai secara otomatis saat boot sistem.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Selanjutnya, Anda perlu membuka port 80 dan 443 untuk mengizinkan lalu lintas web ke layanan Nginx, perbarui aturan firewall sistem untuk mengizinkan paket masuk di HTTP dan HTTPS menggunakan perintah di bawah.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

4. Sekarang Anda dapat mengonfirmasi bahwa server Nginx Anda aktif dan berjalan, menggunakan URL berikut; jika Anda melihat halaman web default Nginx, semuanya baik-baik saja.

http://SERVER_DOMAIN_NAME_OR_IP 

Langkah 2: Buat Repositori Lokal Yum

5. Pada langkah ini, Anda perlu menginstal paket yang diperlukan untuk membuat, mengonfigurasi, dan mengelola repositori lokal Anda.

yum install createrepo  yum-utils

6. Selanjutnya, buat direktori yang diperlukan (repositori yum) yang akan menyimpan paket dan informasi terkait lainnya.

mkdir -p /var/www/html/repos/{base,centosplus,extras,updates}

7. Kemudian gunakan alat reposync untuk menyinkronkan repositori CentOS YUM ke direktori lokal seperti yang ditunjukkan.

reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=centosplus --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/var/www/html/repos/
Contoh Keluaran
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.fibergrid.in
 * epel: mirror.xeonbd.com
 * extras: mirrors.fibergrid.in
 * updates: mirrors.fibergrid.in
base/7/x86_64/group                                                    | 891 kB  00:00:02     
No Presto metadata available for base
(1/9911): 389-ds-base-snmp-1.3.7.5-18.el7.x86_64.rpm                   | 163 kB  00:00:02     
(2/9911): 389-ds-base-devel-1.3.7.5-18.el7.x86_64.rpm                  | 267 kB  00:00:02     
(3/9911): ElectricFence-2.2.2-39.el7.i686.rpm                          |  35 kB  00:00:00     
(4/9911): ElectricFence-2.2.2-39.el7.x86_64.rpm                        |  35 kB  00:00:00     
(5/9911): 389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm                   | 695 kB  00:00:04     
(6/9911): GConf2-devel-3.2.6-8.el7.i686.rpm                            | 110 kB  00:00:00     
(7/9911): GConf2-devel-3.2.6-8.el7.x86_64.rpm                          | 110 kB  00:00:00     
(8/9911): GConf2-3.2.6-8.el7.i686.rpm                                  | 1.0 MB  00:00:06     

Pada perintah di atas, opsinya:

  • -g – memungkinkan penghapusan paket yang gagal dalam pemeriksaan tanda tangan GPG setelah diunduh.
  • -l – mengaktifkan dukungan plugin yum.
  • -d – memungkinkan penghapusan paket lokal yang tidak lagi ada di repositori.
  • -m – memungkinkan pengunduhan file comps.xml.
  • --repoid – menentukan ID repositori.
  • --newest-only – memberitahu reposync untuk hanya menarik versi terbaru dari setiap paket di repo.
  • --download-metadata – memungkinkan pengunduhan semua metadata non-default.
  • --download_path – menentukan jalur untuk mengunduh paket.

8. Selanjutnya, periksa isi direktori lokal Anda untuk memastikan bahwa semua paket telah disinkronkan secara lokal.

ls -l /var/www/html/repos/base/
ls -l /var/www/html/repos/base/Packages/
ls -l /var/www/html/repos/centosplus/
ls -l /var/www/html/repos/centosplus/Packages/
ls -l /var/www/html/repos/extras/
ls -l /var/www/html/repos/extras/Packages/
ls -l /var/www/html/repos/updates/
ls -l /var/www/html/repos/updates/Packages/

9. Sekarang buat repodata baru untuk repositori lokal dengan menjalankan perintah berikut, dengan flag -g digunakan untuk memperbarui informasi grup paket menggunakan yang ditentukan berkas .xml.

createrepo -g comps.xml /var/www/html/repos/base/  
createrepo -g comps.xml /var/www/html/repos/centosplus/	
createrepo -g comps.xml /var/www/html/repos/extras/  
createrepo -g comps.xml /var/www/html/repos/updates/  

10. Untuk mengaktifkan tampilan repositori dan paket di dalamnya, melalui browser web, buat blok server Nginx yang menunjuk ke akar repositori Anda seperti yang ditunjukkan.

vim /etc/nginx/conf.d/repos.conf 

Tambahkan file konfigurasi berikut repos.conf.

server {
        listen   80;
        server_name  repos.test.lab;	#change  test.lab to your real domain 
        root   /var/www/html/repos;
        location / {
                index  index.php index.html index.htm;
                autoindex on;	#enable listing of directory index
        }
}

Simpan file dan tutup.

11. Kemudian restart server Nginx Anda dan lihat repositori dari browser web menggunakan URL berikut.

http://repos.test.lab

Langkah 3: Buat Tugas Cron untuk Menyinkronkan dan Membuat Repositori

12. Selanjutnya, tambahkan tugas cron yang secara otomatis akan menyinkronkan repo lokal Anda dengan repo CentOS resmi untuk mendapatkan pembaruan dan patch keamanan.

vim /etc/cron.daily/update-localrepos

Tambahkan perintah ini di skrip.

#!/bin/bash
##specify all local repositories in a single variable
LOCAL_REPOS=”base centosplus extras updates”
##a loop to update repos one at a time 
for REPO in ${LOCAL_REPOS}; do
reposync -g -l -d -m --repoid=$REPO --newest-only --download-metadata --download_path=/var/www/html/repos/
createrepo -g comps.xml /var/www/html/repos/$REPO/  
done

Simpan skrip dan tutup dan atur izin yang sesuai.

chmod 755 /etc/cron.daily/update-localrepos

Langkah 4: Siapkan Repositori Yum Lokal di Mesin Klien

13. Sekarang di mesin klien CentOS Anda, tambahkan repo lokal Anda ke konfigurasi YUM.

vim /etc/yum.repos.d/local-repos.repo

Salin dan tempel konfigurasi di bawah ini ke dalam file local-repos.repo (lakukan perubahan jika diperlukan).

[local-base]
name=CentOS Base
baseurl=http://repos.test.lab/base/
gpgcheck=0
enabled=1

[local-centosplus]
name=CentOS CentOSPlus
baseurl=http://repos.test.lab/centosplus/
gpgcheck=0
enabled=1

[local-extras]
name=CentOS Extras
baseurl=http://repos.test.lab/extras/
gpgcheck=0
enabled=1

[local-updates]
name=CentOS Updates
baseurl=http://repos.test.lab/updates/
gpgcheck=0
enabled=1

Simpan file dan mulai gunakan mirror YUM lokal Anda.

14. Selanjutnya, jalankan perintah berikut untuk melihat repo lokal Anda dalam daftar repo YUM yang tersedia, di mesin klien.

 yum repolist
OR
yum repolist all

Itu saja! Pada artikel ini, kami telah menjelaskan cara mengatur repositori YUM lokal di CentOS 7. Kami harap panduan ini bermanfaat bagi Anda. Jika Anda memiliki pertanyaan, atau pemikiran lain untuk dibagikan, gunakan formulir komentar di bawah.