ใช้ 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)