สมาคมสมาพันธ์โอเพนซอร์สแห่งประเทศไทย ร่วมกับ สำนักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ (องค์การมหาชน) ขอเชิญทุกท่านร่วมงานสัมมนาโอเพนซอร์ส ประจำปี 2557 กับงาน “มหกรรมซอฟต์แวร์โอเพนซอร์สแห่งประเทศไทย ครั้งที่ 12″ หรือ Thailand Open Source Festival 2014 ระหว่างวันที่ 10-11 ตุลาคม 2557 ตั้งแต่เวลา 9.00-16.30 น. ณ สถาบันเทคโนโลยีปัญญาภิวัฒน์ พบกับ Open Source Solution มากมายจากผู้ประกอบการธุรกิจซอฟต์แวร์ สัมนาและ Workshop ด้าน Cloud Computing และการพัฒนาซอฟต์แวร์ด้วยเครืองมือโอเพนซอร์ส หากคุณเป็นคนรักซอฟต์แวร์โอเพนซอร์ส งานนี้ห้ามพลาด!

รายละเอียดเพิ่มเติม – ossfestival.in.th

คราวที่แล้ว blog เรื่อง systemd เกี่ยวกับการใช้งานเบื้องต้นไป คิดว่าหลายท่านอาจจะเริ่มใช้งานกันได้แล้ว ปัญหาของ systemd ยังไม่จบแค่นั้น สำหรับท่านที่เขียน init script สำหรับ start, stop, restart service เอง แล้วพยายามจะใช้ init script เดิมปัญหาเกิดขึ้นทันที อันนี้ซวยสุด เพราะผมเองก็เขียน init script เหมือนกัน T_T ครั้งนี้ก็เลยมา blog เรื่อง unit file กันสักหน่อย เอ่อ…ถ้าหักดิบใช้ CoreOS ไปเลยทุกอย่างจะจบ โดนบังคับโดยบริยาย ไม่มีอะไรให้ใช้นอกจาก systemd ไม่มี unit file ก็ต้องเขียนผ่าน cloud init เอง เรียกได้ว่านอนหลับฝันเป็น systemd เลยทีเดียว ครั้งที่แล้วได้ลองจัดการ service ผ่าน systemd โดยใช้ systemctl ไปบ้างแล้ว ครั้งนี้ก็ต้องเขียน unit file แล้วล่ะครับ

ขอยกตัวอย่าง node.js ก็แล้วกันง่ายดี node.js ทำงานเป็น httpd service ได้ระบุ port ผ่านไฟล์ config ซึ่งเราก็จะไม่แก้ไขเหมือนเดิม ใช้ port 3000 ของที่มีมานั่นแหละ :) มาสร้าง project กันก่อน ถ้ามี node.js และ express generator ก็สร้างตัวอย่างง่ายๆ ขึ้นมาได้เลย


Continue reading

สมาคมศึกษาและพัฒนาโอเพ่นซอร์ส (OSEDA) เปิด RedHat OpenStack WorkShop เตรียมความพร้อมบุคคลากรด้าน Cloud Computing ด้วย RedHat OpenStack ที่ได้รวบรวมเทคโนโลยีสำหรับที่จะสร้างโครงสร้างพื้นฐานของ Cloud IaaS (Infrastructure as a Service) ที่ได้รับความนิยมสูงสุดและสามารถขยายให้รองรับการใช้งาน ในระดับองค์กรที่ต้องการใช้ Private Cloud จนถึงการใช้งานในระดับการให้บริการ Public Cloud

ใน Workshop ท่านจะได้ฝึกปฎิบัติ

  • ติดตั้ง OpenStack (IceHouse)
  • สร้าง Project, Users, Role และกำหนด Permission ของ User
  • สร้าง Instance จาก image และ Volumne และสามารถกำหนด flavor ตามความต้องการ
  • สร้าง networks, subnets และ route เข้าใจการทำงานของ L2 network และ L3 Agent
  • สร้าง keypair เพื่อให้สามารถรองรับการเข้าไปใช้งาน Instance
  • สามารถบริหาร Security Groups และสามารถกำหนด Floating IP ให้แก่ Instance
  • สามารถเข้าใช้งาน Instance ด้วย SSH จาก External IP
  • สามารถบริหารจัดการ Block Storage (Cinder)
  • สามารถติดตั้ง Object Storge (Swift) ในลักษณะการขยายงานแบบ Multinode
  • สามารถบริหารจัดการ Container และการสร้าง Zone อย่างเหมาะสม

สนใจ สอบถามรายละเอียดเพิ่มเติมได้ที่ – OSEDA

Git Reset เป็นคำสั่งสำหรับย้อนการกระทำ หรือเข้าใจง่ายๆ คือเหมือนกับคำสั่ง undoing ในโปรแกรมอื่นๆ วิธีการใช้จะแสดงให้เห็นในตัวอย่างด้านล่าง โดยตัวอย่างมีการแก้ไขข้อมูลในไฟล์ที่ชื่อว่า README.txt และภาพด้านล่างเป็นผลลัพธ์จากการใช้คำสั่ง git status เพื่อให้เห็นว่าเอกสารดังกล่าวมีการแก้ไข

จากนั้นทดลองใช้คำสั่ง git add เพื่อจะทดสอบใช้คำสั่ง git reset โดยการย้อนกลับมายังสถานะดังภาพตัวอย่างด้านบน

$ git add .

รูปภาพด้านล่างเป็นผลลัพธ์จากการใช้คำสั่ง git add แล้วตรวจสอบสถานะด้วยคำสั่ง git status
Continue reading

ผมว่าหลายคนที่จัด RHEL 7 หรือ CentOS 7 โดยที่ไม่ได้ใช้ Fedora 20 และไม่ได้เป็นสาวก Fedora มาก่อนจะไม่ทราบว่าอีก release ถัดไปของ RHEL, CentOS, Scientifix Linux จะเจออะไรใหม่บ้าง เพราะของเล่นใหม่ๆ จะไปโหล่ใน Fedora ก่อนอย่างน้อย 2 ปี จึงจะย้ายเข้ามาใน RHEL จากนั้นถ่ายทอดไปยัง CentOS, Scientifix Linux และ Linux Distribution ที่พัฒนาต่อจาก RHEL หรือ CentOS ตามลำดับ การเปลี่ยนแปลงอย่างสายฟ้าแลบใน RHEL 7 ไม่ได้เกิดอย่างสายฟ้าแลบหรอกครับ เขาใช้กันมานานแล้ว สำหรับการเปลี่ยนแปลงที่รอมานาน คือ systemd ที่มาสดใหม่, Docker ที่คุม security ด้วย SELinux ทำให้ เรื่อง security บน Docker ที่หลายคนถากถางกันมาเกือบ 2 ปีนี้หยุดได้แล้ว เพราะนอกจากจะคุม syscall ได้แล้วยังคุมในระดับ SELinux ด้วย ส่วน feature อื่นๆ ไม่ค่อยได้สนใจมากครับ

การมาของ systemd เปลี่ยนวิธีการทำงานของ Linux Admin ไปโดยสิ้นเชิงเพราะ systemd มาจัดการ service และ run level ในระบบปฏิบัติการ คุณหนีมันไม่พ้น ก็ต้องมาเรียนกันใหม่ อ้อ init script ที่เรียนกันมาก็เปลี่ยนใหม่ด้วย เอาล่ะการที่จะเข้าใจ systemd ได้เร็วคือการหัดใช้งานมันครับ เรามาลองจัดการ service บน systemd คำสั่งที่เราใช้งานคือ systemctl

ลองใช้คำสั่ง systemctl กันดูครับ

systemctl

เราจะพบว่า systemctl จะแสดงรายการทุกอย่างที่ systemd ควบคุมได้ ทั้ง service, timer, mount, target, automount เยอะมาก


Continue reading

มีเรื่องตลกที่เกิดขึ้นกับตัวผมเองในช่วงที่ CentOS 7 ออกมาใหม่ๆ คือการเปลี่ยน hostname เนื่องจากว่าเคยชินกับการเปลี่ยนชื่อ host ก็ชอบไปเปลี่ยนที่ /etc/hostname แต่ใน CentOS 7 และ RHEL 7 ไม่ใช่แบบนั้น เค้ามีวิธีการเปลี่ยน hostname ได้น่ารักกว่า โดยการใช้คำสั่ง hostnamectl การใช้งานคำสั่งนี้ก็ง่ายมาก ถ้าต้องการดู hostname ก็ใช้คำสั่ง hostnamectl หรือ hostnamectl status ดังนี้

hostnamectl

จะได้ผลลัพท์ดังภาพ


Continue reading

การเปลี่ยนแปลงของซอร์สโค้ดนั้นใน repository นั้น สามารถเรียกดูได้ด้วยคำสั่ง

$ git log

รูปด้านล่างเป็นตัวอย่างแสดง log ของที่การ commit ว่าในแต่ละ commit มีรายละเอียดอย่างไรบ้าง

แต่ log ที่แสดงให้เห็นด้านบน แสดงให้เห็นรายละเอียดเพียงชื่อผู้ใช้, วันที่ และ commit massage ที่มีรายละเอียดเกี่ยวกับการแก้ไขข้อมูลในซอร์สโค้ด หากต้องการให้แสดงรายละเอียดเพิ่มเติมให้เพิ่ม option -p ต่อท้ายคำสั่ง
Continue reading

บน GlusterFS นั้นเราสามารกำหนด Quota ให้กับ Volume ได้เช่น กำหนดให้ Volume A สามารถใช้งานได้เพียง 10GB หรือ 100GB ซึ่งสามารถกำหนดได้ด้วยคำสั่งง่ายๆ เพียงไม่กี่คำสั่งเท่านั้น

สมมติว่าเราได้สร้าง Distributed Volume ไว้ดังนี้

โดยมี Architecture คือ

  1. node1: 192.168.1.100, Volume name: distributed-quota
  2. node2: 192.168.1.101, Volume name: distributed-quota

จากนั้นหากต้องการกำหนด Quota ให้กับ distributed-quota volume สามารถทำได้โดยขั้นแรกให้ Enable quota ให้กับ volume ก่อน

Continue reading

เราสามารถใช้คำสั่ง Add เพื่อเพิ่มข้อมูล โดยทางเทคนิคแล้วเราจะเรียกโครงสร้างของข้อมูลที่ใช้งานว่า working tree เนื่องจากการใช้ Git ในการจัดการเวอร์ชันของข้อมูลนั้น เปรียบเสมือนรากของต้นไม้ ที่สามารถแตกกิ่งก้านสาขาจากแกนกลางได้

การเพิ่มข้อมูลทำได้โดยใช้คำสั่ง git add

เริ่มต้นด้วยการทดลองสร้างไฟล์ โดยเพิ่มข้อความลงในไฟล์ที่สร้าง ด้วยคำสั่ง

$ pico Changefile.txt

หรือใช้ editor อื่นๆ เพื่อเพิ่มข้อความ “change me” ลงในไฟล์ Changefile.txt

$ pico Deletefile.txt

หรือใช้ editor อื่นๆ  เพิ่มข้อความ “delete me” ลงใน Deletefile.txt

Continue reading

พอเราใช้งาน GlusterFS ไปซักระยะบางครั้งเราก็มีความจำเป็นที่ต้องเพิ่มพื้นที่เข้าไปใน Volume กันซึ่ง GlusterFS ก็สามารถทำได้ โดยเรียก Feature นี้ว่าการ Expand Volume

สมมติว่าเรามี Volume ที่เป็น Distributed Volume อยู่ดังภาพ

และมี Architecture ดังนี้

  1. node1: 192.168.1.100, volume name: distributed
  2. node2: 192.168.1.101, volume name: distributed


Continue reading