Skip to content

เริ่มต้นใช้ Vagrant

เกริ่นนำ

เริ่มต้นจากผมอัปเดต Ubuntu จาก 13.04 เป็น 13.10 ก็เลยได้ซอฟต์แวร์ใหม่ๆ มาเพียบไลบรารี่รุ่นใหม่มันก็ตัด function ที่มีสถานะเป็น deprecated ออกไปหมดแล้วทำให้โปรแกรมเก่าๆ ใช้งานไม่ได้ งานเข้ากันไปจะไปหารุ่นเก่ามาคอมไพล์ลงบางอันก็เข้ากันไม่ได้กับ OS ซะแล้วเลยต้องหาวิธีอื่นทีแรกเล็งที่ Docker แต่ไม่มีรุ่นสำหรับ Ubuntu 13.10 เลยหาตัวใหม่แล้วมาจบที่ Vagrant ซึ่งก็ฮิตพอสมควรมีคู่มือและวิธีใช้สอนเยอะทีเดียว

Vagrant คืออะไร?

Vagrant นิยามตัวเองว่าเป็น “Development Environments” based-on VirtualBox, VMware จริงๆ แล้วมันก็คือการสร้าง virtual machine ขึ้นมาทำอะไรซักอย่างแต่ไม่ใช่ Full-VM เอามาเฉพาะที่พอทำงานได้ สมมุติว่าเราต้องการพัฒนาโปรแกรมบนแพล็ตฟอร์มอื่น OS อื่นที่เราไม่ได้ใช้ประจำก็สร้าง VM ขึ้นมาพัฒนาทดสอบได้เลยโดยไม่ต้องยุ่งหรือ OS เครื่องเราไม่ต้องหาเครื่องจริงมาลง OS ด้วย ซึ่งสมัยนี้การลำบากหาเครื่องจริงมาทดสอบนั้นเป็นเรื่องเชยไปแล้วครับเทคโนโลยี VM ไปไกลแล้ว VM ทำได้เกือบทุกอย่างของเครื่องจริงแถมปรับสเปคได้ยืดหยุ่นตามที่เราต้องการ

Vagrant ที่มันขึ้นชื่อและคนเอามาใช้ในการพัฒนาซอฟต์แวร์เพราะมัน initial ง่าย ไม่ซับซ้อนคำสั่งก็ไม่มีกี่คำสั่งแถม sync folder และ map port ระหว่าง host กับ guest ง่ายด้วย

การติดตั้ง

  1. ติดตั้ง Virtual machine เนื่องจากมันเกาะ VM ตัวอื่นอีกทีเราเลยต้องติดตั้งก่อน เลือกเอาซักตัวครับ VirtualBox หรือ VMware ถ้าใช้ VirtualBox ดาวน์โหลดได้จาก https://www.virtualbox.org/wiki/Downloads
  2. ติดตั้ง Vagrant ผมแนะนำให้ไปดาวน์โหลดจากเว็บมาติดตั้งดีกว่าจะได้รุ่น 1.4 ใหม่กว่าใน repository ผมใช้ Ubuntu 13.10 ใน repository มีแค่ Vagrant 1.2 เอง โหลดได้จาก http://www.vagrantup.com/downloads.html

การใช้งาน

1. สร้างไดเรกทอรี่เก็บไฟล์คอนฟิกของ Vagrant

2. เพิ่ม Vagrant Box ซึ่งก็คือไฟล์ image ของ OS นั่นแหละสามารถหาได้จากลิงก์ในหัวข้อ Vagrant Boxes (ข้างล่าง)

3. จากนั้นสั่ง initial Vagrant โดยระบุชื่อของ VM ที่ตั้งไว้ในข้อ 2 (ตัวอย่างใช้ ubuntu-12.04-x64) ด้วยคำสั่งข้างล่างจะได้ไฟล์คอนฟิกของ Vargrant ชื่อ  Vagrantfile

4. startup VM ด้วยคำสั่ง

5. ssh เข้าไปในเครื่อง VM จะได้ shell ของเครื่อง VM เราสามารถติดตั้งโปรแกรมด้วย apt-get และใช้งานได้เหมือนเครื่องปกติ

6. หากต้องการ shutdown เครื่อง VM ให้ exit ออกมาจาก VM ก่อนแล้วสั่ง

7. หากมีการแก้ไขคอนฟิกต้อง reload/restart ด้วยคอนฟิกใหม่ถึงจะถูกอ่านขึ้นมาทำงาน

8. ในไฟล์  Vagrantfile  จะมี options ต่างๆ ถูกคอมเม้นต์ไว้อยากคอนฟิกอะไรเพิ่มก็ลบเครื่องหมายคอมเม้นต์ออกแล้วก็ใส่ค่าที่เราต้องการลงไป รายละเอียดของ options ต่างเขียนไว้ในไฟล์คอนฟิกแล้วถ้าอยากอ่านข้อมูลเพิ่มสามารถเข้าไปอ่านเพิ่มเติมได้ที่ documents ของโปรแกรม http://docs.vagrantup.com/v2/getting-started/index.html

ตัวอย่างการใช้งาน สมมุติผมอยากให้เรียกใช้งานเว็บเซิร์ฟเวอร์ภายใน Vagrant VM โดย map port 80 ของ guest มาที่ port 10000 ก็เพิ่มคอนฟิก   config.vm.network :forwarded_port, guest: 80, host: 10000

โค้ดเว็บผมอยู่ใน ~/www/ ในเครื่อง host เราไม่จำเป็นต้องย้ายโค้ดไปที่เครื่อง guest เพราะ Vagrant สามารถ sync folder ได้โดยเพิ่มคอนฟิก  config.vm.synced_folder "/home/kor/www/entzonet_www", "/home/vagrant/www/    entzonet_www", disabled: false  parameter แรกเป็น path ของเครื่อง host ส่วน parameter ที่ 2 เป็น path ของเครื่อง guest (เริ่มต้นจาก home)

ข้อควรจำ: การคอนฟิก sync folder ในครั้งแรกให้ข้ามไปก่อนเพราะในเครื่องเรายังไม่ได้สร้างไดเรกทอรี่สำหรับ sync มันจะ startup ไม่ขึ้นฉะนั้นคอนฟิกแค่ port ก็พอ

Vagrant Boxes

ว่าจะไม่เขียนเหมือนคู่มือละมันดูเป็นทางการเกิ๊น

เป็นการใช้งานเบื้องต้นง่ายๆ ครับถ้าสนใจก็เอาไปลองใช้กันดู

Be First to Comment

Leave a Reply

Your email address will not be published.