สวัสดีครับ! ผมเป็นนักศึกษามหาวิทยาลัยสาขา Computer SW ที่เพิ่งเริ่มเรียนเขียนโค้ดได้ไม่นานครับ
โปรเจ็กต์นี้เป็นไคลเอนต์สำหรับ Incus ซึ่งช่วยให้สร้าง system container ที่รวมถึง init ได้อย่างง่ายดาย ตอนนี้ยังมีฟีเจอร์ไม่มากและยังเป็นต้นแบบอยู่ แต่ถ้าสนใจก็จะขอบคุณมากครับ!
คำอธิบายแบบย่อมีดังนี้
- จัดการคอนเทนเนอร์ได้ด้วยแอป Python แบบเรียบง่าย
- มีพอร์ต SSH ให้ จึงใช้เป็นสภาพแวดล้อมพัฒนาแบบ CLI ได้
- มีพอร์ต 30001 และ 30002 สำหรับการทดสอบ
- ตรวจสอบและเปลี่ยนสถานะจากระยะไกลได้ (รวมถึง freeze) พร้อม push ไฟล์ได้
- ใช้ผู้ใช้ในลักษณะคล้าย namespace ได้: เมื่อลบผู้ใช้ คอนเทนเนอร์ทั้งหมดจะถูกลบด้วย
- ใช้แท็กซ้ำได้: ในชื่อจริงจะกำหนดสตริงเฉพาะที่แยกจากกันให้
ข้อดีที่ได้รับจากการใช้แอปนี้มีดังต่อไปนี้
- ตั้งค่าคอนเทนเนอร์แบบง่าย ๆ ได้ระหว่างเดินทาง
- สร้าง system container ที่จำลองไปถึง Init ได้ หลายตัวในคลิกเดียว
- เปลี่ยนเอกสารและรูปภาพได้สะดวกเมื่อต้องเสิร์ฟ HTML แบบง่ายด้วย NGINX
- ทดสอบ build script ของโปรเจ็กต์ในสภาพแวดล้อมเสมือนได้
ผลงานสำคัญที่ทำได้สำเร็จ
- ทดสอบการบิลด์ Incuspeed ด้วย Incuspeed เอง: ใช้ตัวมันเองทดสอบการบิลด์
- เปลี่ยนภาพตัวอย่างที่ Nginx แสดงจากระยะไกล
- ทดลองใช้งานดิสโทรหลากหลายแบบ
ดิสโทรที่รองรับ
- AlmaLinux 9
- RockyLinux 9
- Debian 10,11,12
- Devuan Beowulf, Chimaera, Daedalus (โดยพื้นฐานคือ Debian ที่เปลี่ยน init เป็น sysv)
- Slackware current, 15.0 (ไม่ได้ติดตั้ง slackpkg+ setup มาให้เป็นค่าเริ่มต้น)
- Centos 9 Stream
ในบรรดา Incus official image ผมได้ตั้งค่า SSH เสร็จแล้วสำหรับทุกดิสโทรที่เคยลองใช้
ฟีเจอร์ที่กำลังพิจารณาในอนาคต
- สร้าง/จัดการ snapshot จากระยะไกล
- บันทึกคอนเทนเนอร์ปัจจุบันเป็นอิมเมจ
ถึงตอนนี้ผมยังเป็นมือสมัครเล่น แต่ก็อยากสร้างความประทับใจที่ดีครับ!
1 ความคิดเห็น
เพื่ออ้างอิง พอร์ต 30001 และ 30002 ภายในจะถูกแมปออกไปภายนอกเป็นพอร์ต SSH +1 และพอร์ต SSH +2