สวัสดีครับ ช่วงนี้ผมเล่น Docker หนักมาก แล้วเจ้าตัว IPAM เก่าของผมที่ลงใน Ubuntu มันเก่ามาก พอ Ubuntu อัพเดตแต่ละทีโค้ดจะเดี้ยงไปเรื่อยๆจนทนไม่ไหว ไหนๆเล่น docker อยู่แล้วก็จับยัดลง Docker เลยละกัน
เริ่มเรื่องผมขออธิบายเรื่อง IPAM ก่อน เจ้าตัว IPAM เนี่ยมันเป็นตัวจัดการ IP Address ที่จะคอยช่วย Scan IP ให้เรา แถมสามารถสร้าง Agent ให้มันคอยอัพเดต IP Address ที่หายไป หรือเพิ่มขึ้นในระบบให้ด้วย ซึ่งทำให้เราสะดวกขึ้นในการจัดสรร IP Address ที่เหลืออยู่อันน้อยนิด
https://phpipam.net/
เว็บไซต์โปรเจ็ค IPAM สามารถไปโหลดมาลงหากมี WebServer อยู่แล้วก็ได้เลยครับ แต่ผมมีวิธีที่ง่ายกว่านั้น เพราะเจ้า IPAM Agent เนี่ยมันทำให้ Ubuntu ตัวใหม่ๆที่ใช้ PHP Apache ปิดตัว ptncl ทำให้ต้องมา Compile PHP ใหม่ โคตรจะยุ่งยากครับ สุดท้ายแสงสว่างก็แว้บขึ้นมา ในเมื่อผมเล่น Docker อยู่แล้ว ก็จัดการยัดใส่ Docker ซะเลย แถมมีคนทำ Docker Container ไว้ให้แล้วด้วย โคตรดีงาม
มาเล่าเรื่อง Docker ต่อครับ Docker เนี่ยมันจะเรียกว่าคล้ายๆ Virtualization ก็อาจจะไม่เชิง มันง่ายกว่านั้นตรงถ้าเราจะใช้ Virtual เราต้องมานั่งลง Ubuntu ใหม่ มานั่งลง component ใน ubuntu อีกรอบให้สามารถทำงานได้ แต่ Docker เนี่ย เพียงแค่เราลงโปรแกรม Docker Engine ใน Ubuntu หรือใน Windows (ใน Windows จะเรียกว่า Docker Toolbox ถ้าไม่ใช่ windows 10 Pro หรือ Enterprise) ก็สามารถใช้ได้ทันทีเพียงเราต้องไปหา Container Images ที่จะใช้จาก https://hub.docker.com/ ก็สามารถใช้ได้เลย โดย Container Image มีตั้งแต่ลง OS ทั้งก้อน พวก Ubuntu Centos ก็ยังมีไปถึงโปรแกรมพื้นๆ พวก NGINX Mysql httpd อยากใช้ตัวไหนก็โหลดมาเล่นได้เลย ง่ายสะดวกสุดๆครับ แถมการทำงานแต่ละ Container นั้นแยกกับอย่างสมบูรณ์ ทำให้ง่ายในการจัดการบริหารทรัพยากรณ์ในเครื่องครับ
เข้าเรื่องหลักเลยดีกว่า ผมจะเริ่มจากการลง Ubuntu ใน Vsphere เพื่อจะลง Docker Engine ครับ โดยผมจะไม่เขียนวิธีละกัน อันนี้ไม่ยาก หลังจากเราลง Docker ได้แล้ว ก็เตรียม Copy + Paste เลยครับ
https://hub.docker.com/r/pierrecdn/phpipam/
ลิ้งนี้จะเป็นหน้า docker hub ของ container image ที่เราจะมาทำกันนะครับไม่ต้องเข้าไปดูก็ได้ เพียงแค่ Copy+Paste โค้ดตามด้านล่างนี้เลย $ sudo docker run --name phpipam-mysql -e MYSQL_ROOT_PASSWORD=รหัสผ่านroot -v /my_dir/phpipam:/var/lib/mysql -d mysql:5.6
$ sudo docker run -ti -d -p 80:80 -e MYSQL_ENV_MYSQL_ROOT_PASSWORD=รหัสผ่านroot --name ipam --link phpipam-mysql:mysql pierrecdn/phpipam
รหัสผ่านroot อันนี้ให้ตั้งกันเองเลยนะครับ ใส่ให้เหมือนกันด้วยล่ะ ไม่งั้นจะ run ไม่ได้
ส่วนใครที่อยากจะเปลี่ยน port web เป็นพอร์อื่นสามารถแก้ไขได้ด้วยการแก้ตรง 80:80
เป็น อะไรก็ได้:80
แค่สองบรรทัดนี้ก็เป็นอันเรียบร้อยครับ ลง PHPIPAM เสร็จแล้ว หลังจากนั้นก็เข้า ip ผ่าน web browser ก็จะเป็นหน้าติดตั้ง ให้เราทำตามขั้นตอนติดตั้งหรือกดเข้าไปดูในเว็บ Docker hub ลิ้งข้างบนครับ มีวิธีอยู่
พอลงเสร็จแล้ว เราต้องลงตัว Agent เพื่อให้มัน discovery ip change ใน subnet ของเราด้วยครับ จะได้ไม่ต้องมากดเอง ซึ่งมีคนทำไว้เช่นกัน (เจ้าเดิมน่ะแหละ)
https://hub.docker.com/r/pierrecdn/phpipam-agent
โค้ด 1 บรรทัด$ sudo docker run -ti -d -e PHPIPAM_AGENT_KEY=dummy-key -e MYSQL_ENV_MYSQL_PASSWORD=รหัสผ่านroot --name ipam-agent --link phpipam-mysql:mysql pierrecdn/phpipam-agent
ส่วนวิธีทำในหน้า Ipam กดเข้าไปดูลิ้งต้นทางเลยครับ เท่านี้เราก็ได้ตัวจัดการ IP มาช่วยทำให้งานเราง่ายขึ้นและครับ
สุดท้ายนี้ก็ฝาก Docker ไว้ในอ้อมอกอ้อมใจหลายๆคน มันเป้นอะไรที่ทำให้งานเราง่ายขึ้น สะดวกขึ้นครับ ไว้มีเทคนิคอะไรใหม่ๆจะมาลงให้อ่านกันอีกนะครับ
เยี่ยมครับ