Knife มีส่วนเสริมในการจัดการ virtual machine บน Microsoft Azure ด้วยคือ knife-azure สามารถจัดการ life cycle ของ virtual machine ได้ สั่ง knife bootstap เพื่อลงทะเบียนกับ Chef Server ได้เลย มาลองใช้งานกัน

ติดตั้ง Knife Azure โดยใช้ ChefDK

chef gem install knife-azure

ดาวน์โหลด subscription file เพื่อใช้งานร่วมกับ knife azure plugin จากนั้นแก้ไข knife.rb เพิ่ม config เข้าไปดังนี้


Continue reading

ผมเชื่อว่ามีหลายคนน่าจะเคยเจอปัญหา Database Mysql ทำงานช้า เช่น กว่าจะ query ข้อมูลใน Database ได้ต้องรอประมาณ 5 – 10 นาที หรือ User บ่นว่าใช้งาน Application ช้าเป็นบ้างช่วง แล้วพอ Admin ไปดูกลับพบว่าปกติไม่ได้ช้าแต่อย่างใด เป็นต้น เราสามารถให้ Zabbix มาช่วย monitor Database Mysql แทน Admin ได้ตลอดเวลา หาก Database Mysql เริ่มมีปัญหาก็จะแจ้งเตือนไปที่ Admin และ Admin ก็จะดำเนินการแก้ปัญหาได้ทันท่วงที โดยตัวอย่างในบทความนี้ผมจะมีเครื่อง Zabbix-Server และ Zabbix-Agent ที่ติดตั้ง Mysql แล้ว

ที่เครื่อง Agent ให้เรา Copy ไฟล์ config ตัวอย่างจาก /usr/share/doc/zabbix-agent/examples/userparameter_mysql.conf มาไว้ที่ Path /etc/zabbix/zabbix-agentd.conf.d/ ใช้คำสั่งดังนี้
Continue reading

ปกติถ้าเราจะใช้งานปฏิทินบน Thunderbird นั้น ต้องลง Add-ons ก่อน ซึ่ง Add-ons ปฏิทินบน Thunderbird คือ Lightning นั่นเอง
วิธีติดตั้ง Lightning ก็ง่ายแสนง่าย เพียงไปที่ Tools -> Add-ons จากนั้นก็ค้นหาคำว่า Lightning เมื่อเจอแล้วก็ทำการติดตั้ง หลังจากติดตั้งสำเร็จจะขึ้นดังรูป
lightning
Continue reading

Knife มีส่วนเสริมในการจัดการ instance บน Amazon Web Service ด้วยคือ knife-ec2 ซึ่งสามารถจัดการได้ในเบื้องต้น ส่วนใหญ่เกี่ยวข้องกับ instance เป็นหลัก สามารถจัดการ life cycle ของ instance ได้ สั่ง knife bootstap เพื่อลงทะเบียนกับ Chef Server ได้เลย มาลองใช้งานกัน

เริ่มต้นจากติดตั้ง package ที่จำเป็นก่อนดังนี้

apt-get install make build-essential

จากนั้นติดตั้ง knife ec2 plugin โดยใช้ Chef Development Kit

chef gem install knife-ec2

แก้ knife.rb เพิ่ม AWS_ACCESS_KEY_ID และ AWS_SECRET_ACCESS_KEY ต่อท้ายไฟล์


Continue reading

ถ้าใช้งาน Chef ต้องลองสร้าง Cookbook ใช้เองด้วยถึงจะครบกระบวนการ นอกจาก Cookbook ใน Opscode Community แล้วเราสามารถสร้าง Cookbook แบบที่เราต้องการเองได้ด้วย สำหรับท่านที่ถนันภาษา ruby ก็คงได้เปรียบสักหน่อย แต่สำหรับท่านที่ไม่ถนันก็ไม่เป็นไร เราสามารถสร้าง Cookbook แบบง่ายๆ ได้ โดยใช้เครื่องมือเดิมคือ Knife

แนวคิดของ Cookbook เหมือนกับการทำอาหารมีสูตรในการทำ (recipe) ดังนั้น Cookbook หนึ่งมีสูตรอาการได้หลายสูตรแล้วแต่ว่าจะปรุงอะไรออกมา ในการปรุงแต่ละสูตรจะมีกระบวนการปรุงซึ่งจะทำหนด อยู่ใน recipe นั่นเอง สำหรับ resource ทีี่ต้องใช้ recipe ได้แก่

  • package: จัดการ package ใน node
  • service: จัดการ service ใน node
  • user: จัดการ user ใน node
  • group: จัดการ group ใน node
  • template: จัดการไฟล์ที่อยู่ในรูปแบบ ruby template
  • cookbook_file: เก็บไฟล์สำหรับย้ายไปใช้กับ node โดยตรง
  • file: จัดการไฟล์ ใน node
  • directory: จัดการไดเรคทอรี ใน node
  • execute: ใช้คำสั่ง ใน node
  • cron: แก้ไข cron ใน node


Continue reading

เผอิญมีคนถามเรื่อง Pootle แต่จำไม่ได้ว่าใครถามเอาเป็นว่า Pootle เป็นเครื่องมือแปล ui ของซอฟต์แวร์ผ่านเว็บ สนับสนุนทั้งไฟล์ po, xml ทำให้ทีมแปลทำงานร่วมกันได้ง่ายมากขึ้น หากอยากจะทดลองใช้ Pootle ก็สามารถติดตั้งกันได้ง่ายๆ โดยใช้ Docker ดังนี้

docker pull jannkleen/pootle

docker run -v /var/pootledb --name POOTLEDB busybox true

docker run -p 80:8000 --volumes-from POOTLEDB jannkleen/pootle


Continue reading

Knife DigitalOcean เป็นส่วนเสริมที่ช่วยให้คุณจัดการ Droplet บน DigitalOcean ได้ง่ายๆ ผ่าน Knife ซึ่งนอกจากจัดการ Droplet ได้แล้วยังสามารถสั่ง Bootstrap เพื่อ register node ไปยัง Chef Server ได้อีกด้วย หรือใช้ Knife กำหนด runlist ให้ droplet ได้เช่นกัน มาทดลองกัน

ก่อนอื่นใช้ ChefDK ติดตั้ง Knife DigitalOcean กันก่อนดังนี้

chef gem install knife-digital_ocean

สร้าง Personal Access Tokens ใน DigitalOcean เพื่อใช้กับ Knife ดังนี้


Continue reading

Chef ไม่เพียงแค่ใช้ตั้งค่าและจัดการเครื่องเซิร์ฟเวอร์เท่านั้นแต่ยังสามารถใช้งานร่วมกับ Container อย่าง Docker ได้ด้วย ในเบื้องต้น ใช้สำหรับสร้าง Chef Container ที่มี chef client, cookbook, run list ฝังเข้าไปพร้อมกับ Docker Image ส่วนการจัดการ Container ยังคงใช้ Docker เหมือนเดิม

สร้าง Chef Container ต้องเริ่มจากสร้าง Image ก่อนด้วย Knife Container ซึ่งเป็น plug-in เสริมของ Knife ซึ่งเราจะต้องติดตั้งเพิ่ม ก่อนจะติดตั้ง Knife Container ติดตั้งเครื่องมือที่จำเป็นต้องใช้ก่อน ได้แก่ Docker, ChefDK และ Knife Container

เริ่มจากติดตั้ง Docker ก่อน ดังนี้

curl -sSL https://get.docker.com/ubuntu/ | sudo sh

ติดตั้ง Chef Development Kit

wget https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chefdk_0.3.5-1_amd64.deb

dpkg -i chefdk_0.3.5-1_amd64.deb


Continue reading

Chef เป็นเครื่องมือการจัดการตั้งค่าคอนฟิกระบบ (system configuration management) ตัวหนึ่งที่ได้รับความนิยม เหมาะสำหรับการ config เครื่องเซิร์ฟเวอร์ที่มีจำนวนมากๆ แบบไม่ต้อง ssh เข้าไป config ทีละเครื่อง การทำงานของ Chef จะทำตาม runlist ที่เรากำหนดให้ node หรือกำหนดใส่ไว้ใน Role ดังนั้นเราสามารถทำขั้นตอนซ้ำๆ ได้หลายรอบผ่านการกำหนดค่าตาม role หรือกำหนด runlist ให้กับ node จากนั้นก็สั่งให้ทำงาน

Chef มีเวอร์ชันที่เป็น Open Source และ Enterprise ในเวอร์ชัน Enterprise สามารถติดตั้งเองหรือใช้บริการ Chef Management แบบ Hosted ได้โดยไม่จำเป็นต้องติดตั้งเองก็ได้ ก่อนใช้งานต้องเข้าใจ Chef กันก่อน Chef มีส่วนประกอบที่ต้องใช้หลักๆ อยู่ 3 ส่วน

  • Chef Workstation คือ เครื่องที่ใช้สั่งงาน พัฒนา cookbook หรือเครื่องผู้ดูแลระบบ
  • Chef Server คือ เครื่องที่เก็บข้อมูล Node, Cookbook, Policy, Report ต่างๆ
  • Chef Client คือ เครื่องปลายทางที่ต้องการคอนฟิก


Continue reading

Docker มีบริการ Docker Registry ให้เราสามารถ pull image มาใช้งานได้ และให้เรา push image ขึ้นไปบน Docker Registry ได้เหมือนกัน หากเราดูจากหน้าเว็บ hub.docker.io จะพบว่านอกจากจำเป็น Registry แล้วยังมีบริการอื่นๆ อีกมาก เช่น Private Registry, Repository, Auto Build จาก VCS เป็นต้น ครั้งนี้จะมาใช้งานบริการ Auto Build กัน โดยปกติเวลาทำ Image เพียงแค่เขียน Dockerfile จากนั้นสั่ง Build จะได้ Docker Image อยู่ในเครื่อง ถ้ามีการเปลี่ยนแปลง ก็ต้องสั่ง Build ใหม่อีกรอบ ซึ่งหลายท่านหันไปใช้ CI/CD ช่วยให้อัตโนมัติมากขึ้น

แต่ Docker Hub มีบริการ Auto Build จาก VCS ที่คุณใช้งานอยู่ได้ด้วย เพียงแค่เชื่อมบริการของ Docker Hub และ VCS ที่ใช้อยู่เท่านั้น จากนั้นก็เลือก Repository ที่ต้องการใช้ Docker Hub ให้ คุณก็มีหน้าที่แค่ทดสอบและ commit ไฟล์ไปยัง VCS เท่านั้น อันดับแรกสมัครสมาชิก Docker Hub ก่อน จากนั้นให้เข้าไปที่หน้า Profile ของเรา


Continue reading