management streaming server configuration file system case ... ระบบจัดการ... ·...

59
ระบบจัดการไฟลคอนฟกกูเรชั่นโปรแกรมสตรีมมิ่งเซิฟเวอร กรณีศึกษา บริษัท บีบีทีวี นิวมีเดีย จํากัด Management Streaming Server Configuration File System Case Study: BBTV New Media CO., LTD. ศราวุธ ลิ้มดํารงคชิต สารนิพนธนี้เปนสวนหนึ่งของการศึกษา หลักสูตรวิทยาศาสตรมหาบัณฑิต สาขาวิชาความมั่นคงทางระบบสารสนเทศ คณะวิทยาการและเทคโนโลยีสารสนเทศ มหาวิทยาลัยเทคโนโลยีมหานคร ปการศึกษา 2556

Upload: others

Post on 03-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

ระบบจัดการไฟลคอนฟกกูเรช่ันโปรแกรมสตรีมมิ่งเซิฟเวอร

กรณีศึกษา บริษัท บบีีทีวี นิวมีเดีย จํากัด

Management Streaming Server Configuration File System

Case Study: BBTV New Media CO., LTD.

ศราวุธ ล้ิมดํารงคชิต

สารนิพนธนี้เปนสวนหนึ่งของการศึกษา

หลักสูตรวิทยาศาสตรมหาบัณฑิต สาขาวิชาความมั่นคงทางระบบสารสนเทศ

คณะวิทยาการและเทคโนโลยีสารสนเทศ

มหาวิทยาลัยเทคโนโลยีมหานคร

ปการศึกษา 2556

Page 2: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

หัวขอ ระบบจัดการไฟลคอนฟกกูเรชั่นโปรแกรมสตรีมม่ิงเซิรฟเวอร กรณีศึกษา บริษัท บบีีทวีี นิวมีเดีย จํากัด ชื่อนักศึกษา ศราวธุ ลิ้มดํารงคชิต รหัสนักศึกษา 5417810009 หลักสูตร วิทยาศาสตรมหาบัณฑิต สาขาความม่ันคงทางระบบสารสนเทศ ปการศึกษา 2556 อาจารยที่ปรึกษา ดร.วรพล ลีลาเกียรตสิกุล

บทคัดยอ

วัตถุประสงคของระบบจัดการไฟลคอนฟกกูเรชั่นโปรแกรมสตรีมม่ิงเซิฟเวอร ไดพัฒนาขึ้นเพ่ือเปนเครื่องมือชวยในการกระจายไฟลคอนฟกกูเรชั่น (Configuration) โปรแกรมสตรีมม่ิงเซิฟเวอร (WowzaMediaServer) หลายๆ เคร่ือง ซ่ึงทุก ๆ เคร่ืองทําหนาที่เหมือนกันหมด ซ่ึงหากการรีโมทเขาไปคอนฟกกูเรชั่นทุก ๆ เคร่ืองหากเกิดผิดพลาดแมแตเคร่ืองเดียว จะทําใหเกิดดาวนไทม (Downtime) ซ่ึงจะสงผลเสียแกเว็บไซตของบริษัทเปนอยางมาก ดังนั้น ระบบจัดการไฟลคอนฟกกูเรชั่นสามารถชวยแกปญหาดังกลาวได เม่ือมีการคอนฟกกูเรชั่นไฟลแลวการกระจายไฟลคอนฟกกูเรชั่นจะกระจายไปยังเคร่ืองสตรีมม่ิงเซิฟเวอรทุก ๆ เคร่ืองอัตโนมัติทันที พรอมทั้งบันทึกล็อก วันที่ เวลา ชื่อผูแกไขคาคอนฟกกูเรชั่น ทุกคร้ัง เพ่ือลดความเสี่ยงที่จะเกิดดาวนไทมแกเว็บไซตของบริษัท ทั้งยังชวยใหเกิดความสะดวก สบายในการแกไขคาคอนฟกกูเรชั่นทุกๆ เคร่ืองอีกดวย

I

Page 3: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

กิตติกรรมประกาศ

สารนิพนธน้ีไดพัฒนาจนสําเร็จดวยดี เพราะความกรุณา ความชวยเหลือ และกําลังใจจากหลายคน ขาพเจาขอขอบพระคุณมา ณ ที่น้ี

ขอขอบพระคุณ ดร.วรพล ลีลาเกียรติสกุล อาจารยที่ปรึกษาโครงงานที่กรุณาเสียสละเวลาใหคําแนะนําและคอยตรวจสอบโครงงานอยูสมํ่าเสมอ และยังคอยหาตัวอยางที่ดี ๆ มาใหอีกมากมาย

ขอขอบพระคุณบริษัท บีบีทีวี นิวมีเดีย จํากัด ที่กรุณาใหโอกาสไดมีการพัฒนาระบบ ทั้งยังอุปกรณ ขอมูล ตางๆ ที่จําเปนตอการพัฒนาระบบ ประกอบในการจัดทําสารนิพนธ

ขอขอบพระคุณอาจารยทุกๆ ทานที่ชวยประสิทธิประสาทวิชาแกขาพเจาตั้งแตขาพเจาเขามาศึกษาในท่ีแหงน้ี ขอบคุณกําลังใจจากอาจารยทุกทานที่ทําใหขาพเจาพัฒนาโครงงานน้ีใหสําเร็จไปไดดวยดี

ขอขอบพระคุณพ่ีๆ เพ่ือนๆ และทุกคนที่ชวยสอนเวลาที่โปรแกรมมีปญหาและเปนกําลังใจในยามที่เราทอ

ศราวธุ ลิ้มดํารงคชิต

กันยายน 2556

II

Page 4: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

สารบัญ หนา

บทคัดยอ I กิตติกรรมประกาศ II สารบัญ III สารบัญรูป V บทที่ 1 บทนํา 1

1.1. บทนํา 1 1.2. ปญหาและแรงจูงใจ 1 1.3. วัตถุประสงค 2 1.4. ขอบเขตขอบระบบ 2 1.5. ประโยชนที่คาดวาจะไดรับ 2

บทที่ 2 พ้ืนฐานและทฤษฎทีี่เก่ียวของ 4

2.1. การควบคุมการปรับปรุงแกไข 4 2.2. Git ขั้นพ้ืนฐาน 7 2.3. SSH (Secure Shell) 16 2.4. Shell Programming Language 18

บทที่ 3 การดําเนินงาน 21

3.1. Diagram การทํางานของระบบ 21 3.2. การออกแบบการทํางานของระบบสวนของ Bash Shell Script 23 3.3. การออกแบบการทํางานของระบบสวนของ GUI 25 3.4. การออกแบบฐานขอมูลของระบบ 30 3.5. แผนภาพแสดงการไหลของขอมูล 31 3.6. สรุปผล 35

บทที่ 4 ผลการดําเนินงาน 36

4.1. ขั้นตอนการทดลอง 36 4.2. สภาพแวดลอมของการทดลอง 36

III

Page 5: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

สารบัญ (ตอ)

หนา 4.3. ผลการทดลอง 37

บทที่5 สรุปผลดําเนินงานโครงการและขอเสนอแนะ 49

5.1. สรุปผลการดําเนินงาน 49 5.2. ขอเสนอแนะในการแกไขปญหา 49 5.3. สรุปปญหาทีพ่บ 49

IV

Page 6: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

สารบัญรูป หนา รูปที่ 2.1 ระบบ version control แบบ local 4 รูปที่ 2.2 ระบบ version control แบบรวมศูนย 5 รูปที่ 2.3 ระบบ Version Control แบบกระจายศูนย 6 รูปที่ 2.4 การเก็บขอมูลโดยอางอิงกับการแกไขที่เกิดขึน้กับไฟล 7 รูปที่ 2.5 การเก็บขอมูลแบบ Snapshot 8 รูปที่ 2.6 แสดงองคประกอบพ้ืนที่ของGit 9 รูปที ่2.7 ระบตุัวตนผูใชงาน Git 10 รูปที ่2.8 สรางแหลงเก็บขอมูลของ git 10 รูปที ่2.9 นําขอมูลจากเครื่องเซิฟเวอรมายังเคร่ืองลูกขาย 10 รูปที ่2.10 ยืนยันการแกไขไฟล 11 รูปที ่2.11อัพไฟลไปยังเซฟิเวอร 11 รูปที ่2.12ดูบนัทึกการยืนยนัการแกไขไฟล 11 รูปที ่2.13 การแสดงสถานะของ Git 12 รูปที ่2.14ยอนกลับไปใชไฟลเวอรชั่นกอนหนา 12 รูปที ่2.15แสดง flow การแกไขไฟลแบบไมมี branch 13 รูปที ่2.16 แสดง flow การแกไขไฟลแบบมี branch 13 รูปที ่2.17 แสดง branch default ที่ Git มีมาให 14 รูปที ่2.18 การสราง branch เพ่ิม 14 รูปที ่2.19 เปลี่ยนไปทํางานที่ branch อ่ืน 14 รูปที ่2.20 หลักการทํางานของ RSA 16 รูปที ่2.21 การสงขอมูลไปแฮช 17 รูปที ่2.22 การเขารหัสเมสเซสไดเจสตดวยกุญแจสวนตวัเพ่ือเปนการลงลายเซ็น 17 รูปที ่2.23 ขั้นตอนการเปรียบเทียบความถูกตอง 18 รูปที ่2.24 โครงสรางพ้ืนฐานการทํางานของ UNIX 18 รูปที ่2.25 ตัวอยาง bash shell 19 รูปที ่2.26 สั่งไฟล bash shell ใหทํางาน 19 รูปที ่3.1 การออกแบบ Diagram ภาพรวมการทํางานของระบบ 21 รูปที่ 3.2 การออกแบบ Flowchart การทํางานของไฟล post-receive 23

V

Page 7: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

สารบัญรูป (ตอ) หนา รูปที่ 3.3 การออกแบบ Flowchart การทํางานของไฟล deploy.sh 24 รูปที่ 3.4 การออกแบบ Flowchart การทํางานภาพรวมของโปรแกรม GUI 25 รูปที่ 3.5 การออกแบบการทํางานของโปรแกรม GUI สวนการเปลี่ยนรหัสผานของตัวเอง 26 รูปที่ 3.6 การออกแบบการทํางานของโปรแกรม GUI สวนการจัดการสมาชิก 27 รูปที่ 3.7 การออกแบบการทํางานของโปรแกรม GUI สวนการจัดการ Application 28 รูปที่ 3.8 การออกแบบการทํางานของโปรแกรม GUI สวนการจัดการ Config Application 29 รูปที่ 3.9 การออกแบบฐานขอมูลการของโปรแกรม GUI 30 รูปที่ 3.10 แผนภาพแสดงการไหลของขอมูลระดับ 0 31 รูปที่ 3.11 แผนภาพแสดงการไหลของขอมูลระดับที่ 1 การเพ่ิม Member 32 รูปที่ 3.12 แผนภาพแสดงการไหลของขอมูลระดับที่ 1 การเพ่ิม Application 32 รูปที่ 3.13 แผนภาพแสดงการไหลของขอมูลระดับที่ 1 การบันทึกขอมูล Configuration Application ไปยัง GIT Server 33 รูปที่ 3.14 แผนภาพแสดงการไหลของขอมูลระดับที่ 1 การบันทึกขอมูล Configuration Application จาก GIT Server ไปยังเคร่ือง WowzaMediaServer ทุกเคร่ืองอัตโนมัติ 33 รูปที่ 3.15 แผนภาพแสดงการไหลของขอมูลระดับที่ 1 การออกรายงาน Application 34 รูปที่ 3.16 แผนภาพแสดงการไหลของขอมูลระดับที่ 1 การออกรายงาน Member 34 รูปที่ 4.1 GUI หนา Login 37 รูปที่ 4.2 GUI หนา Manage User 38 รูปที่ 4.3 GUI หนา Create new user 38 รูปที่ 4.4 GUI หนา Manage User ที่มี User ที่เพ่ิมเขาไป 39 รูปที่ 4.5 GUI ลบ User 40 รูปที่ 4.6 GUI หนาแจงเตือนเพ่ิม User ซํ้ากับทีมีอยูแลว 40 รูปที่ 4.7 GUI หนา Change Password 41 รูปที่ 4.8 GUI หนาแจงเตือน Password ปจจุบันไมถูกตอง 41 รูปที่ 4.9 GUI หนาแจงเตือนใหกรอก Password ใหมใหตรงกันทั้ง 2 คร้ัง 42 รูปที่ 4.10 GUI หนา Manage Application 43 รูปที่ 4.11 GUI หนา Create Application 44 รูปที่ 4.12 GUI หนาแจงเตือน Application มีอยูกอนแลว 44

VI

Page 8: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

สารบัญรูป (ตอ) หนา รูปที่ 4.13 GUI หนาแกไขขอมูลใน Application 45 รูปที่ 4.14 GUI ลบ Application 46 รูปที่ 4.15 GUI หนา Config Application 47 รูปที่ 4.16 แสดงคาวันเวลาพรอมทั้งคาขางตนของไฟล Configuration 48 รูปที่ 4.17 บนัทึก Log การแกไขคา Configuration file Application 48

VII

Page 9: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

1

บทท่ี 1 บทนํา

1.1 บทนํา

ในปจจุบันสื่ออินเตอรเน็ตมีเน้ือหาสาระ (Content)ท่ีหลากหลายรูปแบบ ท้ัง ขอความ, บทความ,รูปภาพ, เสียงและวีดีโอ ซ่ึงเว็บไซตท่ีใหบริการเน้ือหาสาระประเภทวีดีโอมีมาก การแขงขันทางธรุกิจเว็บไซตประเภทนี้มีสูง ซ่ึง บริษัท BBTV New Media จํากัด ก็เปนผูใหบริการเว็บไซต ประเภทวีดิโอ โดยมีเนื้อหาสาระที่เปนรายการตางๆ ของสถานีโทรทัศสสีกองทัพบกชอง 7 และมีเคร่ืองเซิฟเวอร (Server) ท่ีทําหนาท่ีคอยใหบริการเผยแพรวีดีโอ (Video Streaming) จํานวนหลายเครื่อง ซ่ึงการจะบริหารจัดการคาคอนฟกกูเรชั่น (Configuration) วีดิทัศนเซิฟเวอรทุกเครื่องใหตรงกันท้ังหมด เปนไปดวยความยาก เพราะจะตองรีโมท (Remote) เขาไปคอนฟกทีละเครื่อง และเครื่องเซิฟเวอรแตละเครื่องก็จะมีการคอนฟกหลายแอพพลิเคช่ัน (Application) เชน วีดีโอออนดีมาน (Video On Demand) และ ถายทอดสด (Live Streaming) ก็จะตอง คอนฟกแตกตางกัน หากมีการแกไขคาคอนฟกกูเรช่ันแลวเกิดขอผิดพลาด ก็จะทําให เครื่องเซิฟเวอรท่ีใหบริการเผยแพรวีดีโอนั้นไมสามารถใหบริการเผยแพรวีดีโอได 1.2 ปญหาและแรงจูงใจ

การรีโมทเขาไปท่ีเซิฟเวอรทีละเคร่ืองเพ่ือคอนฟกกูเรช่ันวีดีโอสตรีมม่ิงเซิฟเวอร ใหเหมือนกันทุกเครื่องและ ใหมีความพรอมใชงานตลอดเวลานั้น เปนไปไดคอยขางลําบาก หากแกไขผิดก็สงผลใหเซิฟเวอรเคร่ืองนั้นไมพรอมใชงานได ตองตรวจสอบคาคอนฟกในทุกเคร่ืองวาผิดพลาดตรงไหน ทําใหเสียเวลาเปนอยางมากและหากตรวจสอบไมดีแลวทําใหเกิดวีดีโอสตรีมม่ิงเซิฟเวอรไมสามารถทํางานได จะเกิดเปนดาวนไทม (Downtime) ท่ีนานข้ึนไปอีก สงผลใหเกิดผลกระทบกันธุรกิจของบริษัทในมูลคาท่ีสูงมาก

ถาหากมีการจัดการคาคอนฟกกูเรชั่นเซิฟเวอรใหสามารถ จัดการไดจากท่ีเครื่องเซิฟเวอรเครื่องเดียว ครั้งเดียวแลวกระจายไฟลคอนฟกกูเรช่ันไปยังเคร่ือง เซิฟเวอรทุกเครื่องพรอมๆกัน และมีการควบคุมเวอรชั่นของไฟลคอนฟกกูเรชั่นไว สามารถสั่งยอนกลับไปใชเวอรช่ันเกาไดทันที ก็จะสงผลให ลด ดาวนไทมได รวมถึงลดระยะเวลาในการทํางาน และ ลดความซับซอนของงานลงไปไดเยอะ อีกท้ังยังรองรับการเพ่ิมเครื่องเซิฟเวอรในอนาคตก็เปนไปไดงายข้ึน

จากปญหาดังกลาว จึงไดมีการศึกษาเพ่ือนําระบบเวอรช่ันคอนโทลเขามาประยุกตใชงาน กับการจัดการไฟลคอนฟกกูเรช่ันวีดีโอสตรีมม่ิงเซิฟเวอรซ่ึงคงไวความถูกตองครบถวนของขอมูล (Integrity) เพ่ือใหวีดีโอสตรีมม่ิงเซิฟเวอรมีความพรอมใชงานอยูตลอดเวลา (Availability)

Page 10: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

2

ซ่ึงถาหากวาการปรับแตงคาคอนฟกกูเรชั่นวีดีโอสตรีมมิ่งเซิฟเวอรมีขอผิดพลาด ก็สามารถสั่งยอนกลับไปใชคาเดิมไดอยางรวดเร็ว ทําใหลดผลท่ีจะกระทบกับธุรกิจของบริษัทลงไปไดมาก

1.3 วัตถุประสงค

1.3.1 ศึกษาการระบบจัดการเวอรช่ันคอนโทลดวยโปรแกรม Git 1.3.2 ศึกษาโปรโตคอล SSH เพ่ือรีโมทเขาไปยังเคร่ืองเซิฟเวอร และ scp เพ่ือก็อปป

ไฟลขามเครื่องเซิฟเวอรในระบบปฏิบัติการลีนุกซ 1.3.3 ศึกษาการเขียนโปรแกรมดวย bash shell เพ่ือสั่งการควบคุมการกระจายคา

คอนฟกกูเรช่ันไปยังเคร่ืองเซิฟเวอรทุกๆเครื่อง 1.3.4 เขียนโปรแกรม Graphic User Interface ใหยูสเซอรใชคอนฟกกูเรชั่นโปรแกรม

WowzaMediaServer ไดสะดวก 1.3.5 ทดสอบการทํางานและสรุปผล 1.3.6 จัดทําเอกสารโครงงาน

1.4 ขอบเขตของระบบ

1.4.1 ทําโปรแกรม GUI ใหยูสเซอรใช Configuration Application ไดอยางงาย สะดวก

1.4.2 โปรแกรม GUI สามารถเพิ่ม ลบ แกไข Member โดยจํากัดสิทธิ์ใหเฉพาะ Admin เทาน้ัน

1.4.3 โปรแกรม GUI กําหนดสิทธิ์ให Member สามารถเปล่ียนแปลง Password ของตัวเองได

1.4.4 โปรแกรม GUI สามารถเพ่ิม ลบ แกไข Application ได 1.4.5 โปรแกรม GUI สามารถแกไข Configuration Application ได 1.4.6 โปรแกรม GUI สามารถ Deploy Configuration Application File ไปยังเครื่อง

WowzaMediaServer ทุกเคร่ืองไดแบบอัตโนมัติ

1.5 ประโยชนท่ีคาดวาจะไดรับ 1.5.1 ความรูความเขาใจเก่ียวกับรูปแบบการทํางานของซอสโคดเวอรช่ันคอนโทล 1.5.2 ลดภาระ และความซับซอนในการทํางาน ท่ีจะตองรีโมทเขาไปคอนฟกกูเรช่ันท่ี

เซิฟเวอรท่ีทําหนาท่ีเหมือนกัน หลายๆ เครื่อง

Page 11: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

3

1.5.3 ลดดาวนไทมท่ีอาจจะเกิดข้ึนจากการคอนฟกเซิฟเวอรผิด หรือคอนฟกไมเหมือนกันทุกเครื่อง ทําใหทํางานแตกตางกัน

1.5.4 มีการแบงไฟลคอนฟกออกเปนเวอรชั่น สามารถเรียกใชยอนหลังไดทันที และถือเปนการแบ็คอัพไฟลคอนฟกกูเรช่ันไปในตัว

1.5.5 รองรับการขยายตัวของเว็บไซตืของบริษัทใหเปนไปไดงายย่ิงข้ึน

Page 12: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

2.1 การควบ Vers

หลายๆ ไฟล

จากท่ีจุดดําเนินกVersion1 ก็ย

ระบSystem แบบSystem แบบออกไป ท้ังข

บคุมการปรั

sion Coล ซึ่งสามารถ

รูปท่ี 2.1 จะการปจจุบันขยังคงถูกเก็บไบ Versionบรวมศูนย (Cบกระจายศูนอดีและขอเสี

พื้นฐา

ับปรุงแกไข

ntrol เปนรท่ีจะเรียกเวอ

รูปที่ 2.1 ร

พบวา ภายใของแฟมขอมูไว สามารถเรี

n Control หCentralized นย (Distributeสย แตะจะยังค

บททีานและทฤษ

(Version C

ระบบท่ีจัดเก็อรช่ันใด เวอร

ระบบ version

ในเครื่องคอมมูลนี้คือ Versรียกยอนกลับหลักๆ จะมีอVersion Coed Version คงเก็บไฟลข

ที่ 2 ษฎีที่เกี่ยวข

ontrol) [1]

ก็บการเปล่ียนรชั่นหนึ่ง ขอ

n control แบ

มพิวเตอรจะมีion 3 แลบมาดู หรือแกยู 2 แบบดวontrol SysteControl Sysอมูลเปน Ver

ของ

นแปลงท่ีเกิดงไฟลนั่นกลับ

บบ local

มีรุนของแฟมะการแกไขในกไข เม่ือไรก็ยกันคือ ระบ

ems) และ ระstems) แตละrsion เหมือน

ดข้ึนกับไฟลหบมาดูเม่ือไรก็

ขอมูล 3 Verน Version สามารถทําไบบ Versionะบบ Versionะแบบมีขอแตนกัน

4

หนึ่ง หรือก็ได

rsion โดย2 และ

ด n cornel n Control ตกตางกัน

Page 13: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

5

2.2.1 ระบบ Version Control System แบบรวมศูนย (Centralized Version Control Systems)

หลักการทํางานของระบบ Version Control System แบบรวมศูนย คือจะเก็บไฟลท้ังหมดไวในท่ีเดียวคือเคร่ืองเซิฟเวอร และผูใชหลายๆ คนสามารถตอเขามาเพ่ือดึงไฟลจากเครื่องเซิฟเวอรไปแกไขได ระบบการทํางานแบบรวมศูนยน้ีไดถูกนํามาใชเปนเวลาหลายป

ระบบรวมศูนยมีขอดีกวาระบบ Local หลายๆ ดาน เชนทุกคนสามารถรูไดวา คนอ่ืนในโปรเจ็คกําลังทําอะไร ผูควบคุมระบบสามารถควมคุมไดอยางละเอียดวา ใครสามารถแกไขอะไรไดบาง การจัดการแบบรวมศูนยในท่ีเดียวทําไดงายกวาการจัดการฐานขอมูลในเครื่อง client แตละเครื่องเยอะ

รูปท่ี 2.2 ระบบ version control แบบรวมศูนย

จากรูปท่ี 2.2 จะพบวาระบบนี้มีจุดออนตรงท่ีการรวมศูนยคือ ถาเครื่องเซิฟเวอรืลม ก็ไมมีใครสามารถดู แกไข ไฟลไดเลย และถาฮารดดิสของเครื่องเซิฟเวอรพัง เสียหายข้ึนมา แลวไมมีการแบ็คอัพไว ขอมูลท้ังหมดก็จะศูนยหายไปเลย

2.2.2 ระบบ Version Control System แบบกระจายศูนย (Distributed Version Control Systems)

Page 14: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

6

หลักการทํางานของระบบ Version Control System แบบกระจายศูนยคือไฟลทุกไฟลจะกระจายอยูท่ีเครื่อง Client และอยูท่ีเครื่องเซิฟเวอรดวยนั้นเอง ซ่ึงถาหากวาเซิฟเวอรเกิดลมไป ก็ยังจะสามารถทํางานตอไปได และเมื่อเซิฟเวอรพรอมใชงานอีกที ก็สามารถอัพไฟลเขาไปยังเซิฟเวอรตอไดทันที

รูปที่ 2.3 ระบบ Version Control แบบกระจายศูนย

จากรูปท่ี 2.3 ระบบเหลาน้ีจะทํางานกับ เซิฟเวอรท่ีเก็บไฟล หลายๆ ท่ีไดเปนอยางดี ทําใหสามารถทํางานกับคนหลายๆกลุม ซ่ึงทํางานในรูปแบบตางกันในโปรเจคเดียวกันไดงาย เน่ืองจากระบบเหลาน้ีสนับสนุนการทํางานไดหลากหลายรูปแบบ ซ่ึงอาจจะทําไดยากในระบบแบบรวมศูนย ชื่อโปรแกรมท่ีใชระบบ Version Control แบบกระจายศูนยมีหลากหลายย่ีหอ เชน Git, Mercurial, Bazaar หรือ Darcs

Page 15: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

7

2.2 Git ข้ันพ้ืนฐาน Git ถูกสรางข้ึนเม่ือป 2005 โดยไลนัส ทอรวอลด ผูสรางลีนุกซ โดยพัฒนาจาก

ประสบการณท่ีมีอยูระหวางการใชงาน BitKeeper โดยมีวัตถุประสงคดังนี้ ความรวดเรว็ในการทํางาน ดีไซตท่ีเรียบงาย สนับสนุนการทํางานหลายทางพรอมๆ กัน (เชนม ีbranch เปนพันๆ) แยกศูนยเก็บขอมูลจากศูนยกลางศูนยเดียว สามารถรองรับโปรเจคขนาดใหญไดเปนอยางดี เชน ลีนุกซเคอรเนล

2.2.1 หลักการทํางานของ Git [2] เม่ือมีการแกไขไฟลตางๆ เกิดข้ึน ระบบอ่ืนๆ จะมองขอมูลในรูปแบบของไฟลและการ

แกไขตางๆ ท่ีเกิดข้ึนกับไฟลแตละไฟล ดังรูป

รูปที่ 2.4 การเก็บขอมูลโดยอางอิงกับการแกไขท่ีเกิดข้ึนกับไฟล

จากรูปท่ี 2.4 การเก็บขอมูลโดยอางอิงกับการแกไขท่ีเกิดกับไฟลจะตางจาก Git ท่ีจะเก็บขอมูลในลักษณะเปนเสมือนภาพถาย (Snapshot) ของระบบไฟลขนาดเล็กๆ ทุกครั้งท่ีมีการ commit หรือบันทึกสถานะของโปรเจคลงไปใน Git มันจะทําการถายภาพของไฟลท้ังหมดในตอนนั้นและบันทึกการอางอิงไปยัง snapshot น้ัน เพ่ือใหการจัดเก็บน้ันมีประสิทธิภาพ ถาไฟลใดท่ีไมไดมีการเปล่ียนแปลง Git ก็จะไมบันทึกไฟลน้ันอีกคร้ัง เพียงแตจะทําการเชื่อมโยงไปยังไฟลเดิมท่ีเคยถูกบันทึกเอาไวอยูแลว

Page 16: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

8

รูปท่ี 2.5 การเก็บขอมูลแบบ Snapshot

จากรูปท่ี 2.5 การทํางานสวนใหญของ Git จะใชทรัพยากรในเครื่องลูกขายเทาน้ัน ปกติจะไมมีขอมูลใดๆ ท่ีจําเปนตองใชจากคอมพิวเตอรเครื่องอ่ืนๆ ในเน็ตเวิรก ซ่ึงตางจากระบบอ่ืนๆ ท่ีตองใชงานระบบเน็ตเวิรกในการสงขอมูลจํานวนมาก จึงทําให Git ทํางานไดเร็วกวาระบบอ่ืนๆ มาก และถึงแมวาเคร่ืองเซิฟเวอรท่ีเก็บไฟลจะลม ก็ยังสามารถเรียกดู หรือแกไขไฟลน้ันได

ทุกอยางท่ี Git ทําการบันทึกเอาไว จะถูกทําการ Checksum แลวนํามาใชเปนตัวอางอิง น่ันทําใหไฟล หรือ ไดเรคทอรี่ใดถูกแกไขแลว Git จะไมตรวจพบ กลไกท่ี Git ใชในการทํา Checksum คือการแฮช (hash) แบบ SHA-1 ซ่ึงผลลัพธจะไดออกมาเปนตัวอักษร 40 ตัวท่ีแทนเลขฐานสิบหก (0-9 และ a-f) จากการคํานวณเนื้อหาในไฟลหรือโครงสรางของไดเร็คทอรี่ของ Git ตัวอยางเชน

24b9da6552252987aa493b52f8696cd6d3b00373 จะเห็นไดวาผลของการแฮชเหลาน้ีอยูในทุกท่ีใน Git เพราะจะถูกใชบอยครั้ง ซ่ึงจริงๆ

แลว Git ไมไดเก็บบันทึกขอมูลทุกอยางตามชื่อไฟล แตเก็บในฐานขอมูลของ Git แลวสามารถอางถึงดวยคาแฮชของขอมูลไฟล

2.2.2 วัฏจักรการเปลี่ยนแปลงของแฟมขอมูลบนซอฟตแวร Git Version Control Git จะมีสถานะของไฟลอยู 3 สถานะคือ ยืนยันแลว (committed), ถูกแกไข (modified)

และอยูในข้ันตอน staged ซ่ึง Committed หมายถึงขอมูลท่ีถูกบันทึกเรียบรอยแลวในฐานขอมูลในเครื่องคอมพิวเตอร modified หมายถึงไฟลไดถูกแกไขแตยังไมไดยืนยันลงในฐานขอมูล สวน Staged หมายถึงไดทําเคร่ืองหมายไวท่ีไฟลท่ีถูกแกไขในเวอรช่ันปจจุบัน เพื่อรอการ commit ใน snapshot ถัดไป

Page 17: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

9

รูปที่ 2.6 แสดงองคประกอบพ้ืนท่ีของ Git

จากรูปท่ี 2.6 จะเห็นวา Git directory เปนท่ีท่ี Git ใชเก็บ metadata และ object ของฐานขอมูลของโปรเจคตางๆ สวนนี้เปนสวนสําคัญท่ีสุดของ Git และเปนสวนท่ีจะถูกคัดลอกออกมาเม่ือมีการ clone คลังขอมูลจากคอมพิวเตอรเครื่องอ่ืนๆ

Working directory เปนเวอรชั่นหนึ่งของไฟลในโปรเจคท่ีถูกดึงออกมาจากฐานขอมูลท่ีถูกบีบอัดไวใน Git directory แลวเก็บไวในดิสกเพ่ือใหนําไปใชหรือเอามาแกไข

Staging area เปนไฟลธรรมดาไฟลนึง โดยท่ัวไปก็อยูใน Git directory ของเคร่ืองคอมพิวเตอรลูกขาย ซ่ึงเก็บขอมูลสวนท่ีคุณจะทําการ commit ในครั้งถัดไป บางคร้ังก็เรียกวาดัชนี (index) แตปกติก็จะเรียกวา staging area

กระบวนการขั้นตอนพ้ืนฐานของ Git มีลักษณะดังนี้ 1) แกไขไฟลใน working directory ภายในเครื่องคอมพิวเตอรลูกขาย 2) แลวทําการ stage ไฟลเหลาน้ันเพ่ือใหมีการใส snapshot ลงไปใน staging area

ของเครื่องคอมพิวเตอรลูกขาย 3) ทําการยืนยันซึ่งนําไฟลท่ีอยูใน staging area ไปเก็บอยางถาวรใน Git Directory เมื่อไฟลอยูใน Git directory มันจะถือวาเปนสถานะ committed ถาไฟลถูกแกไขแลวถูก

เพ่ิมลงใน staged ก็จะเปนสถานะ modified

Page 18: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

10

2.2.3 การตั้งคาการใชงาน Git [3] เริ่มตนการใชงาน Git ตองระบุตัวตนผูใชกอน โดยสั่งดังนี ้

รูปท่ี 2.7 ระบุตัวตนผูใชงาน Git

จากรูปท่ี 2.7 เปนการระบุตัวตนผูใชงาน Git คําสั่งสรางแหลงเก็บขอมูลของแฟมขอมูล ใชคําสั่งดังนี ้

รูปท่ี 2.8 สรางแหลงเก็บขอมูลของ Git

จากรูปท่ี 2.8 เปนการสรางแหลงเก็บขอมูลของ Git การนําขอมูจากเครื่องเซิฟเวอรมายังเครื่องลูกขาย สั่งดังนี ้

รูปท่ี 2.9 นําขอมูลจากเครื่องเซิฟเวอรมายังเคร่ืองลูกขาย

จากรูปท่ี 2.9 เปนการนําขอมูลจากเครื่องเซิฟเวอรมายังเคร่ืองลูกขาย เมื่อมีไฟลขอมูลท่ีตองการอัพไปยังเครื่องเซิฟเวอร จะตองทําการยืนยันการแกไขซะกอน

โดยใชคําสั่ง ดังตอไปน้ี

Page 19: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

11

รูปท่ี 2.10 ยืนยันการแกไขไฟล

จากรูปท่ี 2.10 เปนการยืนยันการแกไขไฟล จากนั้นจึงอัพไปยังเคร่ืองเซิฟเวอร โดยใชคําสั่ง ดังนี ้

รูปท่ี 2.11 อัพไฟลไปยังเซิฟเวอร

จากรูปท่ี 2.11 เปนการอัพไฟลไปยังเซิฟเวอร เม่ือ Git มีการเก็บบันทึกการยืนยัน และอัพไฟลไปยังเซิฟเวอรแลว เราสามารถ

ตรวจสอบดูการบันทึกน้ันๆ ได โดยใชคําส่ังดังนี้

รูปที่ 2.12 ดบัูนทึกการยืนยันการแกไขไฟล

จากรูปท่ี 2.12 เปนการสั่งดูบันทึกการยืนยันการแกไขไฟล

หากมีการแกไขไฟลแตยังไมไดยืนยันการแกไข Git จะรูทันทีวามีการเปล่ียน แปลงเกิดข้ึน และเม่ือส่ังดูสถานะ Git จะฟองวามีการแกไขและบอกวาใหทําการยืนยันการแกไขไฟล ดังตัวอยาง

Page 20: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

12

รูปที่ 2.13 การแสดงสถานะของ Git

จากรูปท่ี 2.13 เปนการแสดงสถานะของ Git เมื่อตองการยอนกลับไปใชไฟลเวอรช่ันกอนจะเปล่ียนแปลง ใหดูท่ี Git บันทึกไว นําคา

hash SHA-1 มาใสกับคําส่ัง reset ดังตัวอยาง

รูปท่ี 2.14 ยอนกลับไปใชไฟลเวอรชั่นกอนหนา

จากรูปท่ี 2.14 จะเห็นวาเม่ือใชคําสั่ง reset โดยระบุคา hash SHA-1 แลว Git จะ

ยอนกลับไปใชเวอรช่ันกอนหนาให

Page 21: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

2.2.

master มาใหbranch ไดconfiguratioไวเซิฟเวอรไ

เห็นวาเปนก

จากmaster, nicเวอรช่ัน และพัฒนาไดถึงกับเซิฟเวอร

4 Git BranGit Bra

ห ในกรณีท่ีต เชน bran

on จนถึงจุดทีได

รูปท

จากรูป 2ารแกไขตาม

รปู

กรูปท่ี 2.16 ce_feature, ะเพ่ือใหจํางาจุดท่ีนาพอใจรจริง ตอไปได

nching [3] anch คือ กิ่งตองการจะมพีืch pre-pro

ท่ีพึงพอใจแลว

ที่ 2.15 แสดง

2.15 แสดง fมปกติท่ัวไป คื

ปที่ 2.16 แสด

จะเห็นวากาvery_nice_

าย จึงไดตั้งชืจแลว ก็สามาด

งการสาขาท่ีเพ้ืนท่ีเก็บไฟลoduction ไวว ก็สามารถ

ง flow การแก

flow การแกไคือไฟลเดียว

ดง flow การแ

ารแกไขไฟลเ_feature ซึ่งตช่ือ branch ารถ merge

เพ่ิมข้ึนมาจาลขอมูลเพิ่มจวสําหรับเก็merge รวม

กไขไฟลแบบ

ไขไฟลแบบที แกเปน vers

แกไขไฟลแบ

เดียวกัน สามตามรูปแลว สตามจุดประรวมเขากับ

าก โดยปกติคาก branch mบไฟล ท่ีใชทเขากับ bran

บไมมี branch

ท่ีไมมี barnchsion ไปเรื่อย

บบมี branch

มารถแบงไดสามารถแบงกะสงคของการbranch ma

คาเริ่มตนของmaster ก็สาทดสอบ เม่ือch master แ

h

h ธรรมดาท่ัวๆ

เปน 3 braกันไปพัฒนารพัฒนาไฟลนster เพ่ือนํา

13

ง Git จะมี มารถเพ่ิม อทดสอบ แลวอัพไป

วๆ ไป จะ

anch คือ ไฟล ตามนั้นๆ เมื่อาไปใชงาน

Page 22: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

14

รูปท่ี 2.17 แสดง branch default ท่ี Git มีมาให

จากรูปท่ี 2.17 เปนคําสั่งแสดง branch ซ่ึงคาเริ่มตน Git จะมี branch master มาใหหากตองการสราง branch เพิ่มเอง ก็สามารถทําได โดยสั่งดังตัวอยางตอไปน้ี

รูปท่ี 2.18 การสราง branch เพ่ิม

จากรูปท่ี 2.18 เปนการสราง branch เพ่ิมข้ึนมา 2 branch คือชื่อวา vdo-ondem และ live-streaming พอสรางเสร็จก็จะมีช่ือ branch ปรากฏข้ึนมา แตสังเกตเครื่องหมายดอกจันวายังอยูท่ี branch master ซ่ืงหมายความวายังคงทํางานอยูท่ี branch master การจะเปล่ียนไปทํางานบน branch อ่ืนๆ สามารถทําไดโดยใชคําสั่งตามตัวอยางดังนี้

รูปท่ี 2.19 เปล่ียนไปทํางานท่ี branch อ่ืน

Page 23: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

15

จากรูปท่ี 2.19 เม่ือสั่งเปล่ียนไปทํางานท่ี branch vdo-ondemand แลว ลองส่ังแสดง branch ท่ีมีอีกครั้งจะพบวา เครื่องหมายดอกจันยายไปอยูท่ี branch vdo-ondemand แลว

2.2.5 Git Server [4] Git Server มีมากมายหลายย่ีหอใหเลือกใช แตท่ีเปนท่ียอดนิยม และที่ผูจัดทําโปรเจค

เลือกใชคือ โปรแกรม Gitolite ซ่ึงรองรับการทํางานท้ังหมดตามท่ีไดกลาวมาแลว Protocol ท่ีใชติดตอกันระหวาง Git Server และ Git client น้ันมีหลายชองทางเชน Local Protocol, SSH (Secure Shell), http/https, Git protocol ซ่ึงแตละ protocol ก็มีขอดีขอเสียแตกตางกันไป ดังนี้

1) Local Protocol ทํางานดวยระบบไฟล ซ่ึงก็คือทํางานบนเครื่องตัวมันเอง หาก

ตองการรับสงไฟลขามเครื่อง ตองอาศัยระบบเอ็นเอฟเอส (NFS) เขาชวย

2) SSH Protocol ทํางานบน Protocol SSH ตามชื่อของมัน มีความปลอดภัยสูงในการ

รับสงขอมูลตามหลักการทํางานของ SSH อยูแลว การใชงาน Git รวมกับ SSH protocol น้ีมี

ขอดีกวา protocol อ่ืนๆ หลายอยาง ไมวาจะเปนเรื่อง permission ของไฟลท่ีอางอิงกับ

permission user ของระบบ Linux โดยตรง การจะทรานเฟอรไฟลกันจะตองมีการ

authenticated กันทุกครั้ง แตหากตองการใชงานแบบไมมีการ authenticated จะไมสามารถทํา

ได เพราะพ้ืนฐานของ SSH อยูแลว

3) Git Protocol เปน protocol ของ Git โดยเฉพาะ ทํางานบน TCP Port 9418 ขอดี

คือเปนโปรแกรมท่ีมีขนาดเล็ก ทํางานไดรวดเร็ว และสามารถใหบุคคลอ่ืนๆ ซ่ึงไมใชเจาของไฟล

เทาน้ันแกไขไฟลได แตขอเสียก็คือ ไมมีการ authenticated หากตองใชงานกับไฟลท่ีตองการ

ความปลอดภัยจึงไมเหมาะสม

4) http/https Protocol เปน protocol ตัวลาสุดท่ี Git พัฒนาใหสามารถทํางานรวมดวย

ได หลักการทํางานคลายๆกับ http ท่ัวๆ ไป ขอดีคือใชงานงาย ใครก็สามารถเอาขอมูลเผยแพร

ไปใชงานไดเลย หากตองการความปลอดภัยระหวางการรับสงขอมูล ก็สามารถใช SSL เขามา

ชวยเสริมได และไฟรวอลลท่ัวๆไป จะอนุญาติใหใชงาน port 80, 443 ไดอยูแลว แตขอเสียคือ

ใชทรัพยากรทราฟฟกจํานวนคอนขางมากเมื่อเทียบกับ protocol อ่ืนๆ และ permission ของ

ไฟลจะเปนแบบ read-only แตจะแกไขไดก็เฉพาะผูเปนเจาของไฟลน้ันเทาน้ัน

ในท่ีน้ีผูจัดทํา เลิอกใช SSH protocol เพราะมีความปลอดภัยสูงในการรับสงขอมูล และเหมาะสมกับลักษณะงานที่ออกแบบไว เพราะไมตองการจะแชรไฟล Configuration ใหกับบุคคลอ่ืน ท่ีอยูภายนอกองคกร

Page 24: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

16

2.3 SSH (Secure Shell) [5]

SSH เปน Protocol ท่ีใชเช่ือมตอ สื่อสารกันระหวางเคร่ืองคอมพิวเตอรบนระบบเครือขาย ทํางานผาน Port 22 การติดตอสื่อสารท้ังหมดจะมีการเขารหัสลับขอมูล (Encryption) ปจจุบันอยูท่ีเวอรชั่น 2 ลักษณะการทํางานจะเปน Client-Server โดยเม่ือมีการเช่ือตอโดย SSH ระบบตอง authentication กอน เพ่ือระบุตัวตนของ client เม่ือผานแลว ก็ใชงานได โดย Encryption โดย authentication มีแบบ RSA และ DSA และ Encryption ใชวิธี IDEA, DES (Data Encryption Standard) และ Blowfish

2.3.1 หลักการทํางานของ RSA

รูปท่ี 2.20 หลักการทํางานของ RSA

จากรูปท่ี 2.20 เปนหลักการทํางานของ RSA 1) เม่ือ Client SSH ไปยัง Server แลว Client จะทําการรองขอ Public Key ของ

Server จากเคร่ือง Server เคร่ือง Server ก็จะสงมาให 2) Client ทําการ encrypt ขอมูลการ authentication กับ Public Key ท่ีไดรับมาจาก

เครื่อง Server 3) Client สงขอมูลท่ี Encryption แลว คือ Cipher text สงไปให เครื่อง Server 4) เครื่อง Server เม่ือไดรับ Cipher text แลว ก็ทําการ Decrypt โดยใช Private Key

Page 25: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

17

2.3.2 หลักการทํางานของ DSA 1) เม่ือผูใชตองการสงขอมูลไปยังผูรับ ขอมูลนั้นจะถูกนําไปเขาฟงกชั่นทางคณิตสตร

เรียกวา แฮช จะได เมสเซสไดเจสต (Message Digest)

รูปท่ี 2.21 การสงขอมูลไปแฮช

จากรูปท่ี 2.21 เปนการสงขอมูลไปแฮช 2) จากน้ันนําเมสเซสไดเจสตมาเขารหัสดวยกุญแจสวนตัวของผูสงจะไดลายเซ็นต

ดิจิตอล

รูปท่ี 2.22 การเขารหัสเมสเซสไดเจสตดวยกุญแจสวนตัวเพ่ือเปนการลงลายเซ็น

จากรูปท่ี 2.22 เปนการเขารหัสเมสเซสไดเจสตดวยกุญแจสวนตัวเพ่ือเปนการลงลายเซ็น

3) ผูรับจะนําลายเซ็นดิจิตอลมาแฮชจะไดเมสเซสไดเจสต และนําลายเซ็นดิจิตอลมาถอดรหัสดวยกุญแจสาธารณะของผูสง จะไดเมสเซสไดเจสต แลวนําเมสเซสไดเจสตท่ีไดท้ัง 2 อันมาเปรียบเทียบกัน ถาตรงกัน เปนการยืนยันวา ลายเซ็นตดิจิตอลนั้นมาจากผูสงจริง และถือไดวา ขอมูลท่ีสงมาน้ันถูกตอง

Page 26: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

18

รูปที่ 2.23 ข้ันตอนการเปรียบเทียบความถูกตอง

จากรูปท่ี 2.23 เปนข้ันตอนการเปรียบเทียบความถูกตอง

2.4 Shell Programming Language [6]

Shell คือโปรแกรมหนึ่งบนระบบ UNIX ท่ีทําหนาท่ีเปน interface ระหวาง UNIX กับ user โดย user สามารถสั่งงาน UNIX ไดผานทาง shell เทาน้ัน

Shell Programming Language คือ การนําคําสั่งตางๆ ของ shell มาเขียนเปนโปรแกรมเก็บเปนไฟลไวได เรียกวา shell script

รูปท่ี 2.24 โครงสรางพ้ืนฐานการทํางานของ UNIX

จากรูปท่ี 2.24 เปนโครงสรางพ้ืนฐานการทํางานของ UNIX

Page 27: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

19

2.4.1 Shell ท่ีนิยมใชในปจจุบัน 1) Bourne shell (/bin/sh) เปน shell ยุคแรกๆ ท่ีมีกันอยางแพรหลายมีกําหนด

โครงสรางภาษาคลายกับภาษาอัลกอ เปนมาตราฐานของ shell ท่ีมีใน UNIX ทุกตัว สามารถยายไปใชกับ UNIX ระบบอื่นโดยไมตองแกไขอะไรเลยไดอีกดวย

2) C shell (/bin/csh) เปน shell ท่ีพัฒนาข้ึนหลังจาก Bourne shell มีรูปแบบคลายภาษา C มีฟงกช่ันการทํางานท่ีดีและสะดวก สามารถควบคุม Bourne shell และยังสามารถเรียกใชคําสั่งท่ีส่ังไปแลวได

3) Korn shell (/bin/ksh) เปน shell ท่ีพัฒนามาจาก Bourne shell และ C shell สามารถใชฟงกช่ันของ Bourne shell ไดทุกอยาง สามารถเรียกใชคําส่ังท่ีใชไปแลวได

4) Bourne again shell (/bin/bash) เปนการนํา Bourne shell มาพัฒนาใหม สามาทํางานแบบ line editor ได และเพิ่มประสิทธิภาพในการทํางานอีกหลายอยาง bash shell ไมใชมาตราฐาน shell ของ UNIX แตเปนมาตราฐาน shell ใน Linux ในปจจุบัน

รูปท่ี 2.25 ตัวอยาง bash shell

จากรูปท่ี 2.25 บรรทัดท่ี 1 เปนการประกาศใหระบบรูวา เปน bash shell บรรทัดท่ี 2 เปนการประกาศตัวแปรช่ือ TXT มีขอมูลคือ Hello World ! และบรรทัดท่ี 3 เปนคําสั่งใหแสดงผลคาในตัวแปร TXT ออกมาหนาจอ

รูปท่ี 2.26 สั่งไฟล bash shell ใหทํางาน

จากรูปท่ี 2.26 เปนชุดคําส่ังใหไฟล bash shell ทํางานได ลําดับคําสั่งดังนี้

Page 28: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

20

1) สั่งดูวามีไฟลอะไรบาง ผลท่ีไดจะมีไฟล first_shell.sh ท่ีเพ่ิงเขียนข้ึนมาจะเห็นวา permission ของไฟลจะไมสามารถ execute ได ดังนั้นจึงสั่งรันไมได

2) สั่งใหไฟล first_shell.sh สามารถexecute ได ตองใชคําส่ังchmod +x first_shell.sh 3) สั่งดูไฟล first_shell.sh ใหมอีกคร้ัง จะเห็นวาสามารถ execute ไดแลว 4) สั่งรันไฟล first_shell.sh จะมีการแสดงผลคําวา “Hello World !” ออกมาทางหนาจอ

Page 29: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

ในบ

deploymentGitolite เปน

3.1 Diagram

บทนี้จะกลาวถึt configuratน Git Server

m การทํางาน

รูปที่ 3.1

ถึงข้ึนตอนขอion file and สวนการทําง

นของระบบ

1 การออกแบ

บททีการดําเนิ

องการออกแd Code Veงานหลักๆ แบ

บบ Diagram

ที่ 3 นนิงาน

บบและพัฒนersion Contบงออกเปน 3

ภาพรวมกา

นาระบบ Bastrol using G3 สวน ซึ่งจะ

รทํางานของร

sh Shell Git ซึ่งจะใชโไดอธิบายดัง

ระบบ

21

Scripting โปรแกรม งตอไปน้ี

Page 30: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

22

จากรูปท่ี 3.1 อธิบายไดดังนี้ หมายเลข 1 เม่ือ Client configuration file ผานหนา GUI เสร็จแลวกด save โปรแกรม

จะเรียกไฟล shell script ท่ีเขียนไวใหยืนยัน (commit) การเปล่ียนแปลงไฟลคอนฟกกูเรช่ัน หมายเลข 2 เม่ือยืนยันการแกไขเสร็จแลว ทําการอัพไฟลขอมูลไปยังเซิฟเวอร (push) หมายเลข 3 เม่ือเซิฟเวอรไดรับไฟล ก็จะนําไปเก็บไวในพืนท่ีเก็บไฟลขอมูล (repository)

และไปอานไฟล hooks/post-receive ซ่ึงขางในเปนไฟล bash shell ซ่ึงเขียนไวให เก็บ log ไววามีการ push เขามายังเคร่ืองเซิฟเวอร จากน้ันสั่ง sudo เปน root และ SSH ไปเครื่อง WowzaMediaServer แตละเครื่อง และเรียก execute bash shell ไฟลอีกไฟลหน่ึงท่ีเขียนไว

หมายเลข 4 เม่ือ SSH ไปท่ีเครื่อง WowzaMediaServer โดยใชวิธีทํา Key Pair File ของ user น้ันไปไวท่ีเครื่อง Server แตละเคร่ืองไวกอนแลว เพราะท่ีจะไดไมตองให Server เหลาน้ันถามพาสเวิรด

หมายเลข 5 เม่ือ SSH เขามาไดแลว ก็เรียก execute ไฟล bash shell ท่ีเขียนไว ส่ังให โหลดไฟลท่ีมีการอัพเดตรในเซิฟเวอรลงมา (pull) ยังเคร่ือง พรอมท้ังเก็บ log ระหวาง pull ไวดวย

แตการจะให WowzaMediaServer อานไฟล Configuration ใหมน้ันจําเปนจะตอง restart Service และเพ่ือความปลอดภัย ผูจัดทําโครงงานจึงไมไดเขียนโปรแกรมใหมีการ restart Service แตจะใหใชวิธี SSH เปน root ดวยตัวเองเขาไป restart Service เทาน้ัน

Page 31: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

3.2 การ

product

แลวสั่งรั

รออกแบบกา

3.2.1 การออ

รูป

จากรูปท่ี 3.21) 2)

ion แลวส่ังรัน3)

ันไฟล deply

ารทํางานขอ

อกแบบ Flow

ปที่ 3.2 การอ

2 อธิบายไดดัเม่ือเริ่มโปรแตรวจสอบวานไฟล deployตรวจสอบวา

ys.sh แลวจบ

องระบบสวน

wchart การทํ

ออกแบบ Flow

ดังนี้ แกรมจะประกา branch ใช y.sh แลวจบาถาเปน braการทํางาน

นของ Bash

างานของไฟ

wchart การท

กาศตวัแปรตาpre-productการทํางาน anch master

Shell Scrip

ล post-rece

ทํางานของไฟ

างๆ เพื่อใชเtion หรือไม

r หรือไม ถาใ

pts

ive

ฟล post-rece

ก็บ log ม ถาใชจะ ss

ใชจะ ssh ไป

eive

sh ไปเครื่อง p

ปเครื่อง prod

23

pre-

uction

Page 32: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

product

แลวสั่งp

3.2.2 การออ

รู

จากรูปท่ี 31) 2)

ion แลวส่ัง p3)

ull เพ่ือโหลด

อกแบบ Flow

รูปที่ 3.3 การ

3.3 อธิบายไดเม่ือเริ่มโปรแตรวจสอบวา

pull เพือ่โหลดตรวจสอบวาดคา config ใ

wchart การทํ

รออกแบบ Flo

ดดงันี้ แกรมจะประกา branch ใช ดคา config ใาถาเปน braใหมแลวจบกา

างานของไฟ

owchart การ

กาศตวัแปรตาpre-productใหมแลวจบกanch masterารทํางาน

ล deploy.sh

รทํางานของไ

างๆ เพื่อใชเtion หรือไมการทํางาน r หรือไม ถาใ

h

ไฟล deploy.

ก็บ log ม ถาใชจะ ss

ใชจะ ssh ไป

sh

sh ไปเครื่อง p

ปเครื่อง prod

24

pre-

uction

Page 33: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

3.3 การ

หรือไม ถ

ตัวเองได

รออกแบบกา

3.3.1 การ

รูปที ่ จากรูปท่ี 3.4

1) เม่ือ2) เม่ือ

ถาใช จะสาม3) ถาไ

ดหรือ Add P4) เม่ือ

ารทํางานขอ

ออกแบบ Flo

3.4 การออก

4 อธิบายไดดัเริ่มโปรแกรม Login จะมามารถไป Manมใช Admin

Program ไดห Logout แลว

องระบบสวน

owchart การ

กแบบ Flowc

ดังนี้ มจะตรวจสอบาอยูท่ีหนา Mnage Memben จะมี 4 เมนูหรือ สามารถวเปนการจบก

นของ GUI

รทํางานภาพร

chart การทําง

บวา Login Main Displaers ตางๆ ไดนูใหสามารถใถ Edit Configการทํางาน

รวมของโปรแ

งานภาพรวม

หรือยัง ถายัy แลวจะตรด และสามารถใชงานไดคือ g & Deploy

แกรม GUI

มของโปรแกร

ยังจะ Redirecรวจสอบวามีถ Logout ได สามารถ ChFile ได และส

รม GUI

ct มาท่ีหนา Lสิทธิ์เปน ด hange Passwสามารถ Log

25

Login Admin

word ของgout ได

Page 34: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

ไมจะมี E

ถาไมจะ

Form C

3.3.2 การ

รูปที่ 3.5 กา

จากรูปท่ี 3.51) 2) 3)

Error Messa4)

มี Error Mes5)

hange Pass

ออกแบบการ

รออกแบบกา

5 อธิบายไดดัเม่ือเขาสูเมนูเม่ือเปล่ียน Pเม่ือ Save ม

age แจงเตือนProcess นี้จssage แจงเตืProcess นี้จ

sword

รทํางานของโ

ารทํางานของ

ดงันี้ นู Change PPassword แมาแลวจะตรวนแลวกลับสูหจะตรวจสอบวตอืนแลวกลับจะทําการ Sa

โปรแกรม GU

งโปรแกรม G

assword จะลวกด Save วจสอบวา Paหนาเปล่ียน Pวา Passwordบสูหนาเปล่ียนave data ลงฐ

UI สวนการเป

GUI สวนการ

มี Form ให จะไปสู Procassword ปPassword แตd ท่ีกรอกเขาน Passwordฐานขอมูล M

ปล่ียนรหัสผา

เปล่ียนรหัสผ

หเปล่ียน Pascess ตอไป จจุบันตรงกับตถาตรงจะไปามาใหมท้ัง แตถาตรงจะ

MEMBERS แ

าน

ผานของตัวเอ

ssword ของต

บท่ีกรอกมาหปสู Process

2 ชองตรงกะไปสุ Procesแลว Redirec

26

อง

ตัวเองได

หรือไม ถาตอไป กันหรือไม ss ตอไป ct ไปหนา

Page 35: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

จัดการไ

Save ถAdd Me

Edit เสร็

Process

แลวจะ R

3.3.3 การ

รูปที่ 3

จากรูปท่ี 3.61)

ด 3 อยางคือ2)

ถาหากวา Meember ถาไมซ

3) ร็จก็กด Save

4) s ตอไป

5) Redirect ไปห

ออกแบบการ

3.6 การออกแ

6 อธิบายไดดัเม่ือเขาสูเมนูอ Add Memb

ember มีอยูกซ้ํา ก็จะไปสู Edit Memb

e แลวจะไปสู Delete Mem

เม่ือทําเมนูใดหนา List Me

รทํางานของโ

แบบการทํางา

ดงันี้ นู Manage M

bers จะมี FกอนหนาแลวProcess ตอer จะมี Form Process ตอmber คือจะส

ดเมนูหนึ่งเสร็embers

โปรแกรม GU

านของโปรแก

Members จ

Form ใหกรอกว จะมี Erอไป m ท่ีมีรายละอไป สามารถลบ M

ร็จแลว จะมา

UI สวนการจั

กรม GUI สว

ะมี List Me

กรายละเอียดrror Messag

ะเอียดของ M

Member คนน

าท่ีการ Sav

ัดการสมาชิก

วนการจัดการ

embers ท่ีอยู

ดตางๆ ของ ge แจงเตือน

Member คนน

นั้นๆ ออกจา

ve data ลงฐ

รสมาชิก

กอนแลว โด

Member คนนแลวกลับสูห

นั้นๆ อยูกอน

กระบบได แ

ฐานขอมูล ME

27

ยสามารถ

นนั้น แลว หนา Form

นแลว เม่ือ

แลวจะไปสู

EMBERS

Page 36: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

สามารถ

แลว SavForm C

เมื่อ Edi

ไปสู Pro

จะ Redi

3.3.4 การ

รูปที่ 3.7

จากรูปท่ี 3.71)

จัดการได 3 2)

ve ถาหากวาreate Applic

3) t เสร็จก็กด S

4) ocess ตอไป

5) irect ไปหนา

ออกแบบการ

การออกแบบ

7 อธิบายไดดัเม่ือเขาสูเมนูอยางคือ Create Appา Applicatiocation ถาไมซEdit ApplicSave แลวจะDelete App เม่ือทําเมนูใด List Applica

รทํางานของโ

บการทํางาน

ดงันี้ นู Manage

plication จะn มีอยูกอนหซํ้า ก็จะไปสู cation จะมี ไปสู Proces

plication คือจ

ดเมนูหนึ่งเสร็ation

โปรแกรม GU

นของโปรแกร

Application

มี Form ใหหนาแลว จะมีProcess ตอForm ท่ีมีรา

ss ตอไป จะสามารถล

ร็จแลว จะมา

UI สวนการจั

ม GUI สวนก

จะมี List

กรอกรายละมี Error Mอไป ายละเอียดข

บ Applicatio

าท่ีการ Sa

ัดการ Applic

การจัดการ A

Application

เอียดตางๆ ขMessage แจ

อง Applicati

on นั้นๆ ออ

ave data ลงฐ

cation

Application

n ท่ีอยูกอน

ของ Applicaจงเตือนแลวก

on นั้นๆ อยู

อกจากระบบไ

ฐานขอมูล A

28

นแลว โดย

ation นั้น กลับสูหนา

ยูกอนแลว

ได แลวจะ

PPS แลว

Page 37: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

รู

Applicat

Process

Process

3.3.5 การ

รูปที่ 3.8 การ

จากรูปท่ี 3.81)

tion ใด เม่ือ 2) 3)

s ตอไป 4)

s ตอไป

ออกแบบการ

รออกแบบกา

8 อธิบายไดดัเม่ือเขาสูเมนูModify dataProcess นีจ้Process นี้จ

Process นี้จ

รทํางานของโ

ารทํางานของ

ดงันี้ นู Config Aa เสร็จแลวก็กจะ Save dataจะรันไฟล Sh

จะรันไฟล Sh

โปรแกรม GU

งโปรแกรม G

Application กด Save เพ่ืa ลง config hell Script เพื

hell Script เพื

UI สวนการจั

GUI สวนการจ

จะมี Tab Aอไปสู Procefile แลวไปสูพ่ือ Commit

พื่อ Push Co

ัดการ Config

จัดการ Conf

Application ess ตอไป ส Process ตอ การเปล่ียนแ

onfig file ไปที

g Applicatio

fig Applicatio

ใหเลือกวาจ

อไป แปลง config

ท่ี Git Server

29

n

on

จะ Config

แลวไปสู

r แลวไปสู

Page 38: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

file ตาง

Applicat 3.4 การ

ของ memembeวันท่ีและ

ของ AppApplicatท่ีสราง A

5) ๆ ไปยัง Wow

6) tion

รออกแบบฐา

3.4.1 การออ

จากรูปท่ี 3.91)

ember คนนั้นr, priority คือะเวลาที่สราง

2) plication นัน้tion นั้นๆ, deApplication น

เม่ือ Git SerwMediaServProcess นี้จ

านขอมูลขอ

อกแบบฐานข

รูปที่ 3.9

9 การออกแบMEMBERS นๆ, email ท่ีใอระดับสิทธิ์ก member คนAPPS คือสว

นๆ, name คือesc คือ คารานั้นๆ, และ d

rver ไดรับไฟver ตางๆ จะ Load new

องระบบ

ขอมูลการของ

9 การออกแบ

บบฐานขอมูล คือสวนท่ีเก็ใช Login, naารเขาถึง, mนนนๆ วนท่ีเก็บรายลอช่ือของ Appายละเอียดตาate_time คอื

ฟลแลวจะรันไ

w Config fi

งโปรแกรม G

บฐานขอมูลก

ของโปรแกรบรายละเอียดame คือช่ือขode คือชือ่ข

ละเอียดตางๆplication นั้นางๆ ของ Apอวันท่ีและเวล

ไฟล post-rec

le มาใหม แ

GUI

การของโปรแ

ม GUI จะมีดดตางๆ ของ อง member,องระดับสิทธิ์

ๆ ของ Applicๆ, config_p

pplication นั้นลาท่ีสราง Ap

ceive ท่ีทําห

แลว Redirect

แกรม GUI

ดวยกัน 2 สวMember คือ, password ธิก์ารเขาถึง แ

cation คือ idath คือ ระบุทีนๆ, added คืplication นัน้

หนาท่ี Depl

t ไปหนา Lis

นคือ อ id คือรหัสปคือรหัสผานขและ date_tim

d คือรหัสประท่ีเก็บไฟล coคือ ชื่อของ mนๆ

30

oy config

st Config

ประจําตัวของ me คือ

ะจําตัวonfig ของ

member

Page 39: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

31

3.5 แผนภาพแสดงการไหลของขอมูล

แผนภาพแสดงการไหลของขอมูล แสดงความสัมพันธระหวางขอมูลกับระบบกับขอมูลท่ีเกี่ยวของโดยขอมูลในแผนภาพแสดงใหเห็นถึงการไหลของขอมูล

3.5.1 แผนภาพแสดงการไหลของขอมูลระดับ 0

รูปท่ี 3.10 แผนภาพแสดงการไหลของขอมูลระดับ 0

จากรูปท่ี 3.10 แผนภาพแสดงการไหลของขอมูลจะแสดงกระบวนทํางานของระบบ โดยแบงออกเปน 4 หัวขอได ดังนี ้

1) กระบวนการจัดเก็บขอมูล Member ลงฐานขอมูลจะกระทําไดโดย Admin เทาน้ัน 2) กระบวนการจัดเก็บขอมูล Application ลงฐานขอมูลสามารถกระทําไดท้ัง Admin

และ Member ของระบบ 3) กระบวนการจัดเก็บขอมูล Configuration Application ลง GIT Server สามารถ

กระทําไดท้ัง Admin และ Member ของระบบ

Page 40: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

32

4) กระบวนการจัดเก็บขอมูล Configuration Application จาก GIT Server ไปจัดเก็บลง WowzaMediaServer ทุกๆเคร่ืองเปนไปอยางอัตโนมัติ

5) การดึงขอมูลจากฐานขอมูล APPS สามารถกระทําไดท้ัง Admin และ Member ของระบบ

6) การดึงขอมูลจากฐานขอมูล MEMBERS สามารถกระทําไดเฉพาะ Admin ระบบเทาน้ัน

3.5.2 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การเพ่ิม Member

รูปท่ี 3.11 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การเพิ่ม Member

จากรูปท่ี 3.11 แผนภาพแสดงการไหลของขอมูลและแสดงกระบวนการจัดเก็บขอมูล โดย Admin ของระบบจะตองกรอกขอมูลตางๆ ของ MEMBERS ลงในฐานขอมูล

3.5.3 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การเพ่ิม Application

รูปท่ี 3.12 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การเพ่ิม Application

Page 41: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

33

จากรูปท่ี 3.12 แผนภาพแสดงการไหลของขอมูลและแสดงกระบวนการจัดเก็บขอมูลตองกรอกขอมูลตางๆ ของ APPS ลงในฐานขอมูล

3.5.4 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การบันทึกขอมูล Configuration Application ไปยัง GIT Server

รูปท่ี 3.13 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การบันทึกขอมูล Configuration Application ไปยัง GIT Server

จากภาพท่ี 3.13 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การบันทึกขอมูล Configuration

Application ไปยัง GIT Server โดยจะสงรายละเอียดตางๆ ไปบันทึก Log ไว 3.5.5 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การบันทึกขอมูล Configuration Application

จาก GIT Server ไปยังเครือ่ง WowzaMediaServer ทุกเคร่ืองอัตโนมัติ

รูปท่ี 3.14 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การบันทึกขอมูล Configuration Application จาก GIT Server ไปยังเครื่อง WowzaMediaServer ทุกเครื่องอัตโนมัติ

Page 42: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

34

จากรูปท่ี 3.14 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การบันทึกขอมูล Configuration Application จาก GIT Server ไปยังเคร่ือง WowzaMediaServer ทุกเครื่องอัตโนมัติ และจะนําขอมูลตางๆ ท่ีไดไปบันทึกลง Log ไวท่ีเครื่อง WowzaMediaServer ทุกเครื่อง ทุกครั้ง

3.5.6 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การออกรายงาน Application

รูปท่ี 3.15 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การออกรายงาน Application

จากรูปท่ี 3.15 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การออกรายงาน Application โดยผูท่ีสามารถเรียกดูรายงานของ Application ไดมีท้ัง Admin และ Member ของระบบ

3.5.1 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การออกรายงาน Member

รูปที่ 3.16 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การออกรายงาน Member

จากรูปท่ี 3.16 แผนภาพแสดงการไหลของขอมูลระดับท่ี 1 การออกรายงาน Member โดยผูท่ีสามารถเรียกดูรายงานของ Member ไดมีเฉพาะ Admin ของระบบเทาน้ัน

Page 43: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

35

3.6 สรุปทายบท

ระบบ System deployment configuration file and Code Version Control using Git แบงการทํางานออกเปน 3 สวนหลักๆ คือ สวนท่ีหน่ึง สวน GUI ทําหนาท่ีเปน Web interface ใหยูสเซอรใชแกไขไฟล Configuration ไดอยางสะดวก เม่ือแกไขแลว โปรแกรมจะเรียกใชงาน Bash shell script ท่ีเขียนไวใหทําการยืนยันการแกไขไฟลแลว ก็สั่งอัพไปยังเซิฟเวอร สวนท่ีสอง คือ Git Server จะทําหนาท่ีเก็บไฟลไวในพ้ืนท่ีเก็บขอมูล จากน้ัน Git Server จะไปอานไฟล post-receive ท่ีอยูในไดเรคทอร่ี hooks ซ่ึงในไฟล post-receive จะทําใหเปน bash shell ไว สั่งให SSH ไปยังเครื่อง WowzaMediaServer ทุกๆ เครื่องแลวสั่งรันไฟล deploy.sh ท่ีเขียนไวในเครื่องเซิฟเวอรทุกเครื่อง ในสวนท่ีสามนี้ก็คือไฟล deploy.sh ท่ีอยูท่ีเครื่องเซิฟเวอรทุกๆ ในไฟลก็จะตรวจสอบกอนวา ตองการโหลดไฟลจาก branch ใด หรือเปน pre-production ก็จะยายไปท่ี branch pre-production หรือถาเปน branch master ก็จะยายไป branch master แลวคอยส่ังโหลดไฟล configuration มาไวยังเครื่องเซิฟเวอรตัวมันเอง แตการจะใหมีการอานคาไฟล configuration ใหมน้ันจําเปนจะตองสั่ง restart service แตผูจัดทําโครงงานไดคํานึงถึงความม่ันคงปลอดภัยของระบบ จะใหผูดูแลระบบเขามาสั่ง restart service ดวยตัวเองเทาน้ัน ในบทตอไปจะเปนการทดสอบในการใชงานจริง ซ่ึงในแตละข้ึนตอนวามีการทํางานหรือทดสอบอยางไร พรอม ท้ังการอธิบายโดยมีภาพตัวอยางประกอบชัดเจนในบทถัดไป

Page 44: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

36

บทท่ี 4 ผลการดําเนินงาน

4.1 ข้ันตอนการทดลอง

ข้ันตอนการทดลองแบงไดเปนลําดับ ดังนี้ 3.2.1 Login เขาไปนระบบ GUI โดยสิทธิ์แอดมินของระบบ 3.2.2 ทดลองสรางยูสเซอรของระบบ 3.2.3 ทดลองสรางยูสเซอร ซํ้ากับท่ีมีอยูในระบบแลว 3.2.4 ทดลองลบยูสเซอรของระบบ 3.2.5 Login เขาระบบ GUI โดยสิทธิ์ยูสเซอร 3.2.6 ทดลองเปล่ียน Password ของยูสเซอร 3.2.7 ทดลองสราง Application 3.2.8 ทดลองสราง Application ซํ้ากับท่ีมีอยูในระบบแลว 3.2.9 ทดลองแกไขขอมูล Application 3.2.10 ทดลองลบ Application 3.2.11 ทดลองแกไขคา Configuration Application แลว Save

4.2 สภาพแวดลอมของการทดลอง

สภาพแวดลอมของการทดลองระบบครั้งนี้ประกอบดวย 1) เคร่ือง Server ท่ีทําหนาท่ีเปน GIT Server และ GUI 2) เครื่อง WowzaMediaServer ท่ีทําหนาท่ีรับคา Configuration Application จากเครื่อง GIT

Server 3) เครื่อง GIT Server และเครื่อง WowzaMediaServer ตั้งอยูในระบบเน็ตเวิรควงเดียวกัน ซ่ึง

เปน Private IP 4) มีระบบเน็ตเวิรคเอ็มพีแอลเอส (MPLS) เช่ือมตอระหวางวงเน็ตเวิรคของยูสเซอรกับ ระบบ

เน็ตเวิรคของ Server

Page 45: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

37

4.3 ผลการทดลอง

4.3.1 ผลการทดลองใชงานโปรแกรม GUI ผูจัดทําโครงงานไดเขียนโปรแกรม Graphic User Interface เพ่ือให User สามารถใชงานได

สะดวกเสร็จเปนท่ีเรียบรอยดี โดยใช Apache เปน Web Server และใชภาษา PHP และ HTML ในการพัฒนาระบบ ฐานขอมูลใชวิธีการเก็บลงในไฟลไว โดยเมื่อเขามาท่ี GUI จะเช็ควาได Login ไวหรือไม ถาไม จะ Redirect มาหนา Login

รูปท่ี 4.1 GUI หนา Login

จากรูปท่ี 4.1 แสดงหนาจอ Login ของโปรแกรม GUI เม่ือ Login ดวย User ท่ีมีสิทธิ์เปน Admin ของระบบ จะสามารถเขามาหนา Manage User ได

โดยหนาน้ีจะสามารถ ลบ User และ Create User ได

Page 46: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

38

รูปท่ี 4.2 GUI หนา Manage User

จากรูปท่ี 4.2 แสดงหนาจอ Manage User เม่ือ Click ท่ีแท็ป Create new user จะมี form ใหกรอกรายละเอียดของ User ท่ีกําลังจะ Create

ใหม

รูปที่ 4.3 GUI หนา Create new user

Page 47: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

39

จากรูปท่ี 4.3 แสดงหนาจอ Create new user เม่ือ Create new user เสรจ็แลว โปรแกรมจะ Redirect ไปหนา Manage User จะเห็นวาใน List

User มี User ใหมปรากฏข้ึนมาแลว

รูปที่ 4.4 GUI หนา Manage User ท่ีมี User ท่ีเพ่ิมเขาไป

จากรูปท่ี 4.4 แสดงหนาจอหลังจากเพิ่ม User เม่ือ Click ท่ีรูปถังขยะจะเปนการลบ User คนนั้น จะมี Dialog Box ใหเตือนวาตองการจะลบ

User คนนั้นจริงหรือไม ถายืนยันก็ Click Delete อีกครั้ง

Page 48: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

40

รูปที่ 4.5 GUI ลบ User

จากรูปท่ี 4.5 แสดงหนาจอลบ User เม่ือลองเพ่ิม User โดยใหซํ้ากับ User ท่ีมีอยูแลว จะไมสามารถเพ่ิมได โดยจะมีขอความแจง

เตือนวา User ท่ีตองการจะเพ่ิมนั้นมีอยูแลว

รูปท่ี 4.6 GUI หนาแจงเตือนเพ่ิม User ซํ้ากับทีมีอยูแลว

จากรูปท่ี 4.6 แสดงหนาจอเตือนเม่ือเพ่ิม User ซํ้า เม่ือเปล่ียนมา Login ดวย User ท่ีไมมีสิทธิ์ Admin จะไมมี Menu Manage User ข้ึนมาใหใช

งาน หารตองการเปล่ียน Password ของตัวเองให Click ท่ี Change Password จะมี form ใหกรอกโดยจะตองกรอก Password ปจจุบันเขาไป และกรอก Password ใหมท่ีตองการเขาไปใหเหมือนกัน 2 ครั้งเพื่อปองกันการพิมพผิดพลาด

Page 49: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

41

รูปท่ี 4.7 GUI หนา Change Password จากรูปท่ี 4.7 แสดงหนาจอ Change Password ถาหากกรอก Password ปจจุบันผิด ก็จะไมสามารถเปล่ียน Password ได โดยจะมีขอความแจง

เตือนวา Current Password ไมตรงกับท่ีมีอยู

รูปท่ี 4.8 GUI หนาแจงเตือน Password ปจจุบันไมถูกตอง

จากรูปท่ี 4.8 แสดงหนาจอแจงเตือน Password ปจจุบันไมถูกตอง

Page 50: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

42

ถาหากกรอด Password ใหมไมเหมือนกันท้ัง 2 ครั้ง จะมีขอความแจงเตือนวา Password จะตองเหมือนกัน

รูปที่ 4.9 GUI หนาแจงเตือนใหกรอก Password ใหมใหตรงกันท้ัง 2 ครั้ง จากรูปท่ี 4.9 แสดงหนาจอเตือนกรอก Password ใหมไมตรงกันท้ัง 2 คร้ัง เม่ือ Click มาท่ีเมนู Manage Application จะมีแท็ป 2 แท็ปคือ Application จะมี List

Application ท่ีไดสรางไวแลวอยูจากหนาน้ีสามารถแกไขขอมูลของ Application และสามารถลบ Application น้ันๆ ได และ Create Application เอาไวสราง Application เขาไปได

Page 51: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

43

รูปที่ 4.10 GUI หนา Manage Application

จากรูปท่ี 4.10 แสดงหนาจอ Manage Application เม่ือ Click ท่ีแท็ป Create Application จะมี Form ใหกรอกขอมูลของ Application โดยจะตอง

กรอกชื่อ Application และ Config path ถาไมกรอก 2 ชองนี้จะไมสามารถเพ่ิม Application ได สวน Description มีไวกรอกรายละเอียดอ่ืนๆ จะกรอกหรือไมกรอกก็ได

Page 52: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

44

รูปที่ 4.11 GUI หนา Create Application

จากรูปท่ี 4.11 แสดงหนาจอ Create Application ถาหากกรอกช่ือ Application มาซํ้ากับท่ีมีอยูกอนแลว จะไมสามารถเพ่ิมได โดยจะมีขอความ

แจงเตือนวา Application name น้ันๆ มีอยูกอนแลว

รูปท่ี 4.12 GUI หนาแจงเตือน Application มีอยูกอนแลว

จากรูปท่ี 4.12 แสดงหนาจอแจงเตือน Application ซํ้า

Page 53: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

45

เม่ือเพิ่ม Application แลวจะมีชื่อ Application ใหมปรากฏข้ึนมาใน List หากตองการแกไขขอมูลใน Application น้ัน ให Click ท่ีช่ือ Application น้ันๆ จะมี Form ข้ึนมาโดยมีขอมูลของ Application น้ันอยู สามารถกรอกขอมูลท่ีตองการแกไขเขาไปไดเลย เสร็จแลวกด Save โปรแกรมจะบันทึกขอมูลไว

รูปท่ี 4.13 GUI หนาแกไขขอมูลใน Application

จากรูปท่ี 4.13 แสดงหนาจอแกไขขอมูลใน Application หากตองการลบสามารถลบไดท่ีแท็ป Application โดยสามารถลบไดมากกวาครั้งละ 1

Application โดยให Click ท่ีดานหลังของขอมูล Application น้ันๆ ใหมีเครื่องหมายกาถูก จากน้ัน Click ปุม Delete จะมี Dialog ข้ึนมาให Confirm

Page 54: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

46

รูปท่ี 4.14 GUI ลบ Application

จากรูปท่ี 4.14 แสดงหนาจอลบ Application หากตองการ Configuration คาตางๆ ของโปรแกรม WowzaMediaServer ให Click เขาไปเมนู

Config Application จะมีแท็ปตามจํานวน Application ท่ีไดกรอกไวท่ีเมนู Manage Application สามารถ Click แท็ปท่ีตองการแกไขไดเลย โปรแกรมจะโหลด Configuration ท่ีอยูท่ี Server มาใหสามารถแกไข เมื่อเสร็จแลว Click ท่ีปุม Save โปรแกรมจะเอาคา Configuration ท่ีกรอกเขาไป ไปใสไวในไฟลตามพารทท่ีกรอกตรง Config Path ท่ีไดกรอกไวกอนแลว และจะเรียกใหไฟล Bash Shell ท่ีไดเขียนไวกอนหนาน้ันทํางานโดยจะยืนยันการแกไขไฟล Configuration โดยมี Comment วา User คนไหนเปนคนแกไข และวันเวลาใด เพ่ือเปน Log อางอิงการแกไขคร้ังนั้นๆ

Page 55: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

ประสานทดสอบแพรอมท้ังทดลองเพรอมท้ังตามที่กรบานสาม

จากรูปท่ี 4.1จากผลการทํ

นกับการทํางาแกไขคา Conงสั่งแสดงคาขปล่ียนตัวเลขงคาขางตนขรอกมาใน GUมารถทํางานป

15 แสดงหนาทําโปรแกรม านหลังบานขnfiguration ขขางตนของไฟขเปนเลข 6 แองไฟล ApplUI โดยท่ีไมไประสานกันได

รูปที่ 4.15

าจอ Config AGUI ข้ึนมาเพืองระบบใหทํของ Applicatฟล Configurแลวกด Saveication อีกคดแกไขท่ีเครื่ดด ีไดขอมูลท

5 GUI หนา C

Application พื่อให User สทํางานไดตามtion โดยกอนration นั้น จะe ท่ีหนา GUI ร้ัง จะเห็นวาอง Server ทํท่ีถูกตองแมน

Config Appl

สามารถใชงามท่ีตองการอยนแกไขไดสั่งแะเห็นวามีขอมู จากนั้นไดกคาในไฟลท่ีเทําใหพิสูจนไดนยํา

ication

านไดสะดวกแยางถูกตองแมแสดงวันท่ีแลมูลเปนตัวเลขลับมาสั่งให Sครื่อง Serveดวา โปรแกร

แลว ก็จะตองมนยํา โดยเมืะเวลาขณะนั้ข 5 อยุ การแServer แสดง

er ไดถูกเปล่ียรม GUI กับระ

47

งเอามาม่ือการนั้นนั้น แกไขไดงวันเวลายนไปะบบหลัง

Page 56: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

48

รูปท่ี 4.16 แสดงคาวันเวลาพรอมท้ังคาขางตนของไฟล Configuration จากรูปท่ี 4.16 แสดงคาขางตนของไฟล Configuration ภายในเครื่อง WowzaMediaServer ท่ีมี

ตางกันระหวางกอนและหลังจาก Configuration Application แลวมีการ Deploy มาแบบอัตโนมัติตรงตามวัตถุประสงคของการจัดทําระบบ

และในการแกไขคา Configuration ทุกครั้งจะมีการบันทึก Log ไวท่ีเครื่อง Server วา User คนใดเปนคนแกไข วันท่ีเวลาใด แกไข Application ใด และไฟล Configuration ไฟลใด

รูปท่ี 4.17 บันทึก Log การแกไขคา Configuration file Application

จากรูปท่ี 4.17 แสดงหนาจอบันทึก Log ของการแกไขคา Configuration file Application และมีการ Deploy

Page 57: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

49

บทท่ี 5 สรุปผลดําเนินงานโครงการและขอเสนอแนะ

5.1. สรุปผลการดําเนินงาน

โครงงานที่ 1 จะเปนการทําระบบหลังบานคือ ติดตั้ง Git Server โดยใชโปรแกรม Gitolite ซ่ึงมีความสามารถในการทํา Source code version control แลวไปเขียน Bash Shell ไวเช็ค หากมีการ Push ไฟลใหมเขามาให SSH ไปเครื่อง WowzaMediaServer ตางๆ ท่ี Configuration ไวแลวสั่งรันไฟล Bash Shell ท่ีเขียนไวให Pull ไฟลใหมลงมา เปนการทํา Auto Deployment

โครงงานท่ี 2 จะเปนการทํา GUI ใหยูสเซอรสามาถใชสําหรับแกไขคา Configuration Application ไดอยางงายดาย สะดวก โดยมีการแบงระดับสิทธิ์ของระบบเปน Admin และ Members โดยท่ีจะมีเพียง Admin เทาน้ันท่ีจะมีสิทธิ์ในการเพ่ิม ลบ แกไข Members ได สวนเมนูอ่ืนๆ สามารถใชงานไดทุกคน โดยหากมีการแกไขใดๆ จะมีการระบุ วันท่ี เวลา และชื่อผูท่ีแกไขดวยทุกครั้ง 5.2. ขอเสนอแนะในการแกไขปญหา

จากการทําโครงงาน 1 และ 2 ปญหาท่ีไดพบอยูในสวนของ permission ของ configuration file คือถาหากใช user อ่ืนในการ pull ไฟลระหวางท่ี Program WowzaMediaServer ยังทํางานอยูน้ัน จะไมสามารถ pull ไฟลลงมาทับได ดังนั้นผูจัดทําโครงงานจึงใช root ในการ pull configuration file มาทับ และการจะเพ่ิมเคร่ือง WowzaMediaServer แตละเคร่ืองจําเปนจะตองทํา ssh-keygen แลวนํา public key มาใสไวท่ีเคร่ือง Git Server ซ่ึงข้ันตอนดังกลาวไมสามารถยังไมสามารถทําโดยใชเพียง Bash Shell ได เนื่องจากการ scp public key ขามเครื่อง Server โดย root จะตองใส Password ดวยทุกครั้ง

5.3. สรุปปญหาท่ีพบ

1. ไมสามารถ pull configuration file ลงมาทับขณะท่ีโปรแกรม WowzaMediaServer ยัง

ทํางานอยู เนื่องจากติด Permission 2. การเพ่ิมเครื่อง WowzaMediaServer เขาใน Git Server ไมสามารถเขียนเปน Bash Shell

Script แลวเรียกทํางานไดเพราะตองใส Password ดวยทุกครั้งท่ี scp public key

Page 58: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

50

5.4. แนวทางการพัฒนาโครงงาน

จากปญหาท่ีกลาวมาขางตน จะตองมีการแกไขใหระบบสามารถใชงานไดในอนาคต โดยผูจัดทําโครงงานจะตองศึกษาเพ่ิมเติมในสวนของการใช user อ่ืนท่ีไมใช root ในการ pull configuration file ลงมาทับไดโดยไมติดปญหาเร่ือง Permission file และการ scp โดยไมตองใส Password หากสามารถทําให copy public key file ขามเครื่องได ก็จะสามารถทําใหสามารถ เพิ่ม ลบ แกไข เครื่อง Server จากโปรแกรม GUI ได

Page 59: Management Streaming Server Configuration File System Case ... ระบบจัดการ... · ระบบจัดการไฟล คอนฟ กกูเรชนโปรแกรมสตรั่

51

เอกสารอางอิง

[1] Getting Started - About Version Control, Git-smc.com, [Online]. Available : http://git-scm.com /book/en/Getting-Started-About-Version-Control [2] Getting Started - Git Basics, Git-smc.com, [Online]. Available : http://git-scm.com/book/en /Getting-Started-Git-Basics [3] Git Branching. Git-smc.com. [Online]. Available : http://git-scm.com/book/en/Git-Branching [4] Scott Chacon, Pro Git, Springer-Verlag New York, Inc., New York, 2009. [5] วรศิวัช จิวะกิดาการ (2549), “พื้นฐานความรูเกี่ยวกับ-Secure-Shell-SSH” มหาวิทยาลัยเชียงใหม, [Online]. Available : http://network.cmu.ac.th/wp-content/uploads/2011/05/พ้ืนฐานความรูเก่ียวกับ-Secure-Shell-SSH-2-มิ.ย.-49.ppt [6] KESHAVA G.S (2013,Aug), Introduction to Operating System and UNIX, [Online]. Available : http://it-ims.com/2013/rhel6/class-1-intro/