vagrant

Vagrant

说明

Vagrant 是一款用来构建虚拟开发环境的工具,它利用了一个声明性配置文件,该文件描述了您的所有软件需求,软件包,操作系统配置,用户等。

安装

起步

设置虚拟机默认存放位置. 管理-全局设定-常规-默认虚拟电脑位置
建议win10 PowerShell操作 win10自带SSH服务

# 选定一个目录进入
cd E:/vbox/centos
# 添加一个box
vagrant box add centos7 centos7.2.box
# 查看当前box列表
vagrant box list
# 初始化vagrant环境配置 此命令执行后当前目录将会生成一个Vagrantfile配置文件
# 命令: vagrant init [name [url]]
# 如果给出第一个参数,它将config.vm.box 在创建的Vagrantfile中预填充设置。
# 如果提供第二个参数,它将config.vm.box_url 在创建的Vagrantfile中预填充设置。
# 不要自己创建这个文件 否则总是导入默认box
vagrant init centos7

Vagrantfile配置

配置项文档 https://docs.vagrantup.com 一些常规的配置如下

Vagrant.configure("2") do |config|
  # 使用的box名称
  # 如果使用vagrant init命令时给出第一个参数,将自动赋值  
  config.vm.box = "centos7"

  # 配置端口转发 宿主机的80端口将映射到虚拟机的8080端口
  config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"

  # 配置一个私有静态IP
  # auto_config 自动配置 如果不设置打包后box可能有问题
  config.vm.network "private_network", ip: "192.168.33.10", auto_config: true

  # 配置共享文件夹 前提一定要配置私有静态IP
  # 用户应确保静态IP不会与同一网络上的任何其他计算机冲突
  config.vm.synced_folder "E:/workspace", "/home/www"

  # 配置虚拟机硬件参数
  config.vm.provider "virtualbox" do |vb|
  #   # 启动时是否显示GUI界面
  #   vb.gui = true
      # 虚拟机名称  
      vb.name = "cenots77"
      # cpu数
      vb.cpus = 2
  #   # 内存大小
      vb.memory = "2048"
  end
  #
  # 启用脚本 例如使用shell脚本安装一些软件
  # config.vm.provision "shell", inline: <<-SHELL
  #   apt-get update
  #   apt-get install -y apache2
  # SHELL
end
同步文件夹问题
  • VirtualBox版本过低 可能导致挂载不上
  • 缺少增强工具 可能导致挂载不上
sudo apt-get install virtualbox-guest-utils #安装增强工具
vagrant reload #重启

启动

# 启动Vagrant环境
vagrant up
# 进入虚拟机
vagrant ssh
# 切换超级管理员 默认密码是vagrant
su
# 退出 CTRL+D

# 重启
vagrant reload
# 挂起 类似睡眠
vagrant suspend
# 暂停 类似关机 + 保留硬盘数据
vagrant halt
# 销毁 关机 + 删除硬盘数据
vagrant destroy
# 查看虚拟机状态
vagrant status

打包

打包前建议关掉Vagrantfile中关于网络配置的部分或者启用自动配置,否则连不上网络

vagrant package [name|id]
可选项
# 虚拟机名字
--base NAME
# 文件名字 默认叫package.box
--output NAME
# 其他文件一起打包 比如Vagrantfile中引用的脚本文件
--include x,y,z
# Packages a Vagrantfile with the box, that is loaded as part of the Vagrantfile load order when the resulting box is used.
--vagrantfile FILE

注意没网情况

Vagrant执行“vagrant box add“报“An error occurred while downloading the remote file”错误
注意使用绝对路径
删除curl
image

image

posted @   Ranger-dev  阅读(212)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示