想了解多主机是如何定义和使用的, 所以又学习了一遍vagrant
1. vagrant virtualbox 下载安装
https://www.vagrantup.com/downloads.html
https://www.virtualbox.org/wiki/Downloads
查看安装在命令行输入vagrant
2. 添加box
把box理解为系统的镜像文件,或者是虚拟机本身
cd ~/test
vagrant box list //查看box列表
找到想要的box
https://atlas.hashicorp.com/boxes/search?utm_source=vagrantcloud.com&vagrantcloud=1
64位的很容易找到, 如果要找32位的, 这样搜索 centos 6.5 32
复制一下名字, chef/centos-6.5
在命令行安装, vagrant box add chef/centos-6.5
大小有几百M到几个G不一定, 如果觉得网速慢可以用下载工具下载下来, 然后进行vagrant box add 来安装, 本地安装需要使用--name参数
vagrant box add ~/Downloads/virtualbox.box --name sentos6.5
vagranb box list //现在就可以看到一个已经安装的box
3.初始化, 启动, 连接
cd ~/desktop
mkdir maxwelldu
cd maxwelldu
vagrant box list
vagrant init centos6.5 初始化
ls
vagrant up 启动
导入之前的box, 之前的box只会用到这一次, 以后box的修改只会影响当前的box
看到最后一行是共享目录的对应关系
vagrant ssh 连接, 默认会用vagrant用户来连接到box
windows用户下载putty, 然后连接127.0.0.1 端口为2222 用户 vagrant 密码也是 vagrant
4.启动, 停止, 重启, 销毁
vagrant status 查看状态
vagrant halt 停止
vagrant status
vagrant ssh
sudo yum install httpd
sudo service httpd status
sudo service httpd start
exit
vagrant suspend 将正在运行的内存存到硬盘上, 下次启动的时候再恢复到上次的状态
vagrant status
vagrant resume 或者 vagrant up 来恢复
vagrant ssh
sudo service httpd status 查看状态, 发现还是启动着的
exit
vagrant reload 重启, 先关机, 再启动
vagrant destory 不会删除之前添加的box, 只会删除当前的box, 如果希望完全删除某个已经初始化的vagrant
5.共享的目录
vagrant init
vagrant up
vagrant ssh
cd /vagrant
在本地打开编辑器brackets, 打开目录 ~/Desktop/maxwelldu
在里面建立一个www目录, 再www里面新建一个index.html
写点内容
再回到vagrant
ls
ls www
cat www/index.html
6.配置共享目录
打开Vagrantfile, 这个文件是用ruby语言写的
找到synced_folder , 把前面的#去掉就打开了
config.vm.synced_folder "../data", "/vagrant_data"
"../data" 表示当前物理机上的当前目录上一级的data目录, "/vagrant_data" 表示虚拟机上面的目录
config.vm.synced_folder "../data", "/vagrant_data", create:true, owner:"root", group:"root"
在后面添加一个create选项, 设置为true,默认只是flase.如果值为true,vagrant up的时候会帮你再主机里面创建这个要同步的目录, 后面表示将虚拟机上面目录的拥有者为root, 组也为root
vagrant_data的拥有者和组都是root
exit
vagrant reload
重启完了发现除了之前同步的目录之外, /vagrant_data也是一个同步的目录
vagrant ssh
cd /
ls -la 发现vagrant的用户和群组是vagrant, 下面有一个vagrant_data, 他的用户和群组都是root
7.网络配置
私有网络 private_network 为虚拟机手工的指定一个ip地址, 只能在自己机器上访问
公有网络 public_network 可以配置为在同一个网络的设备可以访问, 比如你的电脑是在一台路由器配置好的网络里面, 在这台网络里面的其他设备也可以访问到你的虚拟机
端口转发 比如本地端口8080, 配置转发到虚拟机上的80端口, 这种不是很灵活, 使用较少
8.私有网络
打开Vagrantfile
修改config.vm.network "private_network"
比如配置为: config.vm.network "private_network", ip: "192.168.33.22"
exit;
vagrant reload
ping 192.168.33.22
ctrl+c 停止, 没有出现timeout就说明能够ping通
vagrant ssh
ifconfig
查看eth1 的网络地址就是我们手工设置的网络地址
9.公有网络
同一个网络的设备也可以访问的话, 打开Vagrantfile的文件, 把私有网络的配置注释起来, 打开public_network
exit;
vagrant reload
如果是使用的wifi连接, 请选择1
vagrant ssh
ifconfig 查看eth1, 这个是在内网的ip地址, 复制这个ip地址, 打开新的命令窗口, 用ping检查一下, 可以在同一个网络的其他设备上面也ping一下, 应该也可以通信
ping 192.168.31.112
10.搭建一个Web服务器
sudo yum -y install httpd
sudo yum -y install vim
sudo vim /etc/httpd/conf/httpd.conf
G
i
打开以下行并修改内容如下
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /vagrant/www
</VirtualHost>
:wq
cat /vagrant/www/index.html
sudo service httpd start
ifconfig 查看一下ip地址
现在就可以在本地开发项目, 然后通过在虚拟机上配置好的环境来运行项目
192.168.31.112 在物理机访问, 发现访问不了, 报错信息, httpd: apr_sockaddr_info_get() failed for MiWiFi-R1D
解决问题地址: http://www.metsky.com/archives/25.html
后面换成私有网络之后不能启动, 建议可以不要尝试公有网络
vagrant destroy 删除
rm Vagrantfile
vagrant init
vim Vagrantfile 打开私有网络
vagrant up
vagrant ssh
...
11.打包
vagrant ssh
sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules //打包前的准备
exit
vagrant package
vagrant box add 打包好的box目录
vagrant box list
vagrant init 新添加的box名称
后面可以将这个box传给其他队友使用
12.多主机
在本地配置多台服务器, 可能多台web服务器, 数据库服务器, 每台服务器都可以有独立的配置, ip地址,
多主机就是解决怎么样将本地开发的网站与正常的服务器环境同步
13.定义多主机
cd ~/Desktop/maxwelldu/projects
mkdir workflow-project
cd workflow-project
vagrant box list
vagrant init sentos6.5
open .
编辑Vagrantfile
在config.vm.box 下面定义两台主机
config.vm.define "development" do |development|
end
config.vm.define "production" do |production|
end
这样就定义好了两台主机
vagrant status
看到两台是没有创建
vagrant up 默认会启动所有的主机, 如果只想启动某一台, 后面跟上名字就行
vagrant ssh development 连接到development机器, 现在两台机器都启动了, 不过还不能互相通信
control+t
vagrant ssh production
14. 多主机的网络设置
如果多台主机是同样的配置则可以写在定义的主机之外, 在config.vm.box = "sentos6.5" 下面写
前面介绍了公有网络和私有网络, 私有网络的好处是不需要组织一个局域网
我们现在单独给两台主机配置一下私有网络
配置如下
config.vm.define "development" do |development|
development.vm.network "private_network", ip:"192.168.33.11"
end
config.vm.define "production" do |production|
production.vm.network "private_network", ip:"192.168.33.22"
end
exit
vagrant reload 不指定会重启Vagrantfile下定义的所有的主机
vagrant ssh
ifconfig
在11的主机上面ping 22
在22的主机上面ping 11 检查是否能够正常通信
15.多主机的主机名
Hostname 是一个用来设置或显示当前主机,域或者系统的节点名的程序.许多联网程序使用这些名字来标识机器.NIS/YP同样也使用域名.
现在两台主机的主机名都是localhost
vagrant ssh development
hostname 查看主机名
vim /etc/sysconfig/network 下面去修改, 或者在Vagrantfile里面去配置, 当启动以后,vagrant会自动的设置主机名
配置如下:
config.vm.define "development" do |development|
development.vm.network "private_network", ip:"192.168.33.11"
development.vm.hostname = "maxwelldu-dev"
end
config.vm.define "production" do |production|
production.vm.network "private_network", ip:"192.168.33.22"
production.vm.hostname = "maxwelldu-prod"
end
vagrant reload
vagrant ssh development
hostname 查看发现是我们配置的
vagrant ssh production
hostname
cat /etc/sysconfig/network 可以看到HOSTNAME后面的值就是主机名, 可以直接修改这个值, 修改完了 service network restart就可以生效
16.多主机的共享目录
现在这两台主机都会有共同的同步目录, 也就是默认的都会使用项目的目录, 现在可以单独为第一台主机配置一个目录
mkdir development
mkdir production
设置同步的目录
vim Vagrantfile
配置如下:
config.vm.define "development" do |development|
development.vm.network "private_network", ip:"192.168.33.30"
development.vm.hostname = "maxwelldu-dev"
development.vm.synced_folder "development", "/vagrant", create:true
end
config.vm.define "production" do |production|
production.vm.network "private_network", ip:"192.168.33.31"
production.vm.hostname = "maxwelldu-prod"
production.vm.synced_folder "production", "/vagrant", create:true
end
学习和参考地址:
http://ninghao.net/video/1570
http://ju.outofmemory.cn/entry/101490
http://my.oschina.net/jingxing05/blog/158267
http://segmentfault.com/a/1190000000264347
http://www.douban.com/note/322249262/
http://segmentfault.com/a/1190000002645737
相关推荐
【标题】"vagrant-spark-zeppelin" 提供了一个集成环境,用于学习和探索Apache Spark和Apache Zeppelin。这个项目利用Vagrant技术创建了一个虚拟机(VM),在这个虚拟环境中预装了Apache Spark和Apache Zeppelin,...
#### 一、Virtualbox/Vagrant安装 在搭建ELK环境时,使用虚拟化工具如Virtualbox与Vagrant可以极大地方便我们进行环境配置与管理。 **1.1 Virtualbox安装** - **安装步骤**: - 在宿主机上下载并安装Virtualbox...
【标题】"NoteBook:自己的学习笔记"揭示了这是一份个人的学习资料,主要涵盖了Laravel 5框架和服务器管理方面的知识。这份笔记可能包含了作者在学习和实践过程中的心得、代码示例以及解决问题的策略。 【描述】"#...
用于机器学习/数据科学任务的64位虚拟机。 由Vagrant生成并置备。 该实例基于spark-base64 VM(在Ubuntu 18.04上已经提供了所有必需的软件包)。 最重要的是,它配置并启动Jupyter Notebook进程,并作为HTTP服务...
描述在虚拟盒子中创建一个kubernetes集群我们使用打包程序来创建基本盒子(请参阅 )然后我们将使用vagrant创建VM,下一步是可以配置它们。设计决策/假设单机控制(想在主机上说没有冗余的好方法吗?)遵循 在开发/...
Kubernetes认证管理员(CKA) 截至2018年4月24日在ubuntu 16上发布,提示文件显示为1.11.1 带有链接的考试的一些信息: 学习期间我将在哪里复制笔记: 问题: 我将场景放置在何处,您可以将此回购用于: 脚步kubectl...
运行示例启动容器: vagrant up启动 IPython 笔记本服务器: nn是以下各项的别名: ipython notebook --ip=0.0.0.0 --no-browser --notebook-dir=/caffe/examples导航到 : 打开笔记本。 遍历它以使用预训练模型执行...
这是一些学习笔记可能是任何知识,这里我把笔记做了归类 ,全文使用 markdowwn 语法编辑,使用软件 vs code。 Nodejs Git VS Code Markdown gradle zabbix tomcat eclipse idea redis RabbitMQ emq json-server uml ...
“学者背包”将一个常用的科学计算工具的采样器整合到一个虚拟机中,既减少了查找,安装和学习如何使用新工具的开销,又提高了科学计算环境的可重复性。 入门 安装和 。 需要Vagrant 2.0或更高版本。 Windows用户...
在本讲习班中,你将学习如何使用Vagrant来创建和管理虚拟机,Vagrantfile将用于定义虚拟环境的配置。Vagrant是一个流行的开发环境工具,它允许你在本地创建一致的开发环境,而无需担心底层基础设施的差异。 讲习班...
作者建议在学习过程中注册一个github账号,并建立一个代码仓库记录学习笔记。 总之,Yii 2.0开发文档生成的pdf草稿本是一份针对使用Yii 2.0框架进行Web开发的初级开发者入门指南。它不仅介绍了开发流程,还涉及到...
因此,我大致在以下位置关注Kelsey Hightowers文档: : 并使其变成可以通过Vagrant和Ansible进行部署的东西。按照步骤。目前仅支持VirtualBox(vb)。先决条件你需要: python3流浪汉VirtualBox(目前仅支持后端)...
笔记 只是一些笔记。 继续课程: AWS认证解决方案架构师助理 AWS认证解决方案架构师助理 DNS服务器 Pluralsight Linux管理DNS服务器LPIC 2 语言 学习途径:基础知识 书号:9781491941874 推迟课程: 火腿牌照...
机器学习导论 该存储库中的代码受和启发。 安装注意事项 本教程使用以下软件包: Python版本2.7.6 numpy版本1.9.2 scipy版本0.15.1 matplotlib版本1.4.3 scikit-learn版本0.16.0 ipython版本4.0.0,具有笔记本...
Skadi的核心理念是教学,通过Packer、Vagrant和脚本编写等技术,使用户能够制作、使用和管理容器,并且有详尽的文档和许多Wiki页面供学习。 Skadi的主要功能包括: 1. **数据收集**:CyLR是一个跨平台工具,可以从...
5. **模拟器或虚拟机**:为了能够在没有实际RISC-V硬件的情况下进行开发和测试,课程可能提供QEMU这样的模拟器或者Vagrant虚拟机配置文件,让学生在软件环境中运行和调试操作系统。 6. **测试程序**:一系列的测试...
学习和熟练运用这些快捷键可以帮助开发者更快地完成任务,如快速打开文件、查找替换文本、重构代码等。 #### 七、将PyCharm作为Vim编辑器使用 对于习惯使用Vim的开发者来说,PyCharm也提供了模拟Vim模式的功能。...
8. **讨论记录**:团队内部关于解题思路、方法的讨论记录,可能以邮件、聊天记录或笔记的形式存在。 为了充分利用这个资源,团队成员应该: - 分析题目描述,理解每个挑战的目标。 - 针对挑战数据进行逆向工程、...
打开edX Studio 讨论区电子商务证书笔记课程发现打开edX搜索Open edX示范课程发布者和成绩簿微前端它还包括以下额外组件: X队列学习微前端(又称为新的课件体验) 程序控制台微前端图书馆创作微前端edX注册服务。...