本人环境:window10+vagrant+virtual box+xshell
功能实现:简单利用vagrant+virtual box搭建虚拟机并利用xshell远程登入进去
vagrant+virtualbox的环境准备
- 下载vagrant:http://downloads.vagrantup.com/
- 下载virtualbox:https://www.virtualbox.org/wiki/Downloads
- 下载box文件:https://app.vagrantup.com/boxes/search
vagrant常用命令
vagrant -v #查看版本
vagrant box list #列出所有的box
vagrant box add ADDRES #添加一个box
vagrant init #初始化
vagrant up #启动
vagrant ssh #远程登入
vagrant halt #关闭
vagrant destory [name|id] #销毁
搭建环境
mkdir test # 创建一个文件夹
cd test #进入这个文件夹
vagrant box add name(虚拟机别名) box文件的地址 #添加box
vagrant init test #初始化
vagrant ssh-config #查看ssh配置
#配置Vagrantfile文件
vagrant up
利用xshell ssh进去
Vagrantfile文件的配置
box
设置
config.vm.box = "CentOs7"
hostname
设置
config.vm.hostname = "work"
设置hostname
非常重要,因为当我们有很多台虚拟服务器的时候,都是依靠hostname來做识别的。比如,我安装了centos7.1 centos7.2两台虚拟机,再启动时,我可以通过vagrant up centos7.1来指定只启动哪一台
- 同步目录设置
config.vm.synced_folder "/Users/helei/www", "/vagrant"
- 虚拟机网络设置
config.vm.network :"public_network"
- 多台虚拟机
config.vm.define :name do |name|
操作示例
step1:添加box文件vagrant box add name box路径
我添加了两个box文件,分别取的别名为ubuntn
和centos
你可以通过命令vagrant box list
来查看你的box
的数目
step2:初始化vagrant init
使用命令vagrant init
进行初始化,初始化之后会产生一个Vagrantfile
配置文件【重要】
step3:配置文件`Vagrantfile
下面的配置文件的意思可参考这篇博客的Vagrantfile文件的配置那部分
在这里,我定义了两个虚拟机一个名字是codecat
基于ubuntn
,另一个的名字是repo
基于centos
config.vm.define :codecat do |codecat|
config.vm.box = "ubuntn"
config.vm.hostname = "ubuntn"
config.vm.synced_folder ".", "/vagrant"
config.vm.network :"public_network"
end
config.vm.define :repo do |repo|
config.vm.box = "centos"
config.vm.hostname = "centos"
config.vm.synced_folder ".", "/vagrant"
config.vm.network :"public_network"
end
step4:虚拟机的启动vagrant up name
我启动了一个名字为codecat
的虚拟机。此时你打开VM virtualbox
管理器,你会看到你的虚拟机已经构建起来了。而且你的文件夹会出现这样一个名为machines/codecat
文件夹,而且你每建立一个虚拟机都会在machines
这个文件夹里面生成一个对应的文件夹。
step5:查看ssh配置vagrant ssh-config
红色方框为用户密钥,用于远程登入的
step6:利用xshell实现远程登入
根据上面的ssh配置,填相应的内容
- 名称:随便取
- 协议:ssh
- 主机:对应于
hostname
- 端口号:对应于
port
- 然后点击用户登入身份验证
配置用户身份验证
- 方法:
Public Key
- 点击浏览,选择上一步红色框住的那个文件
- 点击连接
输入vagrant
,点击确定
登入成功