สร้าง Development server แบบง่าย ๆ ด้วย Vagrant

Vagrant เป็น software ชนิดหนึ่งที่มีความสามารถการจัดการโปรแกรม Virtualization อย่างเช่น Virtualbox, Hypser-V ได้ โดยจุดเด่นของ Vagrant ก็คือเราสามารถสร้างเครื่อง Server เก็บไว้เป็น Box (Template) หากจะใช้งานเราก็สามารถสร้างเครื่อง Server ผ่านทาง file configuration ของ vagrant ได้เลย แบบรวดเร็วทันใจ

ตัวอย่างการสร้าง Ubuntu Server 14.04 ผ่านทาง vagrant

  1. ติดตั้ง software ที่จำเป็นในเครื่องเราก่อน
    1. vagrant
    2. git
    3. Virtualbox หรือ Hypter-V หรือ VM-Ware
  2.  ทำการ add box ที่มีคนสร้างไว้แล้วเข้า โดยสามารถดูชื่อ box ที่มีคนเคยสร้างไว้จากเวปไซต์ https://vagrantcloud.com นี้ครับ ตัวอย่างเช่น ต้องการ Ubuntu Trusty64 (14.04 LTS) ก็ให้ทำการค้นหาภายในเวปจะได้ว่าจากนั้นที่เครื่องเราให้พิมพ์คำสั่ง

    [shell]
    vagrant up ubuntu/trusty64 –provider virtualbox
    [/shell]

    ซึ่งคำสั่งดังกล่าวจะทำการตรวจสอบว่ามี box ที่ชื่อว่า ubuntu/trusty64 อยู่ในเครื่องเราหรือไม่ ถ้าไม่มีมันจะทำการ download ลงมาเก็บไว้ในเครื่องของเราเอง ครั้งต่อไปถ้าเรียกใช้มันก็จะไม่ต้องไป download มาใหม่ และหลังจากนั้นจะ start box ตัวนี้ขึ้นมา

    หากมี box อยู่แล้วนอกเหนือจากเวปที่ให้ไป แล้วต้องทำการ add เข้าไปใน vagrant ก่อนด้วยคำสั่ง

    [shell]
    vagrant box add <boxname> <url or path to box>
    [/shell]

  3. ทำการสร้างไฟล์ config ให้กับ server ที่เราจะสร้าง

    [shell]
    mkdir trusty64-01
    cd trusty64-01
    vagrant init ubunty/trusty64

    [/shell]

    vagrant จะทำการสร้างไฟล์ config ที่มีชื่อว่า Vagrantfile มาให้ ซึ่งไฟล์นี้จะเป็นไฟล์ configuration ของตัว server เอง เช่น CPU, RAM, Network, Port forward, Sharedrive เป็นต้น

     

    [ruby]
    Vagrant.configure(2) do |config|
    config.vm.box = "ubuntu/trusty64"
    config.vm.network "forwarded_port", guest: 80, host: 8080
    config.vm.network "private_network", ip: "192.168.56.110"
    config.vm.provider "virtualbox" do |vb|
    vb.memory = "1024"
    vb.cpus = "2"
    end
    end
    [/ruby]

    config.vm.box จะเป็นการบอกว่าเราจะเลือกใช้ box ไหนสำหรับ server ตัวนี้
    config.vm.network “forwarded_port” จะเป็นการ forward port ออกมาจากตัว server ให้ออกมายังเครื่องเรา อย่างเช่นในนี้จะเป็นการให้ forward port 80 ของตัว server ให้ออกมาที่ port 8080 ของเครื่องเรา
    config.vim.network “private_network” จะเป็นการกำหนดให้สร้าง network interface ขึ้นมาด้วยลักษณะ private network (ตาม virtualbox) กับเครื่องของเราเอง และกำหนดให้มี ip เป็น 192.168.56.110
    config.vm.provider “virtualbox จะเป็นการตั้งค่าต่างๆ ของ server (virtual machine ของ virtualbox)
    vb.memory = “1024” คือกำหนด RAM
    vm.cpus = “2” คือกำหนด CPU

  4. เมื่อ Vagrantfile ได้เรียบร้อยแล้ว หลังจากนั้นจะทำการนำเครื่อง server ที่ได้ config ค่าต่างๆ ไว้นี้ให้ start ขึ้นมาด้วย

    [shell]
    vagrant up
    [/shell]

  5. เมื่อเครื่องได้ start ขึ้นมาแล้ว เราสามารถเข้าไปใช้งานเครื่องดังกล่าวด้วยคำสั่ง

    [shell]
    vagrant ssh
    [/shell]

    เราจะเข้าไปด้วย user vagrant หากต้องการเป็น root ก็ให้พิมพ์

    [shell]
    vagrant@trusty64:~$ sudo su –
    root@trusty64:~#
    [/shell]

  6.  หลังจากนั้นก็ใช้งานเครื่องและลง software ได้ตามปกติ ถือว่าเป็นอันเรียบร้อยครับ

ส่วนใหญ่แล้ววัฏจักรของ vagrant จะมีอยู่หลักๆ คือ
vagrant init  คือการสร้างไฟล์ config
vagrant up   คือการ start เครื่อง
vagrant ssh  คือการ log in เข้าเครื่อง
vagrant halt  คือการ shutdown เครื่อง
vagrant destroy  คือการลบเครื่อง

ส่วนการ ลบตัว box ออกจากเครื่องเรานั้นจะใช้คำสั่ง

[shell]
vagrant box remove <box name>
[/shell]

ขอให้สนุกกับ vagrant ครับ

ball Written by:

Teerapat Khunpech Live, Tech, Beers, Bike, Cafe Racer, Docker, Devops, Eco-System