IT笔记 · 2014年2月28日

windows7使用vagrant的笔记

windows7下使用vagrant的流水帐

  • Official site:vagrant
  • 先安装VirtualBox或其它vagrant支持的虚拟机,再安装vagrant

使用

  1. 管理员权限进入cmd, 进入任一新建文件夹执行vagrant init,文件夹下多了个配置文件名为”Vagrantfile”
  2. 添加box vagrant box add precise32 http://files.vagrantup.com/precise32.box 这是个32位ubuntu,源在网络,慢等下载;
  3. 修改Vagrantfile文件里的设置config.vm.box = "precise32"
  4. 启动虚拟机vagrant up输入vagrant ssh,提示cmd无ssh,建议使用cygwin或mingw来使用ssh,或者用putty等ssh client. 使用putty,提示

    Host: 127.0.0.1
    Port: 2222
    Username: vagrant
    Private key: C:/User/yourname/.vagrant.d/insecure_private_key

    使用putty配套工具puttygen.exe把insecure_private_key转换成.ppk格式,然后用putty顺利登录虚拟机。

  5. vagrant destory 摧毁虚拟机,仅关机要用vagrant halt
  6. synced folders默认共享文件夹/vagrant,对应主机之前执行vagrant init时所在的文件夹
  7. 使用Vagrantfile里config.vm.provision来进行预配置
  8. 端口转寄 config.vm.network :forwarded_port, host: 4567, guest: 80 这样,如果虚拟机开通了http服务,在主机浏览器使用127.0.0.1:4567就可以访问虚拟机的web

Note

  1. vagrant destroy 后起来的虚拟机都是新的,之前安装的软件数据会没掉;vagrant halt后起来的虚拟机还保存安装软件,占用硬盘,在VirtualBox的可视界面还可以看到它;
    vagrant suspend 挂起,保存所有状态,就是虚拟机的保存状态
  2. vagrant up 时碰到个提示DL is deprecated, please use Fiddle 可能是ruby的问题.vagrant最新版无此提示
  3. 建立自己的box,简便方法:从官方链接弄的precise32.box或precise64.box,运行,安装所需要的软件后,使用
    vagrant halt退出,此时打开VirtualBox界面可以看到有一个对应随机名字的虚拟机存在,比如vagrant_default_1393478037601_64875
    此时直接可以用 vagrant package --base vagrant_default_1393478037601_64875 来新建得到一个新的box
    package.box注意,执行package时必须把VirtualBox先关掉!否则会出错
  4. 自创建box时,安装VirtualBox的Guest Additions 用sudo mount /dev/cdrom /mnt来挂载
  5. VirtualBox共享文件夹 在guest里 sudo mount -t vboxsf sharename mount路径; VirtualBox4.0之后会自动挂载到/media/sf-共享文件夹名