This translates to:
📋 Copy All Commands
📄 Generate PDF # Vagrant
Would you like to provide the rest of the texts for translation?
Comando Descripción vagrant versionMostrar versión de Vagrant vagrant -hMostrar información de ayuda vagrant initInicializar nuevo Vagrantfile vagrant init ubuntu/jammy64Inicializar con cuadro específico
Box Management
Box Operations
Comando Descripción vagrant box listListar cajas instaladas vagrant box add ubuntu/jammy64Añadir caja vagrant box add --name mybox /path/to/box.boxAgregar box local vagrant box remove ubuntu/jammy64Eliminar cuadro vagrant box updateActualizar todas las cajas vagrant box update --box ubuntu/jammy64Actualizar cuadro específico
Comando Descripción vagrant box outdatedVerificar cajas desactualizadas vagrant box pruneEliminar versiones antiguas de box vagrant box repackage ubuntu/jammy64Reembalar caja
VM Lifecycle Management
Basic Operations
Comando Descripción vagrant upIniciar y aprovisionar VM vagrant haltApagar VM vagrant reloadReiniciar VM vagrant destroyDestruir VM vagrant suspendSuspender VM vagrant resumeReanudar VM suspendida
Comando Descripción vagrant statusMostrar estado de VM vagrant global-statusMostrar estado de todas las VMs vagrant global-status --pruneLimpiar entradas inválidas
SSH and Access
SSH Operations
Comando Descripción vagrant sshSSH into VM vagrant ssh-configMostrar configuración SSH vagrant ssh -- -L 8080:localhost:80SSH con reenvío de puertos
Provisioning
Provisioning Commands
Comando Descripción vagrant provisionEjecutar proveedores vagrant provision --provision-with shellEjecutar aprovisionador específico vagrant up --provisionIniciar y aprovisionar vagrant reload --provisionReiniciar y aprovisionar
Multi-Machine Environments
Multi-Machine Commands
Comando Descripción vagrant up webIniciar máquina específica vagrant ssh webSSH a máquina específica vagrant halt dbDetener máquina específica vagrant destroy --forceDestruir todo sin confirmación
Snapshots
Snapshot Management
Comando Descripción vagrant snapshot save snapshot_nameGuardar instantánea vagrant snapshot listListar snapshots vagrant snapshot restore snapshot_nameRestaurar snapshot vagrant snapshot delete snapshot_nameEliminar instantánea
Plugin Management
Plugin Operations
Comando Descripción vagrant plugin listListar plugins instalados vagrant plugin install vagrant-vbguestInstalar plugin vagrant plugin uninstall vagrant-vbguestDesinstalar plugin vagrant plugin updateActualizar todos los plugins
Vagrantfile Examples
Basic Vagrantfile
Vagrant . configure ( "2" ) do |config|
config. vm . box = "ubuntu/jammy64"
config. vm . hostname = "myserver"
# Network configuration
config. vm . network "private_network" , ip: "192.168.56.10"
config. vm . network "forwarded_port" , guest: 80 , host: 8080
# Provider configuration
config. vm . provider "virtualbox" do |vb|
vb. memory = "2048"
vb. cpus = 2
vb. name = "MyVM"
end
# Provisioning
config. vm . provision "shell" , inline: <<-SHELL
apt-get update
apt-get install -y nginx
systemctl enable nginx
systemctl start nginx
SHELL
end
Multi-Machine Setup
Vagrant . configure ( "2" ) do |config|
# Web server
config. vm . define "web" do |web|
web. vm . box = "ubuntu/jammy64"
web. vm . hostname = "web"
web. vm . network "private_network" , ip: "192.168.56.10"
web. vm . provider "virtualbox" do |vb|
vb. memory = "1024"
vb. cpus = 1
end
web. vm . provision "shell" , inline: <<-SHELL
apt-get update
apt-get install -y nginx
SHELL
end
# Database server
config. vm . define "db" do |db|
db. vm . box = "ubuntu/jammy64"
db. vm . hostname = "database"
db. vm . network "private_network" , ip: "192.168.56.11"
db. vm . provider "virtualbox" do |vb|
vb. memory = "2048"
vb. cpus = 2
end
db. vm . provision "shell" , inline: <<-SHELL
apt-get update
apt-get install -y mysql-server
SHELL
end
end
Advanced Configuration
Vagrant . configure ( "2" ) do |config|
config. vm . box = "ubuntu/jammy64"
config. vm . box_version = "20230607.0.0"
# Synced folders
config. vm . synced_folder "." , "/vagrant" , disabled: true
config. vm . synced_folder "./app" , "/var/www/html" ,
owner: "www-data" , group: "www-data"
# Network configuration
config. vm . network "private_network" ,
ip: "192.168.56.10" ,
netmask: "255.255.255.0"
config. vm . network "public_network" ,
bridge: "en0: Wi-Fi (AirPort)"
# Port forwarding
config. vm . network "forwarded_port" , guest: 80 , host: 8080
config. vm . network "forwarded_port" , guest: 443 , host: 8443
# Provider-specific configuration
config. vm . provider "virtualbox" do |vb|
vb. gui = false
vb. memory = "4096"
vb. cpus = 4
vb. name = "Development Server"
# VirtualBox specific settings
vb. customize [ "modifyvm" , :id , "--natdnshostresolver1" , "on" ]
vb. customize [ "modifyvm" , :id , "--natdnsproxy1" , "on" ]
end
# Multiple provisioners
config. vm . provision "shell" , inline: <<-SHELL
apt-get update
apt-get upgrade -y
SHELL
config. vm . provision "file" ,
source: "./configs/nginx.conf" ,
destination: "/tmp/nginx.conf"
config. vm . provision "shell" , path: "scripts/setup.sh"
config. vm . provision "ansible" do |ansible|
ansible. playbook = "playbook.yml"
ansible. inventory_path = "inventory"
end
end
Provisioning Methods
Shell Provisioning
# Inline shell commands
config. vm . provision "shell" , inline: <<-SHELL
apt-get update
apt-get install -y docker.io
usermod -aG docker vagrant
SHELL
# External script
config. vm . provision "shell" , path: "scripts/bootstrap.sh"
# Privileged and non-privileged
config. vm . provision "shell" , privileged: false , inline: <<-SHELL
echo "Running as vagrant user"
SHELL
# Environment variables
config. vm . provision "shell" , env: \\\\{ "DEBIAN_FRONTEND" => "noninteractive" \\\\}, inline: <<-SHELL
apt-get install -y mysql-server
SHELL
File Provisioning
config. vm . provision "file" ,
source: "~/.ssh/id_rsa.pub" ,
destination: "~/.ssh/authorized_keys"
config. vm . provision "file" ,
source: "./configs/" ,
destination: "/tmp/configs"
Ansible Provisioning
config. vm . provision "ansible" do |ansible|
ansible. playbook = "site.yml"
ansible. inventory_path = "inventory/vagrant"
ansible. limit = "all"
ansible. verbose = "v"
ansible. extra_vars = \\\\{
nginx_port: 80 ,
database_name: "myapp"
\\\\}
end
Docker Provisioning
config. vm . provision "docker" do |d|
d. pull_images "nginx"
d. pull_images "mysql:8.0"
d. run "nginx" ,
args: "-p 80:80 -v /vagrant/html:/usr/share/nginx/html"
d. run "mysql" ,
args: "-e MYSQL_ROOT_PASSWORD=secret -p 3306:3306"
end
Network Configuration
Private Networks
# Static IP
config. vm . network "private_network" , ip: "192.168.56.10"
# DHCP
config. vm . network "private_network" , type: "dhcp"
# Multiple interfaces
config. vm . network "private_network" , ip: "192.168.56.10"
config. vm . network "private_network" , ip: "10.0.0.10"
Public Networks
# Bridge to default interface
config. vm . network "public_network"
# Bridge to specific interface
config. vm . network "public_network" , bridge: "en0: Wi-Fi (AirPort)"
# Static IP on public network
config. vm . network "public_network" , ip: "192.168.1.100"
Port Forwarding
# Basic port forwarding
config. vm . network "forwarded_port" , guest: 80 , host: 8080
# Multiple ports
config. vm . network "forwarded_port" , guest: 80 , host: 8080
config. vm . network "forwarded_port" , guest: 443 , host: 8443
config. vm . network "forwarded_port" , guest: 3306 , host: 3306
# Auto-correct port conflicts
config. vm . network "forwarded_port" , guest: 80 , host: 8080 , auto_correct: true
Provider Configuration
VirtualBox Provider
config. vm . provider "virtualbox" do |vb|
vb. gui = true
vb. memory = "4096"
vb. cpus = 4
vb. name = "MyVM"
# Advanced settings
vb. customize [ "modifyvm" , :id , "--vram" , "128" ]
vb. customize [ "modifyvm" , :id , "--accelerate3d" , "on" ]
vb. customize [ "modifyvm" , :id , "--clipboard" , "bidirectional" ]
end
VMware Provider
config. vm . provider "vmware_desktop" do |vmware|
vmware. vmx [ "memsize" ] = "4096"
vmware. vmx [ "numvcpus" ] = "4"
vmware. vmx [ "displayName" ] = "MyVM"
end
Hyper-V Provider
config. vm . provider "hyperv" do |hv|
hv. memory = 4096
hv. cpus = 4
hv. vmname = "MyVM"
end
Synced Folders
Basic Synced Folders
# Default synced folder (disabled)
config. vm . synced_folder "." , "/vagrant" , disabled: true
# Custom synced folder
config. vm . synced_folder "./src" , "/var/www/html"
# With options
config. vm . synced_folder "./app" , "/var/www/html" ,
owner: "www-data" ,
group: "www-data" ,
mount_options: [ "dmode=775,fmode=664" ]
NFS Synced Folders
config. vm . synced_folder "./" , "/vagrant" ,
type: "nfs" ,
nfs_udp: false ,
nfs_version: 4
SMB Synced Folders (Windows)
config. vm . synced_folder "./" , "/vagrant" ,
type: "smb" ,
smb_username: "username" ,
smb_password: "password"
Best Practices
Resource Allocation : Allocate appropriate CPU and memory
Synced Folders : Use NFS for better performance on macOS/Linux
Box Selection : Choose minimal base boxes
Snapshot Management : Use snapshots for quick rollbacks
Provider Optimization : Configure provider-specific optimizations
Security
SSH Keys : Use SSH keys instead of passwords
Network Isolation : Use private networks when possible
Firewall : Configure appropriate firewall rules
Updates : Keep boxes and Vagrant updated
Secrets : Don’t commit secrets to version control
Development Workflow
Version Control : Include Vagrantfile in version control
Documentation : Document setup and usage
Consistency : Use same environment across team
Testing : Test provisioning scripts
Cleanup : Regularly clean up unused VMs and boxes
Troubleshooting
Logs : Check Vagrant and provider logs
SSH : Use vagrant ssh-config for debugging
Networking : Test network connectivity
Provisioning : Test provisioning scripts separately
Resources : Monitor host system resources