不知道怎么搞看视频教程
虚拟机默认信息
账号:root
密码:vagrant
1、那就把vagrant和VirtualBox同时都卸载掉(可以通过电脑管家卸载,我是这样的,然后重启),这时候再在cmd里面查看,会发现网卡信息也会清除
2、接着重新安装两个软件,正常的话会发现已经可以看到VirtualBox的网卡信息了
这里要查看自己配置完ip,是不是没有通过vagrant reload
进行刷新重启
文档下通过vagrant前缀执行的相关命令,都是通过cmd进入到vagrantfile所在的目录下执行的
可以直接在VirtualBox里面进行关机、删除。 然后再去文件夹下把相关的目录删除即可,这个没关系,不影响啥。
尚硅谷视频
https://www.bilibili.com/video/BV1np4y1C7Yf?p=6
https://www.bilibili.com/video/BV1np4y1C7Yf?p=7
VirtualBox
vagrant
点击:管理-全局设定-常规,设置虚拟机存储地址
默认C盘,修改为其他地址。比如D盘,K盘
上面这一步,我是在K盘建了个目录,用户专门存储本地虚拟机文件的
因为是先下载镜像生成Vagrantfile文件,然后在vagrant同目录下生成相对于的虚拟机文件。
我为了能够后面如果有多个vagrantfile文件时,不那么乱,所以把vagrant文件单独存放
1、新建目录
2、在目录下执行vagrant init centos/7
生成一个vagrant可执行的centos7镜像的配置文件
接着执行命令,vagrant up
,启动虚拟机。
这时候会在和learn-rocket文件夹同目录生成一个虚拟机运行的文件夹,该文件夹名称和上面我们新建的名称一样
启动后,我们就可以在VirtualBox中看到这个新建的虚拟机了
在cmd执行vagrant ssh
,就可以进入虚拟机了。
在这里可以执行一系列的linux命令。
前面的步骤按部就班的操作一遍后,就可以通过VirtualBox进行虚拟机的开机,重启,关机等操作了
这里关不关机好像都可以,我就不关机了。
接着打开learn-rocket文件夹下的Vagrantfile文件,大概在35行,打开注释的内容,修改ip。
可以通过关键字进行搜索:private_network
启动虚拟机
刷新虚拟机,这里会重新启动!注意,一定要用这个命令,而不是通过VirtualBox重新启动
vagrant reload
1、在cmd通过vagrant up启动虚拟机
2、输入vagrant ssh,进入虚拟机
3、输入ip addr,查看当前虚拟机ip
1、查看当前用户
whoami
2、切换为root用户
su root
密码:vagrant
3、修改文件(把PasswordAuthentication no改为yes)
vi /etc/ssh/sshd_config
4、重启服务
改完后退出文件,执行命令,重启服务
service sshd restart
5、测试通过xshell连接虚拟机
ip:192.168.56.10
端口:22
账号:root
密码:vagrant
上面执行一遍后,再看下本地文件夹,可以发现,一个虚拟机对应了两个东西:
一个Vagrantfile文件,一个虚拟机文件夹。通过文件夹进行隔离,就算有多个虚拟机,也互不影响
两种方法:
1、通过VirtualBox复制
关机后,通过VirtualBox进行复制,这个我没用过,有想法的可以百度试下
2、把上面的步骤再执行一遍
参考教程:https://www.bilibili.com/video/BV1np4y1C7Yf?p=343
通过观看视频,不难发现,虚拟机的生成都是通过Vagrantfile文件的配置来进行生成的。
在文件中配置好,可以通过循环,一次性生成多个虚拟机。
Vagrant.configure("2") do |config|
(1..3).each do |i|
config.vm.defind "myvm-node#{i}" do |node|
# 设置虚拟机的box
node.vm.box = "centos/7"
# 设置虚拟机的主机名
node.vm.hostname="myvm-node#{i}"
# 设置虚拟机的IP
node.vm.network "private_network", ip: "192.168.56.#{99+i}", netmask: "255.255.255.0"
# 设置主机与虚拟机的共享目录
# node.vm.synced_folder "~/DOcuments/vagrant/share", "/home/vagrant/share"
# VirtualBox相关配置
node.vm.provider "virtualbox" do |v|
# 设置虚拟机的名称
v.name = "myvm-node#{i}"
# 设置虚拟机的内存大小
v.memory = 4096
# 设置虚拟机的cpu个数
v.cpus = 4
end
end
end
end
以前按视频做的时候是成功的,但是这次不知道是不是因为vagrant和virtualbox装的最新版本的原因,失败了。错误信息如下:
配置内容来源于:https://blog.csdn.net/llb_3601478/article/details/117483860
这个是成功了
boxes = [
{
:name => "myvm-node1",
:eth1 => "192.168.56.11",
:mem => "2048",
:cpu => "2",
:sshport => 22230
},
{
:name => "myvm-node2",
:eth1 => "192.168.56.12",
:mem => "2048",
:cpu => "2",
:sshport => 22231
},
{
:name => "myvm-node3",
:eth1 => "192.168.56.13",
:mem => "2048",
:cpu => "2",
:sshport => 22232
}
]
Vagrant.configure(2) do |config|
config.vm.box = "centos/7"
Encoding.default_external = 'UTF-8'
boxes.each do |opts|
config.vm.define opts[:name] do |config|
config.vm.hostname = opts[:name]
config.vm.network "private_network", ip: opts[:eth1]
config.vm.network "forwarded_port", guest: 22, host: 2222, id: "ssh", disabled: "true"
config.vm.network "forwarded_port", guest: 22, host: opts[:sshport]
#config.ssh.username = "root"
#config.ssh.password = "root"
#config.ssh.port=opts[:sshport]
#config.ssh.insert_key = false
#config.vm.synced_folder ".", "/vagrant", type: "rsync"
config.vm.provider "vmware_fusion" do |v|
v.vmx["memsize"] = opts[:mem]
v.vmx["numvcpus"] = opts[:cpu]
end
config.vm.provider "virtualbox" do |v|
v.memory = opts[:mem];
v.cpus = opts[:cpu];
v.name = opts[:name];
end
end
end
end
成功!
接下来是允许通过ip进行远程密码连接
去vagrant文件目录下,打开cmd,进行远程连接
然后分别执行这一步操作:开启密码登录