Chuẩn bị môi trường phát triển với Vagrant

Trên thực tế, mỗi người có một cách xây dựng môi trường phát triển khác nhau. Sự khác biệt xuất phát từ yếu tố chủ quan và khách quan. Yếu tố chủ quan như là cá tính, là phong cách, là thương hiệu …. Yếu tố khách quan như là do phần cứng, do hệ điều hành, do môi trường làm việc …

Tuy nhiên, nếu bạn dự định muốn tạo một môi trường phát triển (development) giống hoàn toàn với môi trường sản phẩm (production), thì bạn cần đến sự hỗ trợ của máy ảo (VM). Trong bài viết này, chúng ta sẽ sử dụng Virtualbox. Ngoài ra, Vagrant sẽ giúp chúng ta thiết lập một máy ảo nhanh chóng, đặt biệt là chúng ta sẽ không cần phải bận tậm đến bước cài đặt hệ điều hành.

Nếu bạn chưa bao giờ dùng Vagrant và VirtualBox để tạo môi trường phát triển, thì bạn nên thử. Làm quen với môi trường server Linux là điều thực sự thú vị và đầy thử thách. Nếu bạn vượt qua những khó khăn bỡ ngỡ ban đầu, tôi tin rằng bạn sẽ đam mê, thậm chí là nghiện.

Linux là một kiến thức bắt buộc nếu bạn muốn trở thành một FullStack Developer thực thụ. Hiểu và làm chủ Linux sẽ mang đến cho chúng ta nhiều kiến thức, nhiều trải nghiệm và nhiều ý tưởng mới.

Hơn thế nữa, nếu bạn đang muốn tìm hiểu về DevOps, bạn muốn ứng dụng nó vào dự án của mình và bạn đang là Developer, thì bạn cần phải học Linux. Bạn cần phải hiểu các Ops đã làm những gì để triển khai (deploy), quản lý (manage) và giám sát (monitor) ứng dụng của mình. Đến khi bạn có thể code hóa toàn bộ công việc của Ops, thì bạn đã là một DevOps.

Cài đặt Ubuntu Trusty với Vagrant

Bây giờ, chúng ta sẽ bắt đầu các bước cài đặt Git, VirtualBox và Vagrant. Trước hết chúng ta sẽ cùng download các bản cài.

Git: https://git-scm.com/downloads
VirtualBox: https://www.virtualbox.org/wiki/Downloads
Vagrant: https://www.vagrantup.com/downloads.html
Việc cài đặt các gói trên tương đối đơn giản và có sự khác biệt với từng hệ điều hành khác nhau. Thứ tự cài đặt sẽ là Git, VirtuaBox, và cuối cùng Vagrant.

Sau khi cài đặt thành công, bạn bật Git Bash và gõ lệnh sau:

$ vagrant --version
Vagrant 1.8.1

Nếu kết quả như trên (hoặc Vagrant với một version khác), có nghĩa là bạn đã thành công.

Bước tiếp theo chúng ta sẽ tạo một Vagrantfile với nội dung sau:

Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/trusty64"
  #config.vm.synced_folder "./", "/build/"
  config.vm.hostname = "dev-server"
  config.vm.network "private_network", ip: "172.20.20.20"

  config.vm.provider "virtualbox" do |vb|
    vb.gui = false
    vb.memory = 2048
    vb.cpus = 1
  end
  config.vm.provision "shell", inline: <<-SHELL
     sudo apt-get update
     sudo apt-get install -y whois git
     sudo useradd -m -p `mkpasswd password` -s /bin/bash dev
     sudo usermod -a -G sudo dev
  SHELL
end

Vagrantfile này sẽ khai báo về hệ điều hành cài đặt cho máy ảo (trong tường hợp trên là Ubuntu Trusty)

config.vm.box = "ubuntu/trusty64"

Khai báo hostname:

config.vm.hostname = "dev-server"

Khai báo về Network:

config.vm.network "private_network", ip: "172.20.20.20"

Với khai báo này, chúng ta sẽ có một server với địa chỉ là 172.20.20.20 trong mạng Private.

Khai báo cấu hình máy ảo:


  config.vm.provider "virtualbox" do |vb|
    vb.gui = false
    vb.memory = 2048
    vb.cpus = 1
  end

Ram 2G, 1 CPU

Và cuối cùng là Provision:

  config.vm.provision "shell", inline: <<-SHELL
     sudo apt-get update
     sudo apt-get install -y whois git
     sudo useradd -m -p `mkpasswd password` -s /bin/bash dev
     sudo usermod -a -G sudo dev
  SHELL

Provision ở đây nghĩa là các công việc cần thực hiện sau khi cài đặt xong hệ điều hành. Ở đoạn code trên, chúng ta đã cài đặt một vài gói tin (git, whois), và tạo một tài khoản mới với username/password: dev/password

Tiếp theo, chúng ta sử dụng Git Bash, đưa tác vụ đến thư mục chứa Vagrantfile và gõ lệnh:

vagrant up

Chúng ta sẽ đợi cho Vagrant hòa tất việc tải và cài đặt máy ảo. Chúng ta gõ lệnh sau để kiểm tra tình trạng công việc:

$ vagrant status
Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

Videos


Kết luận

Để xây dựng môi trường phát triển với Vagrant yêu cầu chúng ta phải thực hiện tương đối nhiều bước. Các thao tác chủ yếu là bằng dòng lệnh. Với những người chưa quen, đây thực sự là một thử thách. Nhưng nếu biết cách, công việc này sẽ trở nên đơn giản khi đã tích lũy đủ kinh nghiệm (Có khi bạn còn thấy đơn giản hơn việc cài đặt bằng cách ấn chuột vào nút Next trên Windows)

Nguyen Sy Thanh Son

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Nguyen Sy Thanh Son

6 bài viết.
86 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
29 1
Như các bạn biết, Internet Of Things là môt xu thế công nghệ được mọi người hướng tới nhiều nhất trong thời gian qua. Những Developer kinh nghiệm c...
Nguyen Sy Thanh Son viết hơn 1 năm trước
29 1
White
12 2
Có thể bạn sẽ không bao giờ nghĩ đến việc phải xóa một commit trong Git. Tuy nhiên, biết đâu đấy, trong tương lai, có khi bạn lại cần đến nó. Bài v...
Nguyen Sy Thanh Son viết 2 năm trước
12 2
White
11 0
Trong phần này, mình sẽ tiếp tục chia sẻ với các bạn ngày thứ 2 học IOT của mình. Trong phần trước, mình đã tìm hiểu cơ bản về ESP8266, và NodeMCU...
Nguyen Sy Thanh Son viết hơn 1 năm trước
11 0
Bài viết liên quan
Male avatar
0 0
Tình cờ buổi sáng bạn tới công ty, đang trong tâm trạng hí hửng để code tiếp chức năng hôm trước code dang dở, đang hí hửng gọi thằng em dậy “vagr...
skul169 viết gần 2 năm trước
0 0
White
8 0
Một trong những trường hợp build docker image là thừa hưởng từ một image mẹ Lấy một ví dụ sau: Dockefile FROM my_repo/my_image ENTRYPOINT ech...
Lơi Rệ viết gần 3 năm trước
8 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
6 bài viết.
86 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!