Đối với các bạn chuyên làm về mảng cài đặt hệ thống thì hệ điều hành Linux như Ubuntu là kiến thức cơ bản cần biết. Và đôi khi, chúng ta cần một máy ảo Ubuntu để thực hành.

Chúng ta sẽ có 2 giải phải giáp: một là cài trực tiếp hệ điều hành Ubuntu, hai là cài máy ảo.
Bản thân mình thì thích dùng máy ảo hơn bởi có mình có thể dùng 2 hệ điều hành cùng lúc: Windows hoặc MacOs để giải trí  ?, Ubuntu để thể vọc cài đặt server.

Ngoài ra, với việc sử dụng máy ảo chúng ta có thể dễ dàng xóa các phần mềm trên máy ảo đi mà không lo bị ảnh hưởng hay nặng máy gì cả.

Cách cài máy ảo:

Xưa kia, để cài máy ảo, mình từng dùng cách đó là: tải các phần mềm cho phép tạo máy ảo như Virtual Box hoặc Vmware về, tìm và tải về file ISO hệ điều hành mong muốn, sau đó thì cài đặt. Cách này hơi tốn thời gian để tìm kiếm và cài đặt.

Vagrant ra đời:

Vagrant ra đời tạo nên một bước ngoặt trong việc cài đặt hệ điều hành dạo?, đặt biệt là cài đặt Ubuntu đề cho DevOpts thực hành.

Với Vagrant, bạn không cần phải tải về các file ISO hệ điều hành và cài đặt thủ công nữa. Bạn chỉ cần định nghĩa 1 file cấu hình có tên mặc định là Vagrantfile, sau đó, mọi phần mềm hay hệ điều hành sẽ được cài đặt tự động.

Sau đây, mình sẽ cài đặt hệ điều hành Ubuntu Trusty với Vagrant.

Cài đặt hệ điều hành Ubuntu Trusty với Vagrant:

Trên máy tính cá nhân, chúng ta cần cài đặt 3 thứ là Git, VirtualBox và Vagrant. Bạn cần phải cài đặt theo đúng thứ tự bên dưới:

  1. Git: https://git-scm.com/downloads
  2. VirtualBox: https://www.virtualbox.org/wiki/Downloads
  3. Vagrant: https://www.vagrantup.com/downloads.html

Để kiểm tra lại Vagrant đã cài đặt thành công hay chưa, ta dùng lệnh sau để kiểm tra phiên bản, nếu có in ra một số nào đó là thành công:

vagrant --version

Tiếp theo, ta cần định nghĩa 1 file cấu hình với tên bắt buộc là Vagrantfile. 

Vagrantfile:

Vagrantfile sẽ chứa thông tin cấu hình của máy ảo.

Ví dụ, ta cần cài đặt Ubutu với các cấu hình 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.22.22.22"

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 adminpw` -s /bin/bash dev
sudo usermod -a -G sudo dev
SHELL
end

Sau đây, mình xin giải thích về các cấu hình trên.

Hệ điều hành:

config.vm.box = "ubuntu/trusty64"

Khai báo về tên của host:


config.vm.hostname = "dev-server" 

Khai báo địa chỉ IP của máy ảo, các máy bên ngoài dùng IP này để truy cập vào:


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

Khai báo máy ảo sử dụng 2GB RAM và 1 CPU:


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

Khai báo các lệnh được thực thi sau khi cài đặt hệ điều hành. Các cấu hình sau sẽ cài đặt phần mềm whois và git,. Ngoài ra, còn tạo thêm người dùng có username là dev và password là adminpw:

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

Khởi động máy ảo:

Để khởi động máy ảo, hãy chắc rằng chúng ta đang ở trong thư mục chứa Vagrantfile. Tiếp theo, dùng lệnh sau để khởi động:

vagrant up

Quá trình khởi động lúc đầu sẽ khá lâu do phải cài đặt hệ điều hành.

Tiếp theo, chúng ta dùng lệnh ssh bình thường để truy cập vào máy ảo. Thông tin username/password chúng ta đã cấu hình ở Vagrantfile trong ví dụ trên là dev/adminpw:


ssh dev@172.22.22.22

Một số lệnh khác của Vagrant:

Để xem toàn bộ lệnh mà Vagrant cung cấp, ta có thể dùng lệnh sau:


vagrant -h

Mình xin điểm qua một số lệnh thường dùng.

Tắt máy ảo:

Sau khi thực hành xong, chúng ta nên tắt máy ảo đi để cho nhẹ máy. Muốn tắt máy ảo, ta dùng lệnh:


vagrant halt

 Xóa toàn bộ máy ảo:

Trong trường hợp chúng ta muốn khôi phục lại trạng thái ban đầu, tức là xóa hết tất cả cài đặt của máy ảo, chúng ta dùng lệnh:


vargant destroy

 Kiểm tra trạng thái của các máy ảo:

Đôi khi chúng ta cần nhiều hơn một máy ảo trên cùng một máy. Và đôi khi chúng ta không biết cái nào đang còn chạy để mà tắt đi, chúng ta có thể dụng lệnh sau để kiểm tra:


vagrant global-status

Kết:

Vagrant có thể nói là công cụ cực kì tiện lợi dành cho DevOpts. Với Vagrant, bạn dễ dàng cài đặt và tháo bỏ các các máy ảo.