ค้นหาเว็บไซต์

วิธีการตั้งค่าพื้นที่เก็บข้อมูล HTTP Yum ในเครื่องบน CentOS 7


ที่เก็บซอฟต์แวร์ (“repo ” สั้น ๆ ) คือตำแหน่งจัดเก็บไฟล์ส่วนกลางสำหรับเก็บและบำรุงรักษาแพ็คเกจซอฟต์แวร์ ซึ่งผู้ใช้สามารถดึงแพ็คเกจและติดตั้งลงในคอมพิวเตอร์ของตนได้

ที่เก็บข้อมูลมักจัดเก็บไว้ในเซิร์ฟเวอร์บนเครือข่าย เช่น อินเทอร์เน็ต ซึ่งผู้ใช้หลายคนสามารถเข้าถึงได้ อย่างไรก็ตาม คุณสามารถสร้างและกำหนดค่าพื้นที่เก็บข้อมูลในเครื่องคอมพิวเตอร์ของคุณและเข้าถึงได้ในฐานะผู้ใช้คนเดียวหรืออนุญาตให้เข้าถึงเครื่องอื่นบน LAN ของคุณ (เครือข่ายท้องถิ่น)

ข้อดีอย่างหนึ่งของการตั้งค่าพื้นที่เก็บข้อมูลในเครื่องคือคุณไม่จำเป็นต้องเชื่อมต่ออินเทอร์เน็ตเพื่อติดตั้งแพ็คเกจซอฟต์แวร์

YUM (Yellowdog Updater Modified) เป็นเครื่องมือจัดการแพ็คเกจที่ใช้กันอย่างแพร่หลายสำหรับ RPM (RedHat Package Manager) ที่ใช้ระบบ Linux ซึ่งทำให้การติดตั้งซอฟต์แวร์เป็นเรื่องง่ายบน Red Hat /CentOS ลินุกซ์

ในบทความนี้ เราจะอธิบายวิธีตั้งค่าพื้นที่เก็บข้อมูล YUM ภายในเครื่องบนเว็บเซิร์ฟเวอร์ HTTP (Nginx) บนเว็บเซิร์ฟเวอร์ CentOS 7 VPS และยังแสดงวิธีค้นหาและติดตั้งแพ็คเกจซอฟต์แวร์บนเครื่องไคลเอนต์ CentOS 7

สภาพแวดล้อมการทดสอบของเรา

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

ขั้นตอนที่ 1: ติดตั้งเว็บเซิร์ฟเวอร์ Nginx

1. ขั้นแรกให้เริ่มต้นด้วยการติดตั้งเซิร์ฟเวอร์ Nginx HTTP จากที่เก็บ EPEL โดยใช้ตัวจัดการแพ็คเกจ YUM ดังต่อไปนี้

yum install epel-release
yum install nginx 

2. เมื่อคุณติดตั้งเว็บเซิร์ฟเวอร์ Nginx แล้ว คุณสามารถเริ่มต้นได้เป็นครั้งแรกและเปิดใช้งานให้เริ่มโดยอัตโนมัติเมื่อบูตระบบ

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. ถัดไป คุณต้องเปิดพอร์ต 80 และ 443 เพื่ออนุญาตการรับส่งข้อมูลเว็บไปยังบริการ Nginx อัปเดตกฎไฟร์วอลล์ของระบบเพื่ออนุญาตแพ็กเก็ตขาเข้า บน HTTP และ HTTPS โดยใช้คำสั่งด้านล่าง

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

4. ตอนนี้คุณสามารถยืนยันได้ว่าเซิร์ฟเวอร์ Nginx ของคุณเปิดใช้งานและทำงานอยู่ โดยใช้ URL ต่อไปนี้ หากคุณเห็นหน้าเว็บเริ่มต้นของ Nginx ทุกอย่างก็เรียบร้อยดี

http://SERVER_DOMAIN_NAME_OR_IP 

ขั้นตอนที่ 2: สร้างพื้นที่เก็บข้อมูลท้องถิ่นของ Yum

5. ในขั้นตอนนี้ คุณต้องติดตั้งแพ็คเกจที่จำเป็นสำหรับการสร้าง กำหนดค่า และจัดการพื้นที่เก็บข้อมูลในเครื่องของคุณ

yum install createrepo  yum-utils

6. จากนั้น สร้างไดเร็กทอรีที่จำเป็น (พื้นที่เก็บข้อมูล yum) ที่จะจัดเก็บแพ็กเกจและข้อมูลที่เกี่ยวข้อง

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

7. จากนั้นใช้เครื่องมือ reposync เพื่อซิงโครไนซ์ที่เก็บข้อมูล CentOS YUM ไปยังไดเร็กทอรีในเครื่องตามที่แสดง

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/
ผลลัพธ์ตัวอย่าง
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     

ในคำสั่งข้างต้น ตัวเลือก:

  • -g - เปิดใช้งานการลบแพ็คเกจที่ไม่ผ่านการตรวจสอบลายเซ็น GPG หลังจากดาวน์โหลด
  • -l – เปิดใช้งานการสนับสนุนปลั๊กอิน yum
  • -d - เปิดใช้งานการลบแพ็คเกจภายในเครื่องที่ไม่มีอยู่ในที่เก็บอีกต่อไป
  • -m – เปิดใช้งานการดาวน์โหลดไฟล์ comps.xml
  • --repoid – ระบุรหัสพื้นที่เก็บข้อมูล
  • --newest-only – บอก reposync ให้ดึงเฉพาะเวอร์ชันล่าสุดของแต่ละแพ็คเกจใน repos
  • --download-metadata – เปิดใช้งานการดาวน์โหลดข้อมูลเมตาที่ไม่ใช่ค่าเริ่มต้นทั้งหมด
  • --download_path – ระบุเส้นทางในการดาวน์โหลดแพ็คเกจ

8. จากนั้น ตรวจสอบเนื้อหาของไดเร็กทอรีในเครื่องของคุณเพื่อให้แน่ใจว่าแพ็คเกจทั้งหมดได้รับการซิงโครไนซ์ในเครื่องแล้ว

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. ตอนนี้สร้าง repodata ใหม่สำหรับที่เก็บในเครื่องโดยการรันคำสั่งต่อไปนี้ โดยที่แฟล็ก -g ใช้เพื่ออัปเดตข้อมูลกลุ่มแพ็กเกจโดยใช้ ที่ระบุ ไฟล์ .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. หากต้องการเปิดใช้งานการดูที่เก็บและแพ็คเกจในนั้น ผ่านทางเว็บเบราว์เซอร์ ให้สร้างบล็อกเซิร์ฟเวอร์ Nginx ที่ชี้ไปยังรากของที่เก็บของคุณดังที่แสดง

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

เพิ่มไฟล์ ot การกำหนดค่าต่อไปนี้ 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
        }
}

บันทึกไฟล์และปิด

11. จากนั้นรีสตาร์ทเซิร์ฟเวอร์ Nginx ของคุณ และดูที่เก็บข้อมูลจากเว็บเบราว์เซอร์โดยใช้ URL ต่อไปนี้

http://repos.test.lab

ขั้นตอนที่ 3: สร้างงาน Cron เพื่อซิงโครไนซ์และสร้างที่เก็บข้อมูล

12. ถัดไป เพิ่มงาน cron ที่จะซิงโครไนซ์ repos ในเครื่องของคุณกับ repos อย่างเป็นทางการของ CentOS โดยอัตโนมัติเพื่อรับการอัปเดตและแพตช์ความปลอดภัย

vim /etc/cron.daily/update-localrepos

เพิ่มคำสั่งเหล่านี้ในสคริปต์

#!/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

บันทึกสคริปต์และปิดและตั้งค่าการอนุญาตที่เหมาะสม

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

ขั้นตอนที่ 4: ตั้งค่า Local Yum Repository บนเครื่องไคลเอนต์

13. ตอนนี้บนเครื่องไคลเอนต์ CentOS ของคุณ ให้เพิ่ม repos ในเครื่องของคุณไปยังการกำหนดค่า YUM

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

คัดลอกและวางการกำหนดค่าด้านล่างในไฟล์ local-repos.repo (ทำการเปลี่ยนแปลงหากจำเป็น)

[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

บันทึกไฟล์และเริ่มใช้มิเรอร์ YUM ในเครื่องของคุณ

14. จากนั้น เรียกใช้คำสั่งต่อไปนี้เพื่อดู repos ภายในเครื่องของคุณในรายการ repos YUM ที่พร้อมใช้งานบนเครื่องไคลเอนต์

 yum repolist
OR
yum repolist all

นั่นคือทั้งหมด! ในบทความนี้ เราได้อธิบายวิธีตั้งค่าพื้นที่เก็บข้อมูล YUM ในเครื่องบน CentOS 7 แล้ว เราหวังว่าคุณจะพบว่าคู่มือนี้มีประโยชน์ หากคุณมีคำถามหรือความคิดอื่น ๆ ที่จะแบ่งปันให้ใช้แบบฟอร์มความคิดเห็นด้านล่าง