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