วันเสาร์ที่ 10 สิงหาคม พ.ศ. 2556

มาลด traffic จากการ update Debian และ Ubuntu ด้วย apt-cache กันดีกว่า

หลายหน่วยงานคงมีคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการลินุกซ์กันอยู่ไม่มากก็น้อย ทางฝั่งเซอร์ฟเวอร์หลัก ๆ คงไม่พ้น RedHat, CentOS หรือไม่ก็ Debian แต่ระยะหลัง ๆ ก็เริ่มเห็น Ubuntu Server เพิ่มขึ้นมาบ้าง ขณะที่ฝั่งเดสก์ทอปโดยเฉพาะในบ้านเราคงหนีไม่พ้น Ubuntu เป็นส่วนใหญ่ แน่นอนว่ายิ่งมีคอมพิวเตอร์จำนวนมาก เวลาอัพเดตแต่ละครั้งย่อมเกิด traffic เยอะมากเช่นกัน หรือในห้องแล็บสำหรับการเรียนการสอนที่ต้องติดตั้งแพคเกจเพิ่มเติมเป็นประจำ บางครั้งกว่าจะติดตั้งเสร็จครบทุกเครื่องก็หมดชั่วโมงพอดี จะตั้ง mirror ไว้เองก็อาจเกินความจำเป็น แค่ใช้แคชมาช่วยเก็บแพคเกจเท่าที่ใช้จริงก็เพียงพอแล้ว

Apt-cache เซอร์ฟเวอร์

สำหรับครั้งนี้ขอกล่าวถึงระบบแคชสำหรับติดตั้งแพคเกจของ Debian และ Ubuntu กันก่อน ซึ่งถ้ามีเซอร์ฟเวอร์หรือเครื่องที่รัน Debian หรือ Ubuntu อยู่แล้วก็นำมาใช้ได้เลย จะเป็น text หรือ graphic mode ก็ได้ ขอแค่เข้าเน็ตไปดาวน์โหลดแพคเกจมาเก็บไว้ได้เท่านั้น ติดตั้งง่ายมากด้วยคำสั่งเพียงบรรทัดเดียว

apt-get install apt-cache

ถ้าให้ดี เครื่องที่ทำหน้าที่เป็น apt cache นี้ควรเป็นเครื่องที่เข้าเน็ตได้โดยไม่ต้องผ่านการ authenticate และควรเข้าถึงได้จากเครื่องอื่น ๆ ภายในองค์กรของตนได้ด้วยชื่อ ตั้งให้จำง่าย ๆ อย่าง abc ก็ได้ครับ หลังจากติดตั้งแล้วก็ต้องแก้ไขค่าต่าง ๆ เล็กน้อย ในไฟล์ /etc/apt-cacher/apt-cacher.conf ส่วนใหญ่ก็มีรายละเอียดอยู่แล้ว แค่ปลดคอมเมนต์หรือแก้ไขค่าตามต้องการบางข้อเท่านั้น

daemon_port = 3142

ปกติ apt-cache คอยรับการเชื่อมต่อที่พอร์ต 3142 แต่จริง ๆ โปรโตคอลที่ใช้ก็คือ HTTP และโปรแกรมที่ทำหน้าที่เป็นเว็บเซอร์ฟเวอร์ก็คือ Apache นั่นเอง ดังนั้นหากต้องการเข้าถึง cache ก็ใช้ http://abc:3142 ได้เลย หรือถ้าเครื่องนี้ไม่ได้ทำหน้าที่เป็นเว็บเซอร์ฟเวอร์อยู่ จะใช้แคชเป็นเว็บหลักก็ย่อมได้ เพียงแก้ตัวเลือกนี้เป็น 80 เท่านั้น

allowed_hosts = 172.16.0.0/16; 192.168.1.0/24;

รายการหมายเลขไอพีของโฮสต์ที่สามารถเข้ามาใช้แคชได้ หน่วยงานไหนใช้ช่วงไอพีช่วงไหนก็ใส่ไว้ตามนั้นได้เลย คั่นไว้ด้วยเซมิโคลอนครับ

path_map = debian ftp.th.debian.org/debian; debian-sec security.debian.org; ubuntu th.archive.ubuntu.com/ubuntu; ubuntu-sec security.ubuntu.com/ubuntu;

ตัวเลือก path_map ใช้กำหนดชื่อสำหรับอ้างถึง mirror ของ apt source ต่าง ๆ ในที่นี้ต้องการใช้ apt-cache นี้สำหรับทั้ง Debian และ Ubuntu จึงมีรายละเอียดดังที่เห็นข้างต้น ซึ่งจริง ๆ รายการโฮสต์สำหรับมาใส่ในตัวเลือกนี้ก็ไปดูจาก /etc/apt/sources.list ของเครื่องไคลเอนต์ได้เลย

Sources.list ของไคลเอนต์

หลังจากกำหนดค่าต่าง ๆ บนเซอร์ฟเวอร์เสร็จแล้ว ทุกเครื่องทางฝั่งไคลเอนต์ก็ต้องแก้ไขไฟล์ /etc/apt/sources.list โดยใช้ชื่อที่กำหนดไว้ใน path_map ของเซอร์ฟเวอร์มาใช้ เช่นจากเดิม

deb http://ftp.th.debian.org/debian/ wheezy main
deb-src http://ftp.th.debian.org/debian/ wheezy main

deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main

แก้เป็น

deb http://abc:3142/debian wheezy main
deb-src http://abc:3142/debian wheezy main

deb http://abc:3142/debian-sec wheezy/updates main
deb-src  http://abc:3142/debian-sec wheezy/updates main

ซึ่งชื่อโฮสต์ abc ก็แก้ไขให้เป็นไปตามที่ใช้จริงได้เลย ในทางกลับกัน หากในตัวเลือก daemon_port กำหนดเป็น 80 ก็ไม่ต้องระบุ port ครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น