Vagrant Cheat Sheet

Vagrant là công cụ tạo và quản lý môi trường ảo hóa (VM) để phát triển và kiểm thử, giúp đồng bộ môi trường trên các máy tính khác nhau.

Lệnh cơ bản (Basic Commands)

Lệnh Mô tả
vagrant init Khởi tạo Vagrantfile mặc định trong thư mục hiện tại
vagrant init [box-name] Khởi tạo Vagrantfile với box cụ thể (ví dụ: vagrant init ubuntu/jammy64)
vagrant up Khởi động VM (provision lần đầu nếu có cấu hình)
vagrant halt Tắt VM một cách an toàn
vagrant destroy Xóa hoàn toàn VM (cần xác nhận)
vagrant destroy -f Xóa VM mà không cần xác nhận
vagrant ssh Kết nối vào VM qua SSH
vagrant status Kiểm tra trạng thái VM (running, stopped, v.v.)
vagrant reload Khởi động lại VM và áp dụng thay đổi từ Vagrantfile
vagrant provision Chạy lại provisioning (cấu hình VM) mà không khởi động lại

Quản lý Box (Box Management)

Lệnh Mô tả
vagrant box add [name] [url] Thêm box từ URL (ví dụ: vagrant box add ubuntu/jammy64)
vagrant box list Liệt kê các box đã cài đặt
vagrant box remove [name] Xóa box cụ thể
vagrant box update Cập nhật box lên phiên bản mới nhất
vagrant box outdated Kiểm tra xem box có lỗi thời không

Cấu hình Vagrantfile (Vagrantfile Configuration)

Cấu hình cơ bản

Cấu hình Mô tả
config.vm.box = "[box-name]" Chỉ định box để sử dụng (ví dụ: "ubuntu/jammy64")
config.vm.hostname = "[name]" Đặt tên hostname cho VM
config.vm.network "private_network", ip: "[ip]" Thiết lập mạng riêng với IP tĩnh (ví dụ: "192.168.50.10")
config.vm.network "forwarded_port", guest: [port], host: [port] Chuyển tiếp cổng (ví dụ: guest: 80, host: 8080)
config.vm.synced_folder "[host-path]", "[guest-path]" Đồng bộ thư mục giữa host và guest (ví dụ: "./src", "/var/www")

Cấu hình Provider (VirtualBox)

Cấu hình Mô tả
config.vm.provider "virtualbox" do |vb|<br> vb.memory = "1024"<br> vb.cpus = 2<br>end Đặt RAM (MB) và số CPU cho VM
vb.name = "[name]" Đặt tên VM trong VirtualBox
vb.gui = true Hiển thị giao diện đồ họa của VM

Provisioning (Cấu hình tự động)

Cấu hình Mô tả
config.vm.provision "shell", inline: "apt-get update" Chạy lệnh shell trực tiếp
config.vm.provision "shell", path: "script.sh" Chạy script từ file
config.vm.provision "ansible" do |ansible|<br> ansible.playbook = "playbook.yml"<br>end Chạy Ansible playbook

Ví dụ Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/jammy64"
  config.vm.hostname = "webserver"
  config.vm.network "private_network", ip: "192.168.50.10"
  config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.synced_folder "./html", "/var/www/html"

  config.vm.provider "virtualbox" do |vb|
    vb.memory = "1024"
    vb.cpus = 1
    vb.name = "WebServer"
  end

  config.vm.provision "shell", inline: <<-SHELL
    apt-get update
    apt-get install -y apache2
  SHELL
end

Giải thích: Tạo VM Ubuntu với Apache, đồng bộ thư mục HTML, mở cổng 8080 trên host.

Lệnh nâng cao (Advanced Commands)

Lệnh Mô tả
vagrant suspend Tạm dừng VM (giữ trạng thái)
vagrant resume Khôi phục VM từ trạng thái tạm dừng
vagrant package Đóng gói VM hiện tại thành box để tái sử dụng
vagrant global-status Hiển thị trạng thái tất cả VM trên máy
vagrant ssh-config Hiển thị cấu hình SSH để kết nối thủ công

Mẹo sử dụng (Tips)

  • Chạy lệnh trong thư mục chứa Vagrantfile, nếu không sẽ báo lỗi.
  • Tìm box tại Vagrant Cloud.
  • Dùng vagrant reload --provision để áp dụng provisioning mới.
  • Xóa thư mục .vagrant nếu gặp lỗi khó sửa.


Tải xuống cheat sheet

devops.vn

Chung tay xây dựng một cộng đồng DevOps VietNam vững mạnh
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận