2019 年 最简单最通俗的 vagrant 安装使用说明,附带示例vagrantfile
Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。
老套路,更新留坑
vagrant 安装
- 官网链接
vagrant windows 下载
- 64 位下载:https://releases.hashicorp.co...
- 32 位下载:https://releases.hashicorp.co...
百度云64位下载:
链接:https://pan.baidu.com/s/1oiztOlj0S_h6AfQ6WdUb_w 提取码:aoph
vagrant mac 下载
- 64 位下载: https://releases.hashicorp.co...
vagrant box 下载
- 官网下载:https://app.vagrantup.com/box...
- 百度云下载: 提取码:aoph
vagrant box 添加到本地镜像
- 下载好的镜像添加
vagrant box add {镜像名称} {镜像地址}
例如:
vagrant box add C:/box/centos7.box --name centos/7.5
- 使用远程镜像
vagrant box add https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box --name ubuntu/bionic
vagrant 命令说明
vagrant up 启动/创建虚拟机
G:\project vagrant up ci1.cn && vagrant ssh ci1.cnBringing machine 'ci1.cn' up with 'virtualbox' provider...==> ci1.cn: Clearing any previously set forwarded ports...==> ci1.cn: Vagrant has detected a configuration issue which exposes a.....Last login: Mon Jun 24 06:40:46 2019 from 10.0.2.2[vagrant@ci1 ~]$ lsnode-v12.3.1 node-v12.3.1.tar.gz project[vagrant@ci1 ~]$
vagrant ssh 进行虚拟机交互命令行
G:\project vagrant ssh ci1.cnLast login: Mon Jun 24 06:40:46 2019 from 10.0.2.2[vagrant@ci1 ~]$
vagrant reload 重新启动虚拟机
vagrant reload ci1.cn
vagrant up/reload --provision 重新创建或重新执行脚本
vagrant up --provision
vagrant reload --provision
vagrant status 查看当前目录下的虚拟机状态
vagrant status
例如:
G:\project vagrant statusCurrent machine states:ci1.cn running (virtualbox)ci2.cn poweroff (virtualbox)This environment represents multiple VMs. The VMs are all listedabove with their current state. For more information about a specificVM, run `vagrant status NAME`.
vagrant 使用样例
我们举例以lin-cms-tp的全家桶进行举例,其他目录一样哈,别太注重目录
- 进入 lin-cms-tp 全家桶 平级目录
lslin-cms-tp
- 初始化Vagrantfile
G:\project\open-source vagrant initA `Vagrantfile` has been placed in this directory. You are nowready to `vagrant up` your first virtual environment! Please readthe comments in the Vagrantfile as well as documentation on`vagrantup.com` for more information on using Vagrant. lslin-cms-tp Vagrantfile
- 添加 box 镜像
vagrant box add https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box --name ubuntu/bionic
- 然后替换Vagrantfile 内容
# -*- mode: ruby -*-# vi: set ft=ruby :Vagrant.require_version ">= 1.6.0"boxes = [ { :name => "lincms", :eth1 => "10.10.1.10", :mem => "1024", :cpu => "1" }]Vagrant.configure(2) do |config| config.vm.box = "ubuntu/bionic" boxes.each do |opts| config.vm.define opts[:name] do |config| config.vm.hostname = opts[:name] config.vm.provider "vmware_fusion" do |v| v.vmx["memsize"] = opts[:mem] v.vmx["numvcpus"] = opts[:cpu] end config.vm.provider "virtualbox" do |v| v.customize ["modifyvm", :id, "--memory", opts[:mem]] v.customize ["modifyvm", :id, "--cpus", opts[:cpu]] end config.vm.network :private_network, ip: opts[:eth1] end end config.vm.synced_folder "./lin-cms-tp", "/home/vagrant/lin-cms-tp" config.vm.provision "shell", privileged: true, path: "./setup.sh"end
- 新建脚本文件:setup.sh , 内容如下:
# Timezonesudo /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo 'Asia/Shanghai' > /etc/timezone# 设置国内源sudo mv /etc/apt/sources.list /etc/apt/sources.list.back && \ echo '# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 \n \ deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib \n \ deb-src http://mirrors.aliyun.com/debian/ stretch main non-free contrib \n \ deb http://mirrors.aliyun.com/debian-security stretch/updates main \n \ deb-src http://mirrors.aliyun.com/debian-security stretch/updates main \n \ deb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib \n \ deb-src http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib \n \ deb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib \n \ deb-src http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib' >> /etc/apt/sources.list # Libssudo apt-get update && sudo apt-get install -y git vim gcc glibc-static telnet bridge-utils# install dockersudo curl -fsSL https://get.docker.com | sudo bash -s docker --mirror Aliyunsudo groupadd dockersudo gpasswd -a vagrant dockersudo systemctl start dockerrm -rf get-docker.sh# 配置镜像加速器sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://dt77flbr.mirror.aliyuncs.com"]}EOFsudo systemctl enable dockersudo systemctl daemon-reloadsudo systemctl restart docker# 打印IP地址信息ip a
- 最后一步,创建并启动虚拟器
# 创建vagrant up lincms# 查看状态vagrant status# 进入vagrant ssh lincms
如果在以上过程出现错误,请到搜索引擎搜索解决,或者提交评论和留言