Ruk-Com Cloud Platform อนุญาตให้สร้างการเข้าถึง SSH ไปยังคอนเทนเนอร์ใดๆในบัญชีของคุณ ในคู่มือนี้เราได้จัดเตรียมคำสั่งทั่วไปบางส่วนที่อาจมีประโยชน์เมื่อจัดการเซิร์ฟเวอร์ของคุณผ่าน SSH terminal
โดยมีมีสองวิธีในการเชื่อมต่อเซิร์ฟเวอร์ของคุณภายใน Ruk-Com Cloud PaaS ผ่าน SSH:
- Web SSH – คลิก Web SSH ถัดจากเลเยอร์ environment ที่ต้องการหรือคอนเทนเนอร์เฉพาะเพื่อเข้าถึงและเริ่มจัดการออนไลน์โดยตรงอย่างรวดเร็วผ่านเว็บเบารว์เซอร์ซึ่งเทอร์มินอลจะเปิดขึ้นที่ด้านล่างของแดชบอร์ด

- SSH Gate – อีกวิธีหนึ่ง คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ของคุณผ่าน local SSH client โดยอิงจาก SSH keys pair ที่สร้างไว้ในขั้นต้น (ซึ่งควรเพิ่ม public key เพื่อตั้งค่าบัญชีของคุณและ private key ที่เกี่ยวข้อง) เพื่อจัดการที่เครื่องของคุณ

เมื่อปฏิบัติตามข้อกำหนดทั้งหมดแล้ว คุณสามารถสร้างการเชื่อมต่อ SSH ได้โดยใช้คำสั่งในกรอบสีแดงจากแท็บ SSH Access ที่บัญชีของคุณ
เพื่อความง่ายและการเข้าถึงที่รวดเร็วในบทความนี้เราจะอธิบายเกี่ยวกับการใช้ประโยชน์จากเครื่องมือ web SSH อย่างไรก็ตาม คำสั่งที่อธิบายไว้ด้านล่างสามารถใช้ได้เมื่อทำงานผ่าน remote local client ที่คล้ายคลึงกัน
เคล็ดลับ:
– เซิร์ฟเวอร์ส่วนใหญ่ภายใน Ruk-Com Cloud PaaS (รวมถึงคอนเทนเนอร์ Docker แบบกำหนดเอง) คุณจะได้สิทธิ์ root แบบเต็มโดยอัตโนมัติขณะเชื่อมต่อผ่าน SSH สำหรับโหนดที่เหลือส่วนใหญ่เป็นโหนดเดิมซึ่งสร้างขึ้นจาก stack templates ที่ผ่านการรับรองที่จัดการโดย Ruk-Com Cloud ซึ่งจะรับประกันระดับการควบคุมที่เพียงพอได้ด้วยชุดคำสั่งที่อนุญาตเพิ่มเติม
– รายการคำสั่งเทอร์มินัลทั้งหมดพร้อมคำอธิบายตัวเลือกที่เหมาะสมทั้งหมด คุณสามารถหาได้จากเว็บไซต์โดยเฉพาะ คล้ายกับลิงก์ด้านบน ในคู่มือนี้เราจะพิจารณาคำสั่งทั่วไปจำนวนหนึ่งเพื่อให้ข้อมูลเชิงลึกเกี่ยวกับพื้นฐานของการทำงานกับคอนเทนเนอร์ผ่าน SSH protocol
การนำทางผ่านระบบไฟล์คอนเทนเนอร์ระยะไกล
ในส่วนนี้เหมาะสำหรับมือใหม่มากกว่านักพัฒนาทั่วไปดังนั้นคุณอาจข้ามไปและดำเนินการที่ซับซ้อนมากขึ้นได้ อย่างไรก็ตามคุณสามารถดำเนินการได้ตามขั้นตอนนี้
เมื่อคุณป้อนคอนเทนเนอร์ที่ต้องการผ่านคอนโซลแล้วไปที่ home directory ของเซิร์ฟเวอร์ตามค่าเริ่มต้นซึ่งโดยทั่วไปจะใช้สำหรับการจัดเก็บข้อมูลและการกำหนดค่าที่กำหนดเองโดยเฉพาะ สำหรับการนำทางระหว่างโฟลเดอร์ต่างๆ จะใช้คำสั่ง cd โดยมี arguments ต่อไปนี้:
- {directory_path} – ชื่อของโฟลเดอร์ที่ซ้อนกัน (ซึ่งสามารถระบุระดับการซ้อนที่คั่นด้วยเครื่องหมายทับได้หลายระดับ) หรือเส้นทางแบบเต็มไปยังไดเร็กทอรีที่ต้องการซึ่งสัมพันธ์กับ root คอนเทนเนอร์
- .. – เพื่อนำทางย้อนกลับหนึ่งระดับภายในโครงสร้างไฟล์
- ~ – เพื่อสลับไปยังไดเร็กทอรีที่ทำงาน (หน้าแรกของเซิร์ฟเวอร์) ได้ทันทีจากที่ใดก็ได้
- / – เพื่อสลับไปยังคอนเทนเนอร์ root directory

คุณจะเห็นสตริงสีม่วงที่ข้างชื่อโฮสต์คอนเทนเนอร์จะเปลี่ยนไป ซึ่งบ่งบอกถึงตำแหน่งปัจจุบันของคุณ
เคล็ดลับ: หากคุณเพิ่งเริ่มใช้ stack runtime ที่รันอินสแตนซ์ของคุณ คุณควรสำรวจโครงสร้างภายในก่อน (เช่น แผนผังของไฟล์และไดเร็กทอรี ไฟล์การกำหนดค่าที่ใช้ได้ ฯลฯ) วิธีที่สะดวกที่สุดคือการใช้ File Manager GUI ในตัวซึ่งมีให้โดยคลิกที่ปุ่ม Config ถัดจากเซิร์ฟเวอร์ที่ต้องการที่แผงควบคุมในหน้าแดชบอร์ด
โครงสร้างไฟล์ที่เหมาะสมจะแสดงในแท็บด้านล่าง
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 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 ก็ตามแต่ไม่จำเป็นต้องป้อนรหัสผ่าน root ของผู้ดูแลระบบเซิร์ฟเวอร์ วิธีนี้ช่วยให้คุณช้ประโยชน์จากฟังก์ชันคอนเทนเนอร์ที่จำเป็นทั้งหมดซึ่งจำเป็นสำหรับการทำงานที่เหมาะสมสำหรับแอปพลิเคชันของคุณแม้จะได้รับอนุญาตจากบัญชีเป็นประจำก็ตาม
บทสรุป
คุณทราบข้อมูลพื้นฐานที่จำเป็นทั้งหมดในการจัดการคอนเทนเนอร์ของคุณผ่านคอนโซล คุณสามารถใช้ประโยชน์จาก PaaS ได้ยืดหยุ่นมากขึ้นในขณะที่ใช้งานแอปพลิเคชันของคุณเริ่มต้นกับ Multi-Cloud ที่หนึ่งในผู้ให้บริการที่ผ่านการรับรองทั่วโลก