oracle vm virtualbox 虚拟光盘_虚拟机管理神器Vagrant完整操作手册来了

30b341fc8739c5881bbd30bc2755d92c.png
一个只用markdown语法编写文章的90后野路子Web架构师,每天都分享一些有用的知识点,欢迎关注~

前言

1. 概述

本文主要整理了一些Vagrant常用操作。包括安装Vagrant、常用插件、Box操作、项目配置、虚拟机操作等。

2. 脑图

5bf8edafd0aa1b7f1dbe8abddb15eded.png

3. 安装软件

第一步. 安装VirtualBox虚拟机软件

第二步. 安装Vagrant软件

4. 安装常用插件

安装vagrant-vbguest插件,作用:自动安装VirtualBox Guest Additions到虚拟机Guest操作系统上

vagrant plugin install vagrant-vbguest

安装vagrant-hostmanager插件,作用:主机名管理插件,即/etc/hosts文件管理

vagrant plugin install vagrant-hostmanager

宿主机为Windows时安装vagrant-winnfsd插件,作用:允许Windows上使用NFS协议共享目录,加快目录访问速度

vagrant plugin install vagrant-winnfsd

5. Box(类似于系统镜像)操作

搜索基础Box

搜索地址: 地址见上面脑图中

添加Box到系统

vagrant box add Box名 --name=添加到系统中的名称#示例vagrant box add ubuntu/trusty64 --name=codebays/ubuntu

列出已添加的Box列表

vagrant box list

更新Box

vagrant box update --box Box名#示例vagrant box update --box=codebays/ubuntu

删除Box

vagrant box remove Box名# 示例vagrant box remove codebays/ubuntu

6. 项目

初始化项目

vagrant init [-m] [BOX名]# 注: -m 表示生成的Vagrantfile最小化,不带任何注释# 示例 vagrant init codebays/ubuntu

校验Vagrantfile文件语法是否正确

vagrant validate

7. Vagrant配置文件

文件名

Vagrantfile

语法

Ruby语言语法

支持的版本号:1和2

Vagrant.configure("2") do |config| # 配置项...end

配置Vagrant软件行为,如使用的插件等

# 使用插件,若未安装则自动安装config.vagrant.plugins = ["vagrant-vbguest"]# 不允许输出到标准输出的敏感字符config.vagrant.sensitive = ["password"]

配置SSH到Guest系统到选型

# SSH上代理转发config.ssh.forward_agent = true# 执行shellconfig.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"

配置使用的Box信息

# 使用的Box名config.vm.box = "huangyandong/centos_7"# Box下载地址与版本号config.vm.box_url = nilconfig.vm.box_version = nil# 虚拟机启动时是否检测更新Boxconfig.vm.box_check_update = false

配置虚拟机参数

# 指定VirtualBox虚拟机配置config.vm.provider "virtualbox" do |vb| # 虚拟机名称 vb.name = "codebays" # 配置内存、CPU、快照目录等 vb.customize ["modifyvm", :id, "--memory", "1024"] vb.customize ["modifyvm", :id, "--cpus", "1"] vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] vb.customize ["modifyvm", :id, "--snapshotfolder", "/backup"]end

配置网络

# 网络总共3种配置: # 1). 端口映射 # 2). 私网IP(只允许本机访问) # 3). 公网IP(局域网种其他机器可以访问)# 端口映射,将虚拟机中80端口映射为宿主机8080config.vm.network :forwarded_port, guest: 80, host: 8080# 私网IPconfig.vm.network :private_network, ip:"10.10.10.111"

配置共享目录

# Vagrant默认将当前目录映射为虚拟机中/vagrant目录# 禁止默认映射config.vm.synced_folder ".", "/vagrant", disabled: true# 将当前目录中src目录映射为虚拟机中/srv/website目录config.vm.synced_folder "src/", "/srv/website"

上传宿主机文件到虚拟机中

# 上传文件到虚拟机config.vm.provision "file", source: "./test",  destination: "/test"

虚拟机启动时执行shell脚本命令

# 直接执行命令config.vm.provision "shell", inline: "echo Hello, World"# 上传shell脚本执行config.vm.provision :shell do |shell| shell.path = "./test.sh" shell.args = ["arg1", "arg2"]end

最终配置文件

2e8e67b3ced6403a56dd9b06fb21f58b.png

8. 虚拟机操作(注:需要在Vagrantfile文件所在目录下执行)

启动

vagrant up

关闭

vagrant halt

重启

vagrant reload

挂起

vagrant suspend

恢复

vagrant resume

查看状态

vagrant status

查看端口映射信息

vagrant port

SSH登录到虚拟机

vagrant ssh

打包虚拟机环境成Box

vagrant package --output=/tmp/myvm.box

销毁虚拟机

vagrant destroy

==END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值