SSH Access to Container: Manage Your Server Remotely

Ruk-Com Cloud Platform อนุญาตให้คุณเข้าถึงคอนเทนเนอร์ภายในบัญชีของคุณผ่าน SSH ได้อย่างสะดวก โดยสามารถเลือกใช้งานได้ 2 วิธีหลัก:

  • Web SSH – คุณสามารถคลิกปุ่ม Web SSH ที่อยู่ถัดจาก Environment หรือคอนเทนเนอร์ที่ต้องการ เพื่อเปิด Terminal แบบออนไลน์ผ่านเว็บเบราว์เซอร์ได้ทันที เทอร์มินัลจะปรากฏขึ้นที่ด้านล่างของหน้าแดชบอร์ด ช่วยให้คุณจัดการเซิร์ฟเวอร์ได้อย่างรวดเร็วโดยไม่ต้องใช้โปรแกรมภายนอก
  • SSH Gate (ผ่าน Local SSH Client) – อีกวิธีในการเชื่อมต่อเซิร์ฟเวอร์ของคุณคือการใช้ SSH client จากเครื่องของคุณเอง (เช่น Terminal หรือโปรแกรมเช่น PuTTY) โดยใช้ SSH Key Pair ที่ตั้งค่าไว้ล่วงหน้า:
    • เพิ่ม Public Key ไปยังบัญชีของคุณผ่านหน้าแดชบอร์ด Ruk-Com Cloud
    • ใช้ Private Key ที่ตรงกันบนเครื่องของคุณสำหรับการเชื่อมต่อ
      วิธีนี้เหมาะสำหรับผู้ที่ต้องการจัดการเซิร์ฟเวอร์ผ่านเครื่องส่วนตัว โดยไม่ต้องเปิดเบราว์เซอร์

เมื่อคุณตั้งค่าข้อมูลที่จำเป็นทั้งหมดเรียบร้อยแล้ว คุณสามารถเชื่อมต่อผ่าน SSH ได้โดยใช้คำสั่งที่ปรากฏใน กรอบสีแดง ภายใต้แท็บ SSH Access ในบัญชีของคุณ

🛠️ หมายเหตุ:
เพื่อความสะดวกและเข้าถึงได้รวดเร็ว บทความนี้จะเน้นการใช้งานผ่าน Web SSH เป็นหลัก
อย่างไรก็ตาม คำสั่งต่าง ๆ ที่แสดงด้านล่างนี้สามารถใช้ได้เช่นเดียวกันหากคุณเชื่อมต่อผ่าน SSH ด้วยโปรแกรมจากเครื่องของคุณ (Local SSH Client)

เคล็ดลับ:
สำหรับเซิร์ฟเวอร์ส่วนใหญ่ภายใน Ruk-Com Cloud PaaS (รวมถึงคอนเทนเนอร์ Docker แบบกำหนดเอง) คุณจะได้รับ สิทธิ์ root แบบเต็มโดยอัตโนมัติ เมื่อเชื่อมต่อผ่าน SSH

ส่วนโหนดที่เหลือซึ่งมักสร้างจาก Stack Templates ที่ผ่านการรับรองโดย Ruk-Com Cloud จะมีการจำกัดสิทธิ์บางประการ แต่ยังสามารถควบคุมและจัดการได้ในระดับที่เพียงพอผ่านชุดคำสั่งที่ระบบอนุญาตไว้เป็นพิเศษ

หากคุณต้องการดู รายการคำสั่งเทอร์มินัลทั้งหมดพร้อมคำอธิบายตัวเลือกต่างๆ สามารถเข้าไปดูเพิ่มเติมได้จากเว็บไซต์

ในคู่มือนี้ เราจะเน้นที่คำสั่งพื้นฐานทั่วไป เพื่อให้คุณเข้าใจหลักการทำงานและสามารถเริ่มต้นจัดการคอนเทนเนอร์ผ่าน SSH Protocol ได้อย่างมั่นใจ

การนำทางระบบไฟล์ภายในคอนเทนเนอร์ (ผ่าน SSH)

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

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

คำสั่งพื้นฐานสำหรับการนำทางโฟลเดอร์:

  • cd {directory_path}
    เปลี่ยนไปยังไดเรกทอรีที่ระบุ ซึ่ง {directory_path} สามารถเป็น:
    • โฟลเดอร์ย่อยในปัจจุบัน เช่น cd logs
    • โฟลเดอร์ซ้อนหลายระดับ เช่น cd opt/tomcat
    • เส้นทางแบบเต็ม (Absolute path) เช่น cd /var/www/webroot/ROOT
  • cd ..
    ย้อนกลับไปยังโฟลเดอร์ระดับก่อนหน้าในโครงสร้างไฟล์
  • cd ~
    กลับไปยัง Home Directory ของผู้ใช้ทันที ไม่ว่าคุณจะอยู่ในโฟลเดอร์ใดก็ตาม
  • cd /
    ไปยัง Root Directory ของคอนเทนเนอร์ (จุดเริ่มต้นของโครงสร้างไฟล์ทั้งหมด)

คุณจะเห็นสตริงสีม่วงที่ข้างชื่อโฮสต์คอนเทนเนอร์จะเปลี่ยนไป ซึ่งบ่งบอกถึงตำแหน่งปัจจุบันของคุณ

เคล็ดลับ: หากคุณเพิ่งเริ่มใช้ stack runtime ที่รันอินสแตนซ์ของคุณ คุณควรสำรวจโครงสร้างภายในก่อน (เช่น แผนผังของไฟล์และไดเร็กทอรี ไฟล์การกำหนดค่าที่ใช้ได้ ฯลฯ) วิธีที่สะดวกที่สุดคือการใช้ File Manager GUI ในตัวซึ่งมีให้โดยคลิกที่ปุ่ม Config ถัดจากเซิร์ฟเวอร์ที่ต้องการที่แผงควบคุมในหน้าแดชบอร์ด



คลิกปุ่ม “Config” ที่อยู่ถัดจากคอนเทนเนอร์นั้น ระบบจะเปิดหน้าจอ File Manager ซึ่งคุณสามารถเรียกดูไฟล์/ไดเรกทอรี ลบ แก้ไข หรืออัปโหลดไฟล์ได้ทันที

1. ในการสร้างไฟล์หรือโฟลเดอร์ใหม่ให้รันคำสั่งถัดไป:

  • touch [path-to/]{file}  สร้างไฟล์ใหม่
  • mkdir [path-to/]{dir} – สร้างโฟลเดอร์ใหม่

โดยที่

{file} และ {dir} – ชื่อไฟล์หรือโฟลเดอร์ที่ต้องการ (หากสร้างในไดเร็กทอรีปัจจุบัน)

[path-to/] – พารามิเตอร์ทางเลือก สำหรับกรณีนี้รายการใหม่ควรอยู่ในตำแหน่งอื่น


2. เพื่อให้แน่ใจว่าไฟล์และโฟลเดอร์ที่ระบุไว้ข้างต้นได้ถูกสร้างขึ้นแล้ว มาดูไฟล์และไดเร็กทอรีที่ตำแหน่งปัจจุบันโดยใช้คำสั่งนี้:

ls

3. คำสั่งทั่วไปที่ใช้สำหรับการจัดการไฟล์

  • cat – ใช้กับไฟล์ text; ขึ้นอยู่กับ args ที่ระบุ อนุญาตให้ดู, รวมเข้าด้วยกัน, ทำไฟล์ซ้ำ (duplicate)
  • cp – ใช้สำหรับคัดลอกไฟล์และไดเร็กทอรี
  • locate – ใช้สำหรับค้นหาไฟล์หรือไดเร็กทอรีที่ต้องการภายในเซิร์ฟเวอร์โดยใช้ชื่อ (หรือบางส่วน)
  • mv – ใช้สำหรับย้ายไฟล์หรือเปลี่ยนชื่อไฟล์และไดเร็กทอรี
  • pwd – ใช้สำหรับดูเส้นทางแบบเต็มไปยังไดเร็กทอรีปัจจุบัน (เทียบกับ root คอนเทนเนอร์)
  • rm – ใช้สำหรับลบไฟล์หรือไดเร็กทอรีที่ระบุ

ตอนนี้มาดูความค่าเริ่มต้น shell เพื่อตรวจสอบการทำงานและจัดการเมตริกของโหนด การใช้ทรัพยากร กระบวนการการทำงานภายใน ฯลฯ

คำสั่งสำหรับการดูข้อมูลระบบเซิร์ฟเวอร์

1. การรับข้อมูลสรุปสั้นๆเกี่ยวกับสถานะคอนเทนเนอร์ปัจจุบันและตรวจสอบให้แน่ใจ เช่น ไม่มีตัวที่ทำให้เกิดผลต่อประสิทธิภาพหรือความสามารถในการดำเนินการผิดปกติ โดยใช้คำสั่ง w:


คุณจะเห็นผลลัพธ์คือข้อมูลของระบบทั่วไป (คือ – เวลาระบบปัจจุบัน เวลาทำงานของอินสแตนซ์ จำนวนผู้ใช้ที่บันทึก และจำนวนเฉลี่ยของกระบวนการที่ใช้งานอยู่ในช่วง 1/5/15 นาทีที่ผ่านมา) และรายละเอียดเกี่ยวกับผู้ใช้ที่เชื่อมต่อด้านล่าง (ชื่อ, ประเภทเทอร์มินัล, IP การเชื่อมต่อต้นทาง, เวลาเข้าสู่ระบบ, สถิติเกี่ยวกับกิจกรรมล่าสุดและชื่อของกระบวนการที่ใช้งานอยู่ในปัจจุบัน)

เคล็ดลับ: ลักษณะเฉพาะของการใช้ Shell ตามเดิมนั้น คำสั่ง w จะไม่มีข้อมูลของผู้ใช้ที่เชื่อมต่อผ่าน terminal emulator

2. สถิติทั้งหมดเกี่ยวกับการใช้ RAM ของเซิร์ฟเวอร์ถูกเก็บไว้ในไฟล์ /proc/meminfo หากต้องการตรวจสอบเนื้อหาให้ใช้คำสั่ง cat:

cat /proc/meminfo

คุณสามารถตรวจสอบข้อมูลต่างๆ เช่น หน่วยความจำที่จัดสรรทั้งหมด (MemTotal) หน่วยความจำที่ไม่ได้ใช้ (MemFree) หน่วยความจำที่ใช้เป็นแคช (Cached) และอื่นๆ

3. การแสดงข้อมูลพื้นฐานซอร์ฟแวร์และฮาร์ดแวร์คอนเทนเนอร์ ให้ดำเนินการตามคำสั่งต่อไปนี้:

uname -a

คุณจะเห็นข้อมูลของ server kernel (ชื่อ, เวอร์ชัน, วันที่วางจำหน่าย) โหนดชื่อโฮสต์, ประเภท CPU, OS และอื่นๆ

วิธีการจัดการกระบวนการคอนเทนเนอร์ระยะไกลผ่านเทอร์มินอล

1. ในขณะที่เชื่อมต่อผ่าน SSH คุณสามารถตรวจสอบกระบวนการทำงานทั้งหมดภายในคอนเทนเนอร์ได้ด้วยคำสั่ง top:

ข้อมูลจะอัปเดตอย่างต่อเนื่องในโหมดเรียลไทม์โดยแสดงข้อมูลเกี่ยวกับกระบวนการของผู้ใช้ทั้งหมด (รวมถึงกระบวนการของระบบ)

กด Ctrl + C เพื่อหยุดการดำเนินการคำสั่งและกลับสู่โหมด input console

2. หากต้องการแสดงเฉพาะกระบวนการที่ user ใช้งานอยู่ให้พิมพ์คำสั่ง ps:

3. คำสั่งที่มีประโยชน์อีกคำสั่งหนึ่งคือ kill ซึ่งอนุญาตให้ยุติกระบวนการทำงานใดๆที่กำหนดโดย {pid} เป็น argument (ตัวระบุกระบวนการที่จำเป็นสามารถพบได้ใน output ของคำสั่งก่อนหน้า):

kill {pid}

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

การเก็บไฟล์แอปพลิเคชันปฏิบัติการผ่าน SSH Console

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

1. คำสั่ง wget อนุญาตให้ดาวน์โหลดไฟล์ตาม {link} ที่ระบุ:

wget {link}

2. จากนั้นคุณสามารถ unzip ไฟล์ถาวรที่ดาวน์โหลดโดยใช้คำสั่ง:

unzip {archive}

โดยที่ {archive} คือเส้นทางที่จะบีบอัดแพ็คเกจของคุณ

ดังนั้นไฟล์ที่แยกออกมาทั้งหมดจะถูกวางไว้ในโฟลเดอร์ชื่อเดียวกัน (หลังไฟล์เก็บถาวร) ภายในไดเร็กทอรีปัจจุบัน

การตั้งค่าตัวแปรเซิร์ฟเวอร์ที่กำหนดเองผ่าน SSH

1. รายการ environment variables เริ่มต้นสำหรับคอนเทนเนอร์ใดๆสามารถดูได้ภายในไฟล์ .bash_profile ซึ่งอยู่ในไดเร็กทอรีหลักของคอนเทนเนอร์ ดังนั้นตรวจสอบว่าคุณอยู่ไดเร็กทอรีคอนเทนเนอร์ที่ถูกต้องและรันคำสั่งถัดไป:

cat .bash_profile

2. ไฟล์ .bash_profile จะไม่สามารถแก้ไขได้ในกรณีที่คุณต้องการตั้งค่าตัวแปรเพิ่มเติมคุณสามารถเขียนในไฟล์ .bashrc ภายในโฟลเดอร์เดียวกัน (หากไม่มี ให้สร้างขึ้นใหม่) โดยใช้ text editor (เช่น vi):

3. การกำหนดตัวแปรใหม่ควรกำหนดในรูปแบบต่อไปนี้:

export {VAR_NAME}={VAR_VALUE}

โดยที่:

  • {VAR_NAME} – ชื่อของตัวแปรที่คุณต้องการจะสร้าง
  • {VAR_VALUE} – ค่าของตัวแปรที่เหมาะสม

หมายเหตุ: ไฟล์ .bashrc จะถูกอ่านระหว่างการเริ่มต้น bash ดังนั้นการเปลี่ยนแปลงจะถูกนำไปใช้โดยอัตโนมัติเมื่อเริ่มต้นเซสชันผู้ใช้เพิ่มเติมทั้งหมด แต่ในกรณีที่คุณต้องการใช้การเปลี่ยนแปลงที่ทำขึ้นทันที ให้รันคำสั่ง bash เพื่อรีสตาร์ท shell

4. การตรวจสอบว่าใช้ตัวแปรที่กำหนดเองของคุณสำเร็จหรือไม่ ให้รันคำสั่งต่อไปนี้:

echo ${VAR_NAME}

คุณจะเห็นสตริง {VAR_VALUE} คล้ายกับค่าที่คุณเพิ่งกำหนดให้กับตัวแปร ${VAR_NAME} ในไฟล์ .bashrc

ข้อมูลเฉพาะของ Certified Containers Remote Management

Ruk Com Cloud PaaS มีซอร์ฟแวร์สแต็กสองประเภทซึ่งใช้เป็นฐานในการสร้างคอนเทนเนอร์แต่ละอัน:

  • dockerized – เทมเพลตโมเดลแบบรวมตามการรองรับมาตรฐาน Docker แบบ native พร้อมหลักการทั่วไปและฟังก์ชันการจัดการคอนเทนเนอร์สำหรับเซิร์ฟเวอร์ทุกประเภท (เช่น ไม่ว่าจะเป็น compute node, หรือเซิร์ฟเวอร์ฐานข้อมูล, หรืออินสแตนซ์แคช ฯลฯ)
    เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ดังกล่าวผ่าน SSH คุณจะสามารถควบคุมอินสแตนซ์ได้อย่างเต็มที่อัตโนมัติโดยให้สิทธิ์รูทและสามารถดำเนินการใดๆที่ต้องการภายในคอนเทนเนอร์ได้

  • certified – เทมเพลตซอร์ฟแวร์อ้างอิงตามการใช้งานสแต็กดั้งเดิมและปรับปรุงโดยทีมงานของเราตามแพลตฟอร์มเฉพาะ
    เมื่อเข้าสู่เซิร์ฟเวอร์ดังกล่าวผ่าน SSH คุณจะเข้าสู่ระบบในฐานะผู้ใช้เซิร์ฟเวอร์เริ่มต้น เพื่อที่จะจัดการคอนเทนเนอร์อย่างมีประสิทธิภาพ เราจึงได้จัดทำตัวเลือกเพิ่มเติมที่สามารถใช้งานได้ภายใต้บัญชีผู้ใช้ทั่วไป:
    • sudo sbin/service {service_name} {start|stop|restart|condrestart|status|reload|upgrade|help} – ชุดคำสั่งเพื่อดำเนินการเซิร์ฟเวอร์หลักซึ่งกำหนดด้วย placeholder {service_name} (โดยที่ค่าที่เป็นไปได้ขึ้นอยู่กับเซิร์ฟเวอร์ที่ใช้ ได้แก่ jetty, mysql, tomcat, memcached, mongod, postgresql, couchdb, glassfish-domain1, nginx, php-fpm และ httpd)
    • sudo usr/bin/jem firewall {fwstart|fwstop} – เพื่อ run/stop ไฟร์วอลล์คอนเทนเนอร์ตามลำดับ
    • sudo usr/bin/jem nscd – เพื่อควบคุม name-service caching daemon ซึ่งเก็บบันทึกสำหรับคำขอชื่อเซิร์ฟเวอร์ที่พบบ่อยที่สุด (เช่น passwd, โฮสต์, กลุ่ม ฯลฯ)
    • sudo sbin/service rpcbind.service – เพื่อปฏิบัติการกับบริการ RPC bind ใช้เพื่อจับคู่ชื่อที่ผู้ใช้อ่านได้กับหมายเลขโปรแกรมที่จัดการการโทรเข้า RPC

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

บทสรุป

คุณทราบข้อมูลพื้นฐานที่จำเป็นทั้งหมดในการจัดการคอนเทนเนอร์ของคุณผ่านคอนโซล คุณสามารถใช้ประโยชน์จาก PaaS ได้ยืดหยุ่นมากขึ้นในขณะที่ใช้งานแอปพลิเคชันของคุณเริ่มต้นกับ Multi-Cloud ที่หนึ่งในผู้ให้บริการที่ผ่านการรับรองทั่วโลก