Wee


การตั้งค่า SMTP ในปลั๊กอิน WP Mail SMTP รุ่น Free สำหรับ WordPress MultiSite

หากประสงค์จะตั้งค่า SMTP ในปลั๊กอิน WP Mail SMTP รุ่น Free สำหรับ WordPress Multisite ครั้งละจำนวนหลายเว็บไซต์ สามารถทำได้โดยตั้งค่า WP Mail SMTP ในเว็บไซต์หลักให้แล้วเสร็จ จากนั้นจึงใช้คำสั่งต่อไปนี้ อธิบายคำสั่ง คำสั่งด้านบนเป็นชุดคำสั่งที่ใช้กับ WP-CLI (WordPress Command Line Interface) ซึ่งเป็นเครื่องมือที่ใช้จัดการ WordPress ผ่าน command line มาตรฐานของระบบปฏิบัติการ มีวัตถุประสงค์เพื่อคัดลอกการตั้งค่า SMTP จากเว็บไซต์หลักไปยังเว็บไซต์อื่น ๆ ในเครือข่าย WordPress Multisite โดยมีรายละเอียดดั […]


การปลดล็อกบัญชี Oracle Database ผ่านโปรแกรม sqlplus 1

บัญชีในโปรแกรมจัดการฐานข้อมูล Oracle Database อาจถูกล็อคได้ด้วยสาเหตุหลายประการ เช่น รหัสผ่านหมดอายุ มีการเข้าสู่ระบบด้วยรหัสผ่านที่ไม่ถูกต้องเกินจำนวนครั้งที่กำหนด ฯลฯ อาการที่พบคือเมื่อเข้าสู่ระบบด้วยบัญชีที่ถูกล็อกจะพบข้อผิดพลาด ORA-28000: the account is locked สามารถปลดล็อกบัญชีผ่านโปรแกรม sqlplus ได้โดยเปิดโปรแกรม Comand Prompt และพิมพ์คำสั่งดังนี้ หากระบุรหัสผ่านถูกต้องจะพบหน้าต่างที่มีลักษณะดังนี้ พิมพ์คำสั่งต่อไปนี้เพื่อปลดล็อคบัญชี โดยแทนที่ username ด้วยชื่อบัญชีที่ต้องการปลดล็อค


ภาพตัวอย่างข้อผิดพลาด

แก้ไขปัญหากรณีที่ไม่สามารถใช้คำสั่ง kubectl ได้ (the server has asked for the client to provide credentials) ใน RKE2

kubectl เป็นคำสั่งสำหรับใช้จัดการ Kubernetes Cluster โดยจะใช้ใบรับรองอิเล็กทรอนิกส์ในการติดต่อกับ control plane ซึ่งอาจจะพบปัญหาที่ทำให้ไม่สามารถใช้งานคำสั่งดังกล่าวได้เมื่อผ่านไประยะเวลาหนึ่ง ปัญหา เมื่อใช้คำสั่ง เช่น kubectl version หรือ kubectl get node เป็นต้น ผู้ใช้จะพบข้อผิดพลาด “error: You must be logged in to the server (the server has asked for the client to provide credentials)” นอกจากนี้ยังอาจพบข้อผิดพลาดอื่นร่วมด้วย เช่น “E0808 14:08:21.359314 3292 memcache.go:265] […]


แก้ปัญหากรณีที่ไม่สามารถเพิ่ม custom template ที่สร้างขึ้นมาใน Certificate Templates ได้

ในกรณีประสงค์ที่จะสร้าง self-signed certificate เพื่อใช้งานบน Windows Server สำหรับบริการต่าง ๆ เช่น Remote Desktop Connection หรือโพรโทคอล LDAPS โดยทั่วไปแล้วจะใช้วิธีเปิดใช้งาน role “Active Directory Certificate Services” เพื่อสร้าง root certificate และใช้ root certificate ออก certificate สำหรับบริการนั้น ๆ โดยมักจะใช้ custom template เพื่อให้สะดวกต่อการออก certificate ที่ตรงความต้องการ ปัญหา ในกรณีปกติ เมื่อสร้าง custom template ผ่านโปรแกรม Certificate Templates Console (certtmpl. […]


การลบ/แทนที่ OSD ใน Rook Ceph

กรณีที่อุปกรณ์ (HDD, SSD, ฯลฯ) ล้มเหลว จะต้องลบ OSD ของอุปกรณ์ที่มีปัญหาออก อาการหนึ่งของอุปกรณ์ล้มเหลวที่สังเกตได้คือ pod ของ OSD ที่จัดการอุปกรณ์นั้น มี STATUS เป็น CrashLoopBackoff เมื่อใช้คำสั่ง kubectl -n rook-ceph get pod -l app=rook-ceph-osd โดยบทความนี้จะอธิบายถึงขั้นตอนในการลบ OSD ออกจากคลัสเตอร์ ข้อควรระวัง นำอุปกรณ์ที่มีปัญหาออกจาก CephCluster (หากตั้ง useAllDevices: true ใน CephCluster ไว้ ให้ข้ามขั้นตอนนี้) แก้ไข CephCluster โดยนำรายการอุปกรณ์ที่มีปัญหาออก ด้วยคำสั่ง บทความนี้จะยกตั […]


การติดตั้ง Rook Ceph บน Kubernetes Cluster

สำหรับระบบงานที่เป็นระบบแบบกระจาย (distributed system) หรือเป็นระบบที่มีคุณสมบัติเกี่ยวกับการทำสำเนาข้อมูล (replication) อยู่แล้ว เราอาจจะจัดเก็บข้อมูลโดยใช้คุณสมบัติ Local Persistent Volumes ของ Kubernetes หรือใช้ Local Path Provisioner เพื่อจัดเก็บข้อมูลของแต่ละ Pod ไว้ให้กระจายไปตามโนดของคลัสเตอร์ได้ แต่สำหรับระบบงานทั่วไปที่ไม่มีกลไกเหล่านี้ การจัดเก็บข้อมูลไว้บนโนดใดโนดหนึ่งมีความเสี่ยงที่ข้อมูลจะสูญหายเมื่อโนดที่ใช้เก็บข้อมูลนั้น ๆ ล้มเหลว ส่งผลให้ระบบงานหยุดชะงัก เราจึงจำเป […]


ใช้ Local Path Provisioner ช่วยจัดสรรที่จัดเก็บข้อมูลถาวรภายใน Kubernetes Cluster โดยอัตโนมัติ 1

การจัดเก็บข้อมูลถาวรไว้บนโนดใดโนดหนึ่งของ Kubernetes Cluster มีความเสี่ยงที่ข้อมูลจะสูญหายหากโนดที่ใช้เก็บข้อมูลล้มเหลว อย่างไรก็ตาม ในกรณีที่ระบบงานมีความทนทานต่อการสูญหายของข้อมูล เช่น เป็นระบบแบบกระจาย (distributed system) เป็นระบบที่มีคุณสมบัติเกี่ยวกับการทำสำเนาข้อมูล (replication) หรือเป็นระบบทดสอบ อาจจะพิจารณาเลือกใช้วิธีเก็บข้อมูลถาวรไว้บนโนดใดโนดหนึ่ง โดยใช้คุณสมบัติ Local Persistent Volumes ของ Kubernetes ก็ได้ อย่างไรก็ตาม การใช้คุณสมบัติ Local Persistent Volumes มีขั้นตอนที่ค่อนข้างย […]


การจัดเก็บข้อมูลแบบถาวรบน Kubernetes Cluster ในองค์กร

Kubernetes รุ่นแรก ๆ เป็นแพลตฟอร์มการจัดการคอนเทนเนอร์ที่ออกแบบมาเพื่อรองรับแอปพลิเคชันที่ไม่มีสถานะ (stateless applications) ซึ่งไม่จำเป็นต้องจัดเก็บข้อมูลถาวร แต่ในทางปฏิบัติ มีแอปพลิเคชันจำนวนมากที่ต้องจัดเก็บข้อมูลถาวร เช่น ฐานข้อมูล เซิร์ฟเวอร์จัดเก็บไฟล์ ฯลฯ โดยผู้พัฒนา Kubernetes ก็เล็งเห็นถึงปัญหานี้ จึงได้เพิ่มคุณสมบัติสำหรับจัดการข้อมูลแบบถาวร เช่น Persistent Volumes (PVs), Persistent Volume Claims (PVCs), StatefulSet, ฯลฯ เข้ามาเพื่อให้การจัดการเกี่ยวกับการจัดเก็บข้อมูลแบบถาวรบน Kuber […]


แผนภาพแสดงการเพิ่มโนดใน Kubernetes cluster

การเพิ่มโนดใน Kubernetes cluster (RKE 2) โดยใช้ Ansible (role lablabs.rke2) 1

กรณีที่เคยติดตั้ง Kubernetes cluster โดยใช้ Ansible (role lablabs.rke2) แล้วต้องการเพิ่มโนดในภายหลัง หรือแทนที่โนดที่เคยลบไปแล้ว สามารถทำได้โดยมีขั้นตอนดังนี้ ลบระเบียนโนดเก่าออกจากไฟล์ known_hosts กรณีการแทนที่โนดที่เคยลบไปแล้ว ให้ลบระเบียนโนดนั้นออกจากไฟล์ known_hosts ของสถานีงานก่อน โดยใช้คำสั่ง ssh-keygen -R <ชื่อโฮสต์ของโนดเก่า> คัดลอก public key ไปไว้ในไฟล์ authorized_keys ของโนดใหม่ สามารถคัดลอก public key ไปไว้ในไฟล์ authorized_keys ของโนดใหม่ได้โดยใช้คำสั่ง ssh-copy-id <ชื่อผู้ใช้ […]


แผนภาพแสดงการลบโนดออกจาก Kubernetes cluster

การลบโนดออกจาก Kubernetes cluster

กรณีที่โนดขัดข้อง หรือมีความประสงค์ที่จะตั้งค่าโนดใหม่ มีขั้นตอนลบโนดออกจาก Kubernetes cluster ดังนี้ การหยุด pod ทั้งหมดบนโนด สามารถหยุดการทำงานของ pod ทั้งหมด โดยใช้คำสั่ง โดยจะเห็นได้ว่ามีการใช้พารามิเตอร์เพิ่มเติม ดังนี้ ตรวจ pod ในที่ทำงานในโนด ใช้คำสั่ง เพื่อดูว่ายังมี pod ทำงานในโนดนั้นหรือไม่ โดยใช้คำสั่ง หากไม่มี pod ทำงานอยู่ในโนดนั้นแล้ว (ยกเว้น pod ที่จัดการด้วย DaemonSet) สามารถลบโนดออกจาก Kubernetes cluster ได้ในขั้นตอนถัดไป ลบโนดออกจาก Kubernetes cluster โดยใช้คำสั่ง: