Mac VirtualBox Vagrant 管理虚拟机
这篇文章定位是在理解了 vagrant 相关概念之后,教你如何灵活玩转自己的虚拟机配置
本文为 @favoorr 常用的 Mac VirtualBox Vagrant 管理虚拟机的通用配置向导
我的云梯 VPN 连接是 http://referyt.com/?r=9ea6f6df9967e57c
使用这个连接,你优惠 10 元,我获得 10 元
1.去官方找自己想要的镜像文件信息
https://atlas.hashicorp.com/search
例如想来个 ubuntu 16.04 64位,那么关键字就是 xenial64
找到的地址就是 https://atlas.hashicorp.com/ubuntu/boxes/xenial64
2.在本地文件系统建立对应的存放目录,本地目录按照自己意愿,任意位置
1
2
|
该目录存放所有使用 vagrant 管理的虚拟机
$ cd ~/Documents/try/vagrant/
|
3.初始化虚拟机存放目录
1
2
3
4
5
6
7
|
新建存放 ubuntu 16.04 64 位的文件位置
$ mkdir xenial64 && cd xenial64
使用 vagrant 命令初始化虚拟机
$ vagrant init ubuntu/xenial64
执行完之后,发现 xenial64 目录下多了个配置文件 Vagrantfile
|
4.修改 Vagrantfile ,配置自己的虚拟机,
其实什么都不修改,按照默认配置,这时候执行 vagrant up 的时候已经可以运行虚拟机了,这个是 hello world 的做法,实际使用中,还是要自己学会修改配置,知道每个配置项会带来的影响
有些配置是没有的,有些是有的默认是注释的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
配置主机名,进入操作系统执行 hostname 显示的名字,我用的规则是 系统版本-IP
系统是 xenial64,IP 最后一位是 155
config.vm.hostname = "xenial64-155"
vagrant box 的版本,如果不配置,会自动去下载最新版本
我用的是 daily build 的版本,这个看自己喜好,我这个本来就是尝试一些新东西玩的
config.vm.box_version = "20161209.0.0"
配置端口映射,通过访问本机的 8080 端口,访问安装后虚拟机的 8080 端口
config.vm.network "forwarded_port", guest: 8080, host: 8080
配置虚拟机的 ip,默认网卡一是 NAT 方式,不需要配置
这里创建网卡二 Host-Only,对应 VirtualBox 的 vbox0
config.vm.network "private_network", ip: "192.168.56.155"
配置共享文件夹目录,进入系统后,自动挂载 /lesson
config.vm.synced_folder "/Users/User/zl/python/lesson", "/lesson"
VirtualBox 的配置
config.vm.provider "virtualbox" do |vb|
vb.name = "xenial64-155"
# Display the VirtualBox GUI when booting the machine
vb.gui = false
# Customize the amount of memory on the VM:
vb.memory = "1024"
vb.cpus = "2"
end
|
5.在 xenial64 目录下执行命令,初始化并启动虚拟机
这里要注意,如果是第一次启动,会自动下载 vagrant box,最好挂 VPN了,不多解释,
如果没有 VPN,就手工下载包,导入后续会有文章介绍
1
|
vagrant up --provider virtualbox
|
6.在 xenial64 目录下执行命令,进入虚拟机,测试网络
1
2
3
4
5
|
进入虚拟机
vagrant ssh
测试网络,我全程 VPN,虚拟机内部访问 google 也是无压力的
ping www.google.com
|
参考 Vagrantfile 配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
大专栏 vagrant 虚拟机配置最佳实践iv class="line">28
- atitit.spring3 mvc url配置最佳实践
atitit.spring3 mvc url配置最佳实践 1. Url-pattern bp 1 2. 通用星号url pattern的问题 1 3. Other code 1 4. 参考 2 1. ...
- (转)Amazon Aurora MySQL 数据库配置最佳实践
转自:https://zhuanlan.zhihu.com/p/165047153 Amazon Aurora MySQL 数据库配置最佳实践 AWS云计算 已认证的官方帐号 1 人赞同了该文章 ...
- 如何让HTTPS站点评级达到A+? 还得看这篇HTTPS安全优化配置最佳实践指南
0x00 前言简述 SSL/TLS 简单说明 描述: 当下越来越多的网站管理员为企业站点或自己的站点进行了SSL/TLS配置, SSL/TLS 是一种简单易懂的技术,它很容易部署及运行,但要对其进行安 ...
- maven 安装与配置最佳实践
配置Maven环境变量 1.新建 maven home 环境变量 变量名:M2_HOME 变量值:D:\ProgramFiles\apache-maven-3.5.4 2 ...
- Gradle配置最佳实践
https://blog.csdn.net/devilnov/article/details/53321164 本文会不定期更新,推荐watch下项目.如果喜欢请star,如果觉得有纰漏请提交issu ...
- Java容器化参数配置最佳实践
Java是以VM为基础的,而云原生讲究的就是Native,天然的矛盾,虽然Quarkus是为GraalVM和HotSpot量身定制的K8s Native Java框架,生态原因切换成本太高,这种矛盾体 ...
- Jira字段配置最佳实践
在我们创建Jira时,Jira上会填写各式各样的字段,不同的字段对于不同的角色人员,使用方式也是不同的,通过这篇文章,希望大家能够对Jira使用有更深刻的认识. 为什么需要严格规范? 易于开发,测试, ...
- Spring.profiles多环境配置最佳实践
转自:https://www.cnblogs.com/jason0529/p/6567373.html Spring的profiles机制,是应对多环境下面的一个解决方案,比较常见的是开发和测试环境的 ...
- HTTPS安全加固配置最佳实践指南
转载自:https://www.bilibili.com/read/cv16067729?spm_id_from=333.999.0.0 0x02 HTTPS安全加固指南 描述: 当你的网站上了 HT ...
随机推荐
- semantic框架 - selection dropdown自定义样式
semantic和Bootstrap是我最常用的前端框架. 这次需求,是要修改selection dropdown. 直接贴代码,不解释. .ui.form input:not([type]):foc ...
- column命令
grep -E "car_flag|feaname" s_35926_uid_psi_table_20170407.csv | column -t -s, -o'|'
- Java中的堆、栈、方法区
堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对 ...
- js获取前n天或后n天的天数
1获取n天后的某天的日期 <!DOCTYPE html> js获取前n天或者后n天的天数 </style> <body > <h1 id="date ...
- Xshell便捷设置实现linux复制粘贴
说明:在window系统中,Ctrl+C是复制的快捷键,Ctrl+V是粘贴的快捷键,但在xshell中,Ctrl+C 代表着中断当前指令. 解决办法如下: 1. 使用xshell中的复制粘贴快捷键复 ...
- Java实现生产与消费(完美注释版)
/** * 2019年8月8日17:42:23 * 目的:Java多线程实现生产与消费 * @author 张涛 * * 多态: * 一个父类的引用既可以指向父类对象 * 也可以指向子类对象 * 它会 ...
- mediawiki资料
1.如何通过ip访问mediawiki --- http://blog.sina.com.cn/s/blog_3f2a2b8e01000awx.html 发布到外部网络,更改htfp.config里面 ...
- 21)PHP,杨辉三角
代码展示: $n=; ;$i<=$n;$i++){ ;$k<=$i;$k++){ ||$k==$i){ $arr[$i][$k]=; }else{ ){ $arr[$i][$k] = $a ...
- tap点击一次,内部程序执行两次,多次
调试过程发现,使用 $(document).on('tap', '.children2', function () { //内部程序 }) 点击children2的时候,程序在里面执行了两次.百度得到 ...
- 如何使用jQuery给asp.net的TextBox取值和赋值
解决办法: 可以在控件中先设置属性ClientInstandName的值和ID的值一样,再使用$("#ID").val("12345")
|