vagrant+virtualbox已经用了好几年了,最近出一期安装使用全流程。首先是
电脑系统:win10
vagrant版本:1.9.7
virtualbox版本:5.1.26
下载地址:vagrant1.9.7+virtualbox5.1.26
如果不想用我这边分享的可以去官网找:
顺带一句如果是win7可以用:1.9.5可以和virtualbox 5.1.x版本相匹配
重点: 先安装virtualbox 再安装vagrant 顺序不要反了,提示你重启你就重启,另外vagrant的好多报错并不是vagrant的可能是虚拟服务器自身的问题。
首先我们安装的时候就不要把vagrant 和 virtualbox 安装到C盘。之外我们每个人的c盘空间都是有限的 所以安装完virtualbox和vagrant都是需要换他们的存储地址,但是安装的时候又没有办法进行处理因此这里提前跟大家说一下 不然C盘被挤爆。
打开 VirtualBox 程序,点击管理/全局设定菜单项, 将常规栏里的默认虚拟电脑位置(M)改为其他磁盘下的路径;
将原路径 C:\Users\用户\.VirtualBox\VirtualBox VMs 下的文件移动到新路径下。
重新启动VirtualBox程序,在虚拟机列表里,以前建立的虚拟机虽然都还在,但已经不可用了,将他们全部删除(如果已经有虚拟机了换地址请三思)。
vagrant 也是有一个VAGRANT_HOME的文件位置,它是用来将镜像加入到vagrant中之后vagrant自己存储的镜像名。vagrant box list 就可以看到自己加入的镜像,这个后面会说:
这个是原始位置,我们也可以进行迁移到D盘或者其他盘符,
右击 选择 此电脑 => 属性 => 左侧 高级系统设置 => 环境变量 => 新建(看下图)
移动到自己想要的位置,之后改完了也是需要重启的;
上面准备工作做好之后我们再开始新建虚拟机工作;在Discover Vagrant Boxes - Vagrant Cloud 这里的box列表中找到一个作为我们虚拟环境的基础box,
我下载的是centos7,这个版本可以400+M挺好的没有其他东西。
vagrant box add tmpServer D:\boxes\CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box
vagrant init
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
#这里表示生成的虚拟机是又twzCentos的box来生成的
config.vm.box = "twzCentos"
#这里是初始化磁盘大小,如果不搞大一点以后不够用
config.disksize.size = "80GB"
#这里是内网ip 我们可以通过这个ip的80端口访问虚拟机
config.vm.network "private_network", ip: "192.168.56.10"
#box 不进行更新
config.vm.box_check_update = false
#windows的文件对应虚拟机的共享文件
config.vm.synced_folder "D:/work","/vagrant", type: "nfs"
#启动虚拟机超时时长
config.vm.boot_timeout = 50
#config.ssh.insert_key = true
#config.ssh.forward_agent = true
#连入虚拟机的账号密码
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
#这里是设置cpu核心数 还有内存4G
config.vm.provider "virtualbox" do |vb|
vb.cpus = 2
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
vb.memory = "4096"
end
#
# View the documentation for the provider you are using for more
# information on available options.
# Enable provisioning with a shell script. Additional provisioners such as
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
# documentation for more information about their specific syntax and use.
# config.vm.provision "shell", inline: <<-SHELL
# apt-get update
# apt-get install -y apache2
# SHELL
end
由于config.disksize.size = "80GB" 这个是需要vagrant-disksize扩展的所以我们要 提前执行
vagrant plugin install vagrant-disksize
这个执行需要点儿时间,一般在两三分钟左右。 加完了之后可以查看一下vagrant 扩展了列表
vagrant plugin list
如果出现:同步文件失败No Virtualbox Guest Additionsinstallation found
vagrant plugin install vagrant-vbguest --plugin-version 0.21
确定版本安装扩展有些版本的扩展可能不可以用。
如果出现:Warning: Authentication failure. Retrying
这时候一般虚拟机已经建立好并且开始运行了,但是虚拟机我们vagrant 连不上账号密码。这时候很有可能是我们虚拟机的ssh的身份验证不允许使用password,这时候我们
右击这个正在运行的虚拟机,之后 显示 按钮,之后进行终端命令行 就是我们虚拟机的命令行,输入账号密码》: root vagrant 进入root用户,
修改/etc/ssh/sshd_config文件配置,
PasswordAuthentication yes 是否可以密码认证,修改成yes
然后重启sshd服务service sshd restart
之后再在vagrant up的界面 输入vagrant reload 进行重启虚拟机;
上面的问题应该就解决了,如果还有问题,我建议vagrant up的时候开启虚拟机终端查看虚拟机启动的日志,是否有什么没有成功导致未启动成功的。
暂时就到这儿如果有问题可以提问,我看到如果知道的话我会回答 如果我找不到,我建议你按照我说的方法进行自己查错~