Category: Knowledge
ชุบชีวิต Router เก่า ด้วย OpenWrt
ในขั้นตอนการออกแบบและวางระบบเครือข่ายต่าง ๆ ที่มีความซับซ้อน ปัจจัยหนึ่งที่เข้ามาเกี่ยวของกับการทำระบบเครือข่ายคือ อุปกรณ์เครือข่าย ที่จุดขายของอุปกรณ์คือความสามารถในการจัดการและรองรับ มาตรฐานทางเครือข่าย ต่าง ๆ ซึ่งแปรผันตามราคาของอุปกรณ์นั้นเองด้วย อุปกรณ์เครือข่ายที่ตกรุ่นหลายชิ้น ก็มักจบลงที่การเป็นขยะอิเล็กทรอนิก หรือเป็นวัตถุโบราณในครัวเรือน ในบทความนี้ เกิดจากที่ตัวผมเองต้องการวางระบบเครือข่ายใหม่ โดยมีการแบ่ง VLAN ให้กับอุปกรณ์ทั่วไปและ อุปกรณ์ IoT แต่ติดปัญหาที่ Wireless Router (ASUS RT-ARCH13) ที่มีอยู่นั้นไม่รองรับการทำ VLAN Tagging ผมจึงมองหาวิธีจัดการทำให้อุปกรณ์นี้ใช้งานได้โดยที่ไม่ต้องเปลี่ยนตัวอุปกรณ์ คำเตือน: การ Flash Firmware ที่ไม่ใช่ของบริษัทผู้ผลิต ทำให้อุปกรณ์หมดประกันทันที และมีความเสี่ยงที่อุปกรณ์เสียหายได้ (Brick) ควรศึกษารายละเอียดและขั้นตอนการติดตั้งอย่างละเอียด และ ศึกษาขั้นตอนการกู้คืน (Recovery) ทางผู้เขียนไม่รับผิดชอบในทุกกรณี (AT YOUR OWN RISK) เนื้อหาที่จะพูดถึงในบทความนี้ OpenWrt คืออะไร OpenWrt เป็นระบบปฏิบัติการเปิดที่ออกแบบมาเพื่อใช้กับอุปกรณ์เครือข่ายไร้สาย และอุปกรณ์เน็ตเวิร์ค โดยเฉพาะ โดยมักนิยมใช้กับอุปกรณ์เราเตอร์ (Router)…
มีอะไรใหม่ใน Docker for Mac 2018-07-25
จากอัพเดทล่าสุดของ Docker for Mac วันที่ 25 กรกฎาคม 2018 ตาม Change Logs ผมก็ได้ทำการรวบรวมข้อมูลเฉพาะส่วนที่เป็น New Features มาให้ดูกันคร่าว ๆ Kubernetes บน Docker for Mac แบบอยู่บน Stable Release (เย้!) เปิดใช้ได้เลยจาก Docker Preferences > Kubernetes > เลือก Enable Kubernetes แล้วเลือก Kubernetes เป็น Default orchestrator แล้วก็กด Apply หลังจากที่ระบบสร้าง kubernetes เสร็จแล้วก็ใช้งานได้เลย ผ่าน kubectl ปกติ SOCKS Proxy สำหรับเข้าถึง Network ภายใน Docker ได้โดยตรง ปกติใน Docker…
ทำ Custom Domain ใน Docker แบบใช้ท่า docker-compose
คุณเคยประสบปัญหาแบบนี้ไหม ออกแบบระบบให้ยืดหยุ่นด้วยการเชื่อมต่อแต่ละ Service ผ่าน domain แต่พอจะทำ development environment มันช่างหน้าปวดหัว อยากจะเปลี่ยน domain ที่ใช้เรียกหากันใน docker service เหลือเกินนนน ทำไมต้องมานั่งทำ Reverse Proxy เพื่อให้ได้ Environment ที่เหมือน Production วันนี้เรามีสิ่งดีๆมานำเสนอ ที่มาคือมาจากตอนที่ผมกำลังทำ dev-environment บน local เป็น WordPress Platform ของ Pronto เอง เพื่อให้เราสามารถเทสพวก WordPress ที่เหมือนโปรดักชันในเครื่องเราเอง ทีนี้เพื่อความยืดหยุ่น เราได้ทำการเปลี่ยนการเชื่อมต่อ Service ต่างๆ แทนที่จะเป็นการ Point หา IP Address มาเป็นการ Point ไปที่ DNS เพื่อความยืดหยุ่นในหารเปลี่ยนแปลง ทีนี้พอมาทำเป็น Local Dev Environment เนี่ย…
[ขำขัน] ใช้ Slack แจ้งเตือนเมื่อรัน Command บนเครื่องเซิฟเวอร์เสร็จ
เคยไหมครับที่เราจะต้องรันคำสั่งบางคำสั่งที่ทำงานนานๆ อย่างเช่น dump database ขนาดมหึมา หรืออื่นๆ คืองานพวกนี้เราไม่ได้ต้องทำบ่อยๆ เวลาทำก็รันคำสั่งทิ้งไว้ใน Tmux แล้วก็ไปทำอะไรเพลิน กลับมาเช็คเรื่อยๆ ด้วยความขี้เกียจ เลยคิดว่าเราน่าจะมีอะไรมาเตือนเนอะ ว่า Command นั้นรันเสร็จรึยัง หรือ พังไหม เลยพาลไปนึกถึง Slack ซึ่ง mesodiar เคยเขียนไว้ เรื่อง [Cron] เขียน slackbot ส่ง notification เตือน standup meeting เลยคิดว่าน่าจะเอามาทำอะไรเล่นๆได้เร็วเพราะมีโค้ดมาเลย เอามายำๆ มาเริ่มกันดีกว่า เริ่มแรก เราจะสร้าง virtualenv และ virtualenvwrapper มาเพื่อไม่ให้โปรเจ็กของเราไปกระทบกับ python ของเครื่อง และจะได้ง่ายในการจัดการหรือพัฒนาต่อ $ mkvirtualenv lazy-bot ลง Slack API ใน virtualenv (lazy-bot) $ pip…
ทดลองสร้าง SSL Certificate บน Nginx .
รอบนี้เราจะมาทดลองทำ SSL Certificate ให้เว็บไซต์ของเราปลอดภัยขึ้นไปอีกนิดนึงบน nginx ครับ โดยจะพูดถึง SSL ก่อนนะครับ SSL ย่อมาจาก Secure Socker Layer ซึ่งได้ถูกพัฒนามาเป็น TLS(Transport Layer Security) ที่เป็นเทคโนโลยีการเข้ารหัสข้อมูล เพื่อให้การส่งข้อมูลผ่านเครือข่ายมีความปลอดภัยมากขึ้น โดยเรียกผ่านโปรโตคอลความปลอดภัยต่างๆ ตามการใช้งาน ที่อาจจะเคยได้ยินกันบ่อยๆเช่น HTTPS การที่เราสร้าง SSL ขึ้นมาเองเพื่อการทดลองนั้น จะเรียกว่าเป็น SSL แบบ Self-signed ซึ่งเป็นใบรับรองที่ใช้คอมพิวเตอร์เครื่องไหนสร้างก็ได้ แต่จะไม่ผ่านการรับรองจาก CA (Certification authority) ในการเข้ารหัส Certifacte Authority (CA) เป็นคนที่ออกใบรับรองดิจิตอล ใบรับรองดิจิตอลรับรองความเป็นเจ้าของ Public Key โดยมีชื่อเรื่องของใบรับรอง ใบรับรองอนุญาตให้คนอื่นใช้งานได้ โดยขึ้นอยู่กับลายเซ็นหรือยืนยันตัวโดยการทำ private key ที่สอดคล้องกับ public key ที่ถูกรับรอง ในรูปแบบความสัมพันธ์ที่เชื่อถือได้นี้ CA เป็นบุคคลที่สามที่เชื่อถือได้…
Redirect ด้วยการใช้ rewrite บน nginx
จากบทความทีแล้ว ที่พูดถึงการทำ Redirect แบบ server block จาก domain หนึ่งไปหาอีก domain หนึ่ง คราวนี้เราจะมาพูดถึงการใช้คำสั่ง rewrite มาเพื่อ Redirect จาก domain เดียวกันแต่จะทำการเปลี่ยน slug (slug คือ สิ่งที่ต่อท้ายจาก domain หลัง “/”) ในการทำงานของผมนั้นจะยุ่งเกี่ยวกับการทำ SEO ให้กับลูกค้าด้วย ซึ่งเค้าอาจจะมี URL มาชุดหนึ่งที่ได้ซื้อมา แล้วต้องการให้ traffic ที่เข้ามานั้น ถูก redirect ไปยัง url ที่ต้องการ ในที่นี้ผมจะยกตัวอย่างโดยการที่ผมจะ redirect จาก rules ชุดหนึ่ง คือ http://sites1.com/blog-for-something/ ไปที่ http://sites1.com/blog/ http://sites1.com/who-am-i/ ไปที่ http://sites1.com/about-us/ http://sites1.com/eiei/ ไปที่ http://sites1.com/blog/ โดยผมจะเริ่มจากการเข้าไปสร้างไฟล์…