ใช้ command line จัดการ Application บน Openshift

โอเพ่นชิฟต์ (Openshift) มีระบบจัดการ rhc ที่สามารถติดตั้งบนเครื่องได้ แต่ส่วนตัวรู้สึกว่าคุ้นเคยกับการใช้คอมมานด์ไลน์ (command line) บนเซิร์ฟเวอร์มากกว่า

เมื่อติดตั้งแอพพลิเคชันผ่าน โอเพ่นชิฟต์ เว็บคอนโซล (Web Console) และเชื่อมต่อซอร์สโค้ดกับกิต (git) ก็จะต้องติดตั้ง ssh key แล้วเช่นกัน คีย์นี้สามารถนำไปใช้เข้าถึงเซิร์ฟเวอร์ได้ โดยเข้าไปที่แอพพลิเคชัน บนเว็บคอนโซล จะแสดงคำสั่งที่ใช้เข้าถึงเซิร์ฟเวอร์ในรูปแบบ

ssh <รหัสแอพ>@<ชื่อแอพ>-<โดเมนของเรา>.rhcloud.com

และเนื่องจากใช้คีย์ ssh จึงไม่ต้องกรอกรหัสผ่าน

เมื่อเข้าได้ จะสามารถดูข้อมูลต่างๆในเครื่องได้ทั้งหมด แต่การสร้างไฟล์ใหม่ จะทำได้เฉพาะในไดเรกทอรี app-root/data เท่านั้น พื้นที่เก็บข้อมูลถูกจำกัดไว้ที่เบื้องต้น 1 GB

ส่วนหล็อกไฟล์ (log file) จะอยู่ที่ app-root/logs จะมีหล็อกของ cron, haproxy และแอพพลิเคชัน ในที่นี้ได้ติดตั้ง ทอมแคต (Tomcat) 7 ก็จะมีหล็อกที่นี่เช่นกัน

บางครั้งการพุช (push) ซอร์สโค้ดขึ้นไปเพื่อดีพลอย (deploy) อาจจะเกิดปัญหา ก็จะดูหล็อกได้เบื้องต้นว่าเกิดปัญหาอะไรบ้าง

ในกรณีของเว็บแอพพลิเคชัน

  1. ดูว่า haproxy มีปัญหาหรือไม่ โดยเข้าไปที่ http://<ชื่อแอพ>-<โดเมนของเรา>.rhcloud.com/haproxy-status/ เพราะ haproxy คือหน้าด่านในการเข้าถึงเว็บเบื้องหลัง
  2. ตรวจสอบเว็บแอพพลิเคชันว่าเกิดรันไทม์เอ็กเซ็พชัน (RuntimeException) หรือไม่ เพราะบางครั้งทอมแคตจะอุบเงียบ วิธีการเข้าถึงต้องสังเกตตอนดีพลอย เมเว่น (Maven) จะบอกว่าเว็บเรานั้นถูกดีพลอยไว้ที่ไอพีและพอร์ตอะไร ในตอนท้ายๆของการดีพลอย เช่น remote: Found aaa.bbb.ccc.ddd:8080 listening port
  3. ถ้าอยากลองรีสตาร์ตแอพพลิเคชัน เพื่อดูผลลัพธ์เบื้องต้นให้ใช้คำสั่ง ctl_app restart ระบบจะแจ้งว่ามีระบบอะไรที่สามารถจัดการได้บ้าง ก็ใส่ตัวเลขที่อยู่ด้านหน้าระบบนั้นๆ เครื่องจะทำการรีสตาร์ตระบบนั้นๆให้

ctl_app สามารถใช้จัดการอื่นๆได้ด้วย ดูคำสั่งย่อยได้โดยการใช้คำสั่ง ctl_app โดยไม่ระบุ คำสั่งย่อย

สแลช (SLASH)

Advertisements

ใช้บริการเว็บไหนเก็บซอร์สโค้ดส่วนตัวดี

31 ก.ค. 2558 เพิ่มเติมทางเลือกที่ 4 ซอร์สฟอร์จ ซึ่งปัจจุบันใช้เป็นที่เก็บโค้ดที่ทำส่วนตัวนอกเหนือจากโอเพ่นชิฟท์

เนื่องจากต้องการหาที่สำหรับเก็บซอร์สโค้ด (source code) ส่วนตัว เพื่อความสะดวกในการเข้าถึงจากหลายๆที่ และสามารถย้อนกลับไปดูประวัติการแก้ไขได้ จึงได้ทำการค้นหาเพื่อหาทางเลือก

ตอนนี้กิต (git) น่าจะเป็นคลังเก็บซอร์สโค้ด (VCS: Version Control System) ที่มาแรงที่สุด ด้วยความที่ระบบการจัดการเป็นแบบกระจายศูนย์ (distributed) ซึ่งยืดหยุ่นกว่าแบบเดิมๆ คือแบบรวมศูนย์อย่าง สับเวอร์ชั่น (subversion) หรือ ซีวีเอส (cvs) ที่เคยโด่งดังในอดีต เพราะเมื่อเครื่องศูนย์กลางเสียหาย สร้างใหม่ได้จากซอร์สโค้ดที่เก็บอยู่ และยังสามารถกระจายได้อย่างรวดเร็ว จึงเหมาะกับกลุ่มโอเพ่นซอร์ส (open source)

เมื่อเลือกจะใช้กิตเป็นคลังส่วนตัว (private repository) เท่าที่ค้นหามามีอยู่ 3 ทางเลือก

  1. กิตฮับ (github) ผู้โด่งดัง สมาชิกฟรีไม่สามารถสร้างคลังส่วนตัวได้ ต้องเสียเงินเท่านั้น
  2. บิตบั๊คเก้ต (bitbucket) สมาชิกฟรีสร้างคลังส่วนตัวได้ไม่จำกัดจำนวน แต่จำกัดคนใช้งานร่วมกันได้ 5 คนต่อ 1 คลัง
  3. ใช้บริการของโฮสติ้ง (hosting) หรือคลาวด์เซอร์วิส (cloud service) เช่น แอชเชอร์ (azure) ของไมโครซอฟต์ หรือ โอเพ่นชิฟท์ (openshift) ของเร้ดแฮต (redhat)
  4. ซอร์สฟอร์จ (sourceforge) สมาชิกสร้างได้ฟรีโดยเข้าไปที่โปรไฟล์ (Profile) และกดเพิ่มทูล (Add Tool) ในส่วนของทูลส่วนตัว (Personal Tools) จากนั้นเพิ่มกิต (Git)

เนื่องจากยังไม่ได้ทำงานร่วมกับใคร จึงใช้แบบที่ 3 โดยเลือกโอเพ่นชิฟท์ไปก่อน เพราะสะดวกที่สุด ใช้เพียงการสร้างเซเคียวเชลล์ เซอร์ติฟิเขต (secure shell certificate) และด้วยข้อดีของกิตจึงเอาไว้พุช (git push) ขึ้นบิตบั๊คเก้ตทีหลังก็ยังได้

เป็นความคิดเห็นส่วนตัวนะ หวังว่าไม่ได้ทำให้สาวกกิตฮับหรือบิตบั๊คเก้ตเคืองนะ ยังมีผู้ให้บริการอีกหลายค่ายที่ไม่ได้พูดถึงอีกเยอะเหมือนกัน

สแลช (slash)