1. Cài VMware Workstation 17 Pro
Chọn Workstation 17 Pro for Windows
2. Cài cắm các công cụ Vagrant trên Windows
0. Cài Vagrant trên Windows → chọn AMD64 là bản 64 bit của CPU Intel và AMD
https://developer.hashicorp.com/vagrant/downloads
1. Cài Vagrant VMware Utility
https://developer.hashicorp.com/vagrant/downloads/vmware
2. Cài Vagrant plugin
→ chạy Powershell với quyền Administrator
# Cài plugin VMware Workstation
vagrant plugin install vagrant-vmware-desktop
# Coi các plugin đã cài
vagrant plugin list
# Coi trong lệnh vagrant plugin còn tùy chọn (option) con nào nữa không?
# --> có expunge, install, license...
vagrant plugin --help
# Coi bên trong uninstall có gì
vagrant plugin uninstall --help
3. Chạy Vagrant = 1 lịnh duy nhất
1. Chuẩn bị
Chạy Powershell quyền Administrator
mkdir D:vagrant-vmware ; cd D:vagrant-vmware
$URL="https://devsecops.edu.vn/wp-content/uploads/2023/11/Vagrantfile-vmw-X6C05pPYkZECNAG5rAHf0RZKcxf38V"
Invoke-WebRequest -URI $URL -OutFile Vagrantfile
dir
2. Chạy
vagrant up
3. Vào máy ảo vừa tạo
vagrant status
vagrant ssh
sudo -i
uname -a
cat /etc/os-release
exit
exit
Vagrantfile
Vagrant.configure("2") do |config|
config.vm.define "vmware" do |vmware|
vmware.vm.box = "almalinux/9"
vmware.vm.hostname = 'alma9'
vmware.vm.provider :vmware_workstation do |v|
v.gui = true
v.vmx["numvcpus"] = "2"
v.vmx["cpuid.coresPerSocket"] = "2"
v.vmx["memsize"] = "1024"
v.vmx["displayname"] = "alma9-vm"
v.vmx["guestOS"] = "rhel9-64"
v.vmx['ethernet0.connectionType'] = 'nat'
end
end
end
4. Soi máy ảo đã tạo ra có đúng hem?
Soi Tên máy ảo + RAM + vCPU + Card mạng
v.vmx["displayname"] = "alma9-vm"
v.vmx["memsize"] = "1024"
v.vmx["numvcpus"] = "2"
v.vmx["cpuid.coresPerSocket"] = "2"
v.vmx['ethernet0.connectionType'] = 'nat'
Soi Hostname + Version của OS
vmware.vm.box = "almalinux/9"
vmware.vm.hostname = 'alma9'
# Lệnh vagrant vào máy ảo
vagrant ssh
hostname
exit
v.vmx["guestOS"] = "rhel9-64"
5. Vagrant tạo máy ảo trên VMware Workstation dựa vào đâu?
Dựa vào file vmx của máy ảo → Tạo máy ảo tùy ý = tay
→ mở file vmx = Notepad ra xem → dựa vào các tham số đó → khai báo trong Vagrantfile
.encoding = "windows-1252"
config.version = "8"
virtualHW.version = "20"
mks.enable3d = "TRUE"
pciBridge0.present = "TRUE"
pciBridge4.present = "TRUE"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.functions = "8"
pciBridge5.present = "TRUE"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge6.present = "TRUE"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge7.present = "TRUE"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
vmci0.present = "TRUE"
hpet0.present = "TRUE"
nvram = "Alma92-podman.nvram"
virtualHW.productCompatibility = "hosted"
powerType.powerOff = "soft"
powerType.powerOn = "soft"
powerType.suspend = "soft"
powerType.reset = "soft"
displayName = "Alma92-podman"
usb.vbluetooth.startConnected = "TRUE"
guestOS = "rhel9-64"
tools.syncTime = "FALSE"
numvcpus = "4"
cpuid.coresPerSocket = "4"
vcpu.hotadd = "TRUE"
memsize = "4096"
mem.hotadd = "TRUE"
sata0.present = "TRUE"
nvme0.present = "TRUE"
nvme0:0.fileName = "Alma92-podman.vmdk"
nvme0:0.present = "TRUE"
sata0:1.deviceType = "cdrom-image"
sata0:1.fileName = "D:AlmaLinux-9.2-x86_64-minimal.iso"
sata0:1.present = "TRUE"
svga.graphicsMemoryKB = "8388608"
ethernet0.connectionType = "nat"
ethernet0.addressType = "generated"
ethernet0.virtualDev = "vmxnet3"
ethernet0.present = "TRUE"
extendedConfigFile = "Alma92-podman.vmxf"
floppy0.present = "FALSE"
vmxstats.filename = "Alma92-podman.scoreboard"
uuid.bios = "56 4d 40 6d 5f ee e5 2e-7b cf 0f c6 20 95 4c ac"
uuid.location = "56 4d 40 6d 5f ee e5 2e-7b cf 0f c6 20 95 4c ac"
pciBridge0.pciSlotNumber = "17"
pciBridge4.pciSlotNumber = "21"
pciBridge5.pciSlotNumber = "22"
pciBridge6.pciSlotNumber = "23"
pciBridge7.pciSlotNumber = "24"
ethernet0.pciSlotNumber = "160"
sata0.pciSlotNumber = "32"
nvme0.pciSlotNumber = "192"
nvme0:0.redo = ""
svga.vramSize = "268435456"
vmotion.checkpointFBSize = "4194304"
vmotion.checkpointSVGAPrimarySize = "268435456"
vmotion.svga.mobMaxSize = "1073741824"
vmotion.svga.graphicsMemoryKB = "8388608"
vmotion.svga.supports3D = "1"
vmotion.svga.baseCapsLevel = "9"
vmotion.svga.maxPointSize = "1"
vmotion.svga.maxTextureSize = "16384"
vmotion.svga.maxVolumeExtent = "2048"
vmotion.svga.maxTextureAnisotropy = "16"
vmotion.svga.lineStipple = "0"
vmotion.svga.dxMaxConstantBuffers = "15"
vmotion.svga.dxProvokingVertex = "0"
vmotion.svga.sm41 = "1"
vmotion.svga.multisample2x = "1"
vmotion.svga.multisample4x = "1"
vmotion.svga.msFullQuality = "1"
vmotion.svga.logicOps = "1"
vmotion.svga.bc67 = "9"
vmotion.svga.sm5 = "1"
vmotion.svga.multisample8x = "1"
vmotion.svga.logicBlendOps = "0"
vmotion.svga.maxForcedSampleCount = "16"
vmotion.svga.gl43 = "1"
ethernet0.generatedAddress = "00:0c:29:95:4c:ac"
ethernet0.generatedAddressOffset = "0"
vmci0.id = "546655404"
nvme0.subnqnUUID = "52 b5 b4 a9 db 1e 0b 7f-fd fd 5c b3 7b ec 48 cc"
monitor.phys_bits_used = "45"
cleanShutdown = "TRUE"
softPowerOff = "FALSE"
svga.guestBackedPrimaryAware = "TRUE"
tools.remindInstall = "TRUE"
Chọn máy ảo VMware Workstation để chạy Vagrant thì