Theppitak's blog

My personal blog.

23 เมษายน 2549

lessdisks

การจัดการการ update ลินุกซ์ในเครื่องจำนวนมาก อาจจะอาศัย local APT repository บวกกับการตั้ง anacron ที่เครื่องลูก ให้คอย update ระบบอยู่เสมอๆ แต่กรณีที่จะติดตั้งซอฟต์แวร์ตัวใหม่เพิ่มเติม ก็ต้องไปไล่ติดตั้งทุกเครื่องอยู่ดี อีกอย่างหนึ่ง การใช้เครื่องจำนวนมากใน pool ที่มีสำหรับผู้ใช้กลุ่มหนึ่ง อาจจะไม่สะดวกเรื่องการเก็บข้อมูล เพราะเมื่อย้ายเครื่องไป ข้อมูลก็ไม่ได้ตามไปด้วย ต้องพยายามจองให้ได้เครื่องเดิม หรือไม่ วิธีแก้ก็คือใช้ thumb drive เก็บข้อมูลเอา

สถานการณ์คล้ายๆ ที่ว่า เกิดขึ้นที่โรงเรียน เลยมีไอเดียมานานแล้ว ว่าจะทำ thin client server จนกระทั่งมีเซิร์ฟเวอร์ว่างอยู่ เลยได้จังหวะ เอามาลงเดเบียนแล้วเซ็ตเป็น thin client server ซะ

เริ่มแรก ก็ลอง LTSP ตามระเบียบ โดย apt-get ได้จากเดเบียนเลย ก็ปรากฏว่าง่ายดี พอเรียก ltspadmin มันมีเมนูให้เลือกเลย โดยไปดาวน์โหลดแพกเกจต่างๆ จาก ltsp.org มาติดตั้ง แล้วก็ตั้งค่าเซิร์ฟเวอร์ต่างๆ ที่จำเป็นให้ ทั้ง dhcpd, tftpd, nfs, xdmcp (สำหรับ xdm ส่วน gdm ไปเซ็ตเองได้) รวมทั้งมี kernel image ที่คอมไพล์มาสำหรับการ mount nfs root เรียบร้อย เรียกว่าอ่านตาม คู่มือ ก็ทำได้เลย

แต่ปัญหาคือ xdmcp มันไม่ secure เอามาใช้ในท่ามกลางเน็ตเวิร์คใหญ่ๆ มันเสี่ยงเกินไป แต่ก็เหลือบไปเห็น sdm (secure display manager) ในเดเบียน ที่เปิด X session ผ่าน ssh เลยพยายามเอามาใช้ แต่ปรากฏว่าขาดโน่นขาดนี่เยอะแยะ ต้องลงเพิ่ม ครั้นจะ apt-get จาก ltsp chroot ก็ไม่ได้ เพราะมันเป็นระบบของ ltsp ไม่ใช่เดเบียน เลยต้องดาวน์โหลด .deb มาแตกแล้ว untar เอาเอง แต่ก็จะติด version dependency มากมาย คิดว่า ในระยะยาว คง maintain ยาก

ตอนดู info ของ sdm ก็เห็นว่ามาจากโครงการ lessdisks ซึ่งเป็น thin client server อีกตัวหนึ่ง ที่ใช้ debootstrap ติดตั้ง debian ลงใน nfs root ทำให้ติดตั้งแพกเกจเพิ่มเติมจาก debian ได้เลย ก็กะไว้อยู่ว่าเดี๋ยวต้องลองเหมือนกัน ก็พอดี นิวตรอน มายุว่าตัวนี้น่าสนนะพี่ เลยตกลงใจว่าต้องลอง

ลงแล้วก็ลงโปรแกรมเพิ่มง่ายอย่างที่คาด แต่ข้อเสียคือ เคอร์เนลที่มากับ debian ไม่มีตัวไหนที่ built-in network driver และเปิด nfs root เลยต้อง build kernel เอง โดยใช้ make-kpkg แล้วก็เซ็ต pxe boot ผ่าน atftpd เรียบร้อย แก้ boot option ไปมา จนในที่สุดก็บูตขึ้น เข้าเป็น text console ที่เครื่องลูก สามารถล็อกอินเข้าเซิร์ฟเวอร์ได้ แล้วก็เจอหยุดสงกรานต์

เมื่อวานเข้าไปเซ็ตต่อ ปรากฏว่า Xorg 7 transition ทำพิษนิดหน่อย โดยไม่สามารถ start X server ที่เครื่องลูกได้ เนื่องจากสคริปต์ต่างๆ ใน lessdisks ยังอิง XFree86 อยู่เลย!

ต้องเข้าไปใน nfs chroot เซ็ต X server option ใน /etc/lessdisks/ltsp/x_ltsp.conf แต่แค่นั้นยังไม่พอ ต้องแก้สคริปต์ใน /usr/share/lessdisks/ltsp_functions ด้วย ให้ gen XF86Config ในรูปแบบของ Xorg รวมทั้งแก้ /etc/lessdisks/x.config เอาตัวเลือก -fp tcp/xapp:7100 ออก (ขี้เกียจเซ็ต xfs เอิ๊กๆ) และในที่สุด ก็สามารถบูตเข้า level 5 ล็อกอินเข้าเซิร์ฟเวอร์ผ่าน xdmcp ได้

แต่เป้าหมายเราคือใช้ sdm เลยเปลี่ยน inittab ให้บูตเข้า level 4 และไปใส่ชื่อ server ใน /etc/sdm/sdm.config (ของ nfs chroot ทั้งสองไฟล์) ก็เป็นอันบูตเข้าหน้าจอ sdm (ที่ใช้ xdialog พื้นๆ) ได้ ป้อนชื่อ user และ password ผ่าน sdm-ssh-askpass แล้วก็ ssh เข้า server เรียก sdm-session ซึ่งในครั้งแรกจะมีหน้าต่างมาให้เลือก window manager พอเลือก gnome ก็เข้ามาถึง gnome desktop ของผู้ใช้ เป็นอันเสร็จสิ้นกระบวนการ

สรุปว่า lessdisks เซ็ตยากกว่า ltsp นิดหน่อย แต่น่าจะ maintain ง่ายในระยะยาว (สำหรับระบบที่เป็น debian หรือ ubuntu) จากที่อ่านรายละเอียดของ lessdisks ก็พบว่าริเริ่มจาก ubuntu นั่นเอง

ยังมีอีกทางเลือกหนึ่ง คือใช้ education-thin-client-server จาก Skokelinux distro เพื่อการศึกษาอีกเจ้าหนึ่งที่ใช้ debian เป็นฐาน ดูจากรายละเอียดของแพกเกจ และ dependency แล้ว น่าจะง่ายพอๆ กับ ltsp แถมเป็นแบบฉบับ debian ด้วย เพียงแต่ dependency ที่ว่า ไม่ได้อยู่ใน debian pool หลัก ต้องใช้แพกเกจจาก Skolelinux เอง

ปล. ในระหว่างที่เซ็ต ที่กรุงเทพฯ ก็มีงาน Blognone Tech Day เสียดาย ไม่ได้ไป มันไกลโพด T_T ไม่เป็นไร รออ่านสไลด์ + รายงานข่าวเอา :-)

/me อยากมีสติกเกอร์ debian

1 ความเห็น:

แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)

<< กลับหน้าแรก

hacker emblem