Trang chủ » blog » Sử dụng Vagrant tạo và quản lý máy ảo
vagrant03

Sử dụng Vagrant tạo và quản lý máy ảo

Công cụ vagrant là gì

Vagrant là một công cụ tương tác với những nền tảng ảo hóa như VirtualBox, HyperV, VM …, nó giúp tạo và quản trị những máy ảo trên những nền tảng đó. Vagrant cung ứng một thông số kỹ thuật đơn thuần tạo và quản trị, tương tác với máy ảo mà không có nhiều sự độc lạ dù bạn đang sử dụng VirtualBox, VM hay HyperV
Vagrant

Cài đặt Vagrant

Vagrant thao tác với một nền tảng ảo hóa nào đó như VirtualBox, HyperV, VM … nên bạn cũng cần có trên mạng lưới hệ thống của mình, ví dụ cần thiết lập VirtualBox nếu dùng nền tảng này, ở phần này coi như bạn đã đang có VirtualBox hay HyperV trên mạng lưới hệ thống

Cài đặt vagrant trên Windows / macOS

Tải Vagrant đúng bản dành cho Windows ( 32 hay 64 bit ) hay macOS tại Tải Vagrant, sau đó chạy bộ thiết lập, hoàn toàn có thể cần khởi động lại máy

Trên Windows có thể dùng PowerShell hoặc nếu muốn cài GitBash để có môi trường dòng lệnh tương tác với Vagrant.
Sau đó chạy lệnh để kiểm tra vagarant đang có trên hệ thống:

vagrant version

Cài đặt Vagrant trên Ubuntu

sudo apt-get install vagrant

Cũng kiểm tra bằng lệnh :

vagrant version

Sử dụng Vagrant tạo và quản lý máy ảo Linux

Cách sử dụng thông thường là khai báo các máy ảo trong một file cấu hình có tên là Vagrantfile,
quy tắc viết cấu hình ở dưới, nhưng trước tiên cần xác định máy ảo đó chạy hệ điều hành gì … để file cấu hình khởi
tạo máy ảo, các nguồn để khởi tạo máy ảo được gọi là các Box, bạn cần tìm Box muốn sử dụng tại:
Tìm Box Vagrant

Ví dụ, muốn khởi tạo một máy ảo từ hệ điệu hành CentOS, thì hoàn toàn có thể tìm và chọn Box có tên centos / 7 nó tương thích cho cả VirtualBox và HyperV. Muốn một máy ảo Ubuntu hoàn toàn có thể chọn Box có tên ubuntu / trusty64 Box này lại chỉ tương thích với Virtual Bõ. Tương tự như vậy hoàn toàn có thể tìm kiếm chọn ra Box tương thích ! Hướng dẫn này giả sử sẽ tạo một máy ảo chạy CentOS / 7, dùng nền tảng VirtualBox ( trên máy phải setup sẵn VirualBox ) .

Tạo một thư mục dự án đạt tên là vagrant-exam, từ dòng lệnh (terminal, powershell …) vào thư mục đó
gõ lệnh sau để nó sinh ra file cấu hình Vagrantfile:

vagrant init

vagrant

Sau lệnh này, nó sinh ra file Vagrantfile trong đó có chứa nội dung hướng dẫn cấu hình theo mẫu.
Nội dung file đó có dạng:

Trong file trên chứa những hướng dẫn thông số kỹ thuật, hầu hết ở trạng thái comment, nếu muốn thông số kỹ thuật phần nào thì bỏ comment ( xóa # ) ở phần đó. Ở đây bạn thay nội dung cấu hình thành như sau để tạo máy ảo centos / 7 – ý nghĩa có lý giải ở comment sau mỗi thông số kỹ thuật
Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|                # Bắt đầu khai báo máy ảo
  config.vm.box = 'centos/7'                    # Sử dụng Box centos/7 tạo máy ảo

  config.vm.provider "virtualbox" do |vb|       # Máy ảo dùng nền tảng virtualbox, với các cấu hình bổ sung thêm cho provider
     vb.name = "may-ao-01"                      # đặt tên máy ảo tạo ra
     vb.cpus = 2                                # cấp 2 nhân CPU
     vb.memory = "2048"                         # cấu hình dùng 2GB bộ nhớ
  end                                           # hết cấu hình provider

end                                             #  hết cấu hình tạo máy ảo

vagrant up

Thi hành tạo máy ảo: gõ với lệnh vagrant up, lệnh này sẽ tạo máy ảo (cập nhật)
được cấu hình trong Vagrantfile, nếu mở VirtualBox Manager sẽ thấy tên và trạng thái máy ảo này.
Ở đây là máy ảo có tên may-ao-01

Xem thêm: Nuanced là gì

vagrant

Nhìn vào các thông báo quá trình tạo máy ảo, mặc định nó sẽ chia sẻ thư mục chứa file Vagrantfile
ở máy host vào máy ảo ở đường dẫn /vagrant của máy ảo. Có nghĩa tại máy ảo truy cập vào thư mục
/vagrant/ thì trong đó chính là dữ liệu trong thư mục có file Vagrantfile của máy host

vagrant ssh

Khi máy ảo đang chạy, vẫn đang ở dòng lệnh tại thư mục chứa file Vagrant để kết nối đến máy ảo bằng
giao thức ssh gõ lệnh sau:

vagrant ssh

Bạn sẽ đăng nhập vào máy ảo với tài khoản user có tên là vagrant, từ tài khoản này nếu muốn chuyển
sang root gõ lệnh:

sudo -i

vagrant

Lệnh vagrant hay dùng

vagrant init
Sinh file cấu hình máy ảo mới Vagrantfile

vagrant up
Thực hiện tạo / hoặc chạy máy ảo với cấu hình từ Vagrantfile

vagrant ssh
Kết nối ssh vào máy ảo, tài khoản kết nối là vagrant

vagrant halt
Dừng máy ảo (shutdown)

vagrant reload
Khởi động lại máy ảo, có đọc lại cấu hình trong Vagrantfile

vagrant destroy
Xóa máy ảo

Đồng bộ thư mục

Mặc định khi chạy máy ảo, nó đã đồng bộ qua lại giữa thư mục chứa file Vagrantfile vào thư mục
/vagrant/ của máy ảo. Nếu muốn cấu hình đồng bộ sử dụng config.vm.synced_folder, ví
dụ cần đồng bộ thư mục máy host hiện tại . vào thư mục /data/mydata/ của máy ảo

config.vm.synced_folder '.', '/data/mydata/'
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|                # Bắt đầu khai báo máy ảo
  config.vm.box = 'centos/7'                    # Sử dụng Box centos/7 tạo máy ảo

  config.vm.synced_folder '.', '/data/mydata/'  # Chia sẻ thư mục máy host và máy ảo

  config.vm.provider "virtualbox" do |vb|       # Máy ảo dùng nền tảng virtualbox, với các cấu hình bổ sung thêm cho provider
     vb.name = "may-ao-01"                      # đặt tên máy ảo tạo ra
     vb.cpus = 2                                # cấp 2 nhân CPU
     vb.memory = "2048"                         # cấu hình dùng 2GB bộ nhớ
  end                                           # hết cấu hình provider

end                                             #  hết cấu hình tạo máy ảo

Sau khi sửa file cấu hình, nạp lại máy ảo bằng vagrant reload

Nếu có lỗi có thể cần cài đặt Plugin vagrant-vbguest

vagrant plugin install vagrant-vbguest

Forward cổng máy ảo ra host

Nếu muốn chuyển cổng từ máy ảo ra máy host, ví dụ cổng máy ảo là 80 ra cổng máy host 8080
(có nghĩa là từ máy host truy cập cổng 8080 – locahost:8080 – thì có nghĩa là truy cập cổng 80 của máy ảo)

config.vm.network "forwarded_port", guest: 80, host: 8080

Ngoài ra bạn cũng có thể thiết lập cho máy ảo có cấu hình với địa chỉ IP do bạn chỉ định và NAT giúp máy
host (các máy khác trong LAN) truy cập đến địa chỉ này của máy ảo mà không cần forward cổng.

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

Với cấu hình trên, thì địa chỉ máy ảo là 192.168.10.155, bạn có thể truy cập đến các cổng của máy
ảo với địa chỉ IP này, ví dụ http://192.168.10.155 (tức cổng 80)

Provision – chạy lệnh khi tạo máy ảo

Trong quá trình tạo máy ảo, sau khi nạp Box, bạn có thể chạy các lệnh, các script của hệ điều hành, nếu chạy
một script từ file myscript.sh thì cấu hình là:

config.vm.provision "shell", path: "./myscript.sh"

Cũng hoàn toàn có thể thông số kỹ thuật chạy trực tiếp những lệnh, ví dụ :

Post navigation

Leave a Comment

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *