一、国内镜像站
1.Ubuntu
清华大学镜像站,如: https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box
启动一个 Ubuntu 18.04 的虚拟机:
vagrant init ubuntu-bionic https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box
2.CentOS
中科大镜像站,如: https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box
启动一个 CentOS 7 的虚拟机:
vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box
vagrant常用命令
//vagrant支持的操作系统列表
https://vagrantcloud.com/boxes/search
vagrant box add hashicorp/bionic64 //下载ubuntu操作系统
vagrant box add centos/7 //下载centosu操作系统
//初始化vagrant目录 , 生成vagrantfile
vagrant init hashicorp/bionic64 //ubuntu的vagrantfile
vagrant init centos/7 //centos7的vagrantfile
//根据当前目录下的vagrantfile运行虚拟机
vagrant up --provider=virtualbox //指定virtualbox作为虚拟化驱动
vagrant up --provider=vmware_desktop //指定vmware作为虚拟化驱动
//重新启动,跳过初始导入镜像
vagrant reload --provision
//连接虚拟机器
vagrant ssh
//退出虚拟机 , 可再次进入
logout
//将vagrant机器挂起
vagrant suspend
//将挂起的机器重新唤醒
vagrant up
//将机器关机
vagrant halt
//销毁虚拟机
vagrant destroy
其他操作:
//删除vagrant镜像
vagrant box remove hashicorp/bionic64
//列出vagrant本地可用的box
vagrant box list
//再vagrant ssh里面添加的文件会被映射同步到宿主机,当前执行命令的目录
touch /vagrant/foo
//vagrant启动脚本 bootstrap.sh
#!/usr/bin/env bash
apt-get update
apt-get install -y apache2
if ! [ -L /var/www ]; then
rm -rf /var/www
ln -fs /vagrant /var/www
fi
修改vagrantfile 以启动脚本
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/bionic64"
config.vm.provision :shell, path: "bootstrap.sh"
end
//定制开发vagrantfile
https://www.vagrantup.com/docs/boxes/base
//当vagrant创建的虚拟机部署了web服务,宿主机无法访问时,需要修改网络设置,vagrantfile样例如下 ,记住要重启vagrant reload
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/bionic64"
config.vm.provision :shell, path: "bootstrap.sh"
config.vm.network :forwarded_port, guest: 80, host: 4567
end
//vagrantfile网络环境共享,需要依赖ngrok插件,完整文档 :https://www.vagrantup.com/docs/share/
vagrant plugin install vagrant-share
vagrant share
//vagrant支持的多种虚拟机提供者 详细信息网址 https://www.vagrantup.com/docs/providers
VirtualBox, Hyper-V, and Docker
//以另一种提供者启动
vagrant up --provider=vmware_desktop
磁盘扩展
当使用体验特性的时候,需要设置环境变量
export VAGRANT_EXPERIMENTAL="1"
当只需要开启指定的体验特性,而不是全部的体验特性的时候,可以指定体验特性
export VAGRANT_EXPERIMENTAL="disks"
在vagrantfile文件里将虚拟机设置为100gb
config.vm.disk :disk, size: "100GB", primary: true