Category: Open Source Software & Freeware

วิธีใช้ Google Sheets เป็นฐานข้อมูล เพื่อการเฝ้าระวังระบบ โดยการใช้งานผ่าน Google API Client Library for Python

ต่อจาก วิธีการใช้ Google Sheets เป็นฐานข้อมูล การใช้งาน Google Drive API ด้วย Google Client Library for Python วิธีการ Upload ไฟล์ไปบน Google Drive File Stream ด้วย Google Client Library for Python คราวนี้ ใครมีข้อมูลที่เกิดขึ้นในเซิร์ฟเวอร์ภายในองค์กร แล้วต้องการส่งไปเขียนเก็บไว้ใน Google Sheets แบบต่อท้าย (Append) เช่น ในตัวอย่างนี้ วัดระยะเวลาการโอนย้ายข้อมูล เปรียบเทียบระหว่าง rsync…

วิธี upgrade Node.js ใน Bash ของ Windows 10 ให้เป็นรุ่นปัจจุบัน

ปัญหาคือ บน Windows 10 เราสามารถใช้ Windows Subsystem for Linux (WSL) หรือ Bash Shell ได้ ซึ่งจริงๆมันก็คือ Ubuntu 16.04.3 แต่ว่า เวลาจะใช้งาน Node.js ติดตั้งพวก Firebase, Angular อะไรพวกนี้ จะทำไม่ได้ เพราะรุ่นที่ให้มามันเก่ามาก วิธีการคือ (Reference: https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions) ใช้คำสั่งต่อไปนี้ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash – apt-get install…

วิธีติดตั้งระบบ Cyrus IMAP Cluster (Cyrus Murder)

ต่อจาก Mail Clustering with Cyrus Murder และ How Cyrus Murder (Mail Clustering) work? คราวนี้ มาลง รายละเอียดทีละขั้นตอน ระบบ Cyrus IMAP Cluster หรือ Cyrus Murder นี้ ประกอบด้วยเครื่องคอมพิวเตอร์ ขั้นต่ำ 3 เครื่อง คือ frontend, backend, mupdate ต่อไปนี้ จะเป็นวิธีการทำ แต่ละเครื่อง   Prerequisite ทั้งหมดเป็น Ubuntu 16.04 Server, ทำการ…

เตาะแตะไปกับ Docker ตอนที่ 13 Docker Machine

Docker Machine คือ tool ที่ใช้สำหรับจัดเตรียม (Provision) docker เป็น virtual hosts บน Mac หรือ Windows รวมถึง ติดตั้งเพิ่ม docker บน Native Linux Host ที่มีอยู่แล้วในเครือข่ายของคุณ ยิ่งไปกว่านั้นยังสามารถจัดเตรียม docker ไปบน cloud providers เช่น Azure, AWS, or Digital Ocean เป็นต้น Docker Machine จัดการ remote docker host…

เตาะแตะไปกับ Docker ตอนที่ 12 Clone Docker Files From GitHub

จากบล็อกเรื่อง “เตาะแตะไปกับ Docker” ในตอนที่แล้ว เราได้เรียนรู้ขั้นตอนในการสร้างและรัน LDAP services อย่างละเอียด ก่อนที่ผมจะเขียนบทความในตอนนี้ผมได้นำไฟล์ทุกไฟล์นั้นขึ้นไปไว้บน GitHub เพื่อให้พวกเราไม่ต้องสร้างไฟล์เหล่านั้นเอง แต่จะทำด้วยคำสั่ง git clone ครับ เรายังคงทดสอบด้วย VM โดยตั้งค่า network เป็น NAT network เพราะว่า เราใช้ domain สมมติ คือ ldap.example.com และทดสอบในสภาพแวดล้อมที่เป็นเครือข่ายภายใน ขั้นตอนดังนี้ 1. ติดตั้ง Ubuntu 16.04 64 bit แล้วติดตั้ง docker 17.06.2-ce แล้วต้องเปลี่ยนชื่อ…

เตาะแตะไปกับ Docker ตอนที่ 11 Docker Compose (LDAP services)

เราจะมาเรียนรู้ การใช้ docker compose รัน service 2 services คือ OpenLDAP และ phpLDAPadmin ซึ่ง docker จะมองว่าการใช้ docker compose คือ เรากำลังรัน project ที่ประกอบด้วย service หลาย ๆ service ให้แน่ใจว่าอยู่ที่ home directory ให้ใช้คำสั่งนี้ $ cd สร้างไดเรกทอรีของ project สมมติตั้งชื่อว่า ex1 $ mkdir ex1 $ cd…

เตาะแตะไปกับ Docker ตอนที่ 10 Dockerfile (phpLDAPadmin)

ในตอนที่แล้วเราใช้งาน openldap ด้วยคำสั่ง เช่น ldapsearch หรือ ldapadd ได้แล้ว วันนี้เราจะเรียนรู้การใช้ dockerfile สร้าง image ชื่อ phpldapadmin เพื่อใช้เป็น web interface ในการเข้าไปจัดการ LDAP database ของ container ชื่อ openldap โดยที่ phpLDAPadmin นี้คือการรัน php บน apache2 แล้วเราจะติดต่อระหว่าง container กันได้อย่างไร มาดูกันครับ เช่นเดียวกับครั้งที่แล้ว ผมจะแยกเป็น 3 ขั้นตอน คือ 1.ขั้นตอนเตรียมไฟล์ที่เกี่ยวข้อง…

เตาะแตะไปกับ Docker ตอนที่ 9 Dockerfile (OpenLDAP)

วันนี้เราจะเรียนรู้การใช้ dockerfile สร้าง image ชื่อ openldap เพื่อใช้เป็น LDAP database ผมทดสอบด้วย Oracle VM VirtualBox เป็น VM ที่ตั้งค่า Network adapter เป็นแบบ NAT network ที่ติดตั้ง Ubuntu 16.04 และ docker เรียบร้อยแล้ว ในตัวอย่างนี้ผมตั้งชื่อ host ว่า ldap.example.com โดยแก้ไขที่ไฟล์ /etc/hosts และ /etc/hostname ให้เรียบร้อย แล้วรีบูตเครื่องด้วย ผมจะขอแยกขั้นตอนออกเป็น 3 ขั้นตอนหลัก…

เตาะแตะไปกับ Docker ตอนที่ 8 Cleanup Disk Space

การเรียนรู้ docker เราก็จะมีการทดสอบ pull image มา แล้ว run เป็น container รวมทั้งอาจมีการสร้างพื้นที่เก็บข้อมูลที่เรียกว่า volumes (ทั้งแบบ named volume และ anonymous volume) บ่อยครั้งเมื่อเราใช้คำสั่งตรวจสอบ เราจะพบว่ามีอะไรไม่รู้หลงเหลืออยู่กินเนื้อที่ไปเยอะ ตรวจสอบรายการ container $ docker ps -a ลบ containers ที่ไม่ใช้งานแล้ว $ docker ps –filter status=dead –filter status=exited –filter status=created -aq |…