安装方法: 1、安装
vagrant
2、再安装virtualbox
具体不写了,太繁琐。 https://developer.hashicorp.com/vagrant/install?product_intent=vagrant https://www.virtualbox.org/wiki/Downloads
你可能好奇,不是安装了virtualbox
虚拟机吗,干嘛还去安装什么vagrant
因为使用vagrant
安装虚拟机实在是太方便了,那为什么要再安装virtualbox
,因为virtualbox
只作为后端,可以不用打开。两者缺一不可
设置环境变量(可选)
VAGRANT_HOME
.vagrant.d 默认目录VAGRANT_DEFAULT_PROVIDER
#使用哪种虚拟机 默认virtualbox
路径设置(可选)
virtualbox
的全局设定:Linux虚拟机安装位置.vagrant.d
路径 :环境变量里设置 默认~/.vagrant.
Vagrantfile
配置文件路径
教程开始
1、初始化 Vagrantfile 配置
在当前目录下打开终端,输入以下命令初始化:
vagrant init
会在当前目录生成一个Vagrantfile文件
2、修改配置:
清空Vagrantfile
里面的内容,把以下内容添加到 Vagrantfile
文件
Vagrant.configure("2") do |config|
config.vm.box = "generic/ubuntu2204"
# 规格配置
config.vm.provider :virtualbox do |vbox|
vbox.name = "ubuntu-1"
vbox.cpus = 1
vbox.memory = 1024
vbox.customize ['modifyvm', :id, '--graphicscontroller', 'vmsvga']
end
# 修改hostname,更新/etc/hosts
config.vm.hostname = "ubuntu-1"
# 公有网络 设置静态ip
config.vm.network "public_network", ip: "192.168.1.99"
end
3、添加镜像box
box可以理解为打包好的虚拟机镜像,就像安装windows虚拟机一样,
官方镜像下载地址:https://app.vagrantup.com/boxes/search
提供一个国内下载地址:https://www.123pan.com/s/cjqrVv-Wm69d.html
下载好之后,假如你放在D:\box
目录,使用以下命令添加,
vagrant box add generic/ubuntu2204 D:\box\ubuntu2204.box
注意:generic/ubuntu2204
对应 Vagrantfile 文件里的 config.vm.box = "generic/ubuntu2204"
也就是说,要先添加镜像,这个镜像名称是:generic/ubuntu2204
如果你在官网下载其他的镜像,下载到本地后可能不是.box
后缀,修改改成.box
注意看上面图片的 ubuntu/trusty64
就是镜像名称,添加的时候使用命令改成:
vagrant box add ubuntu/trusty64 D:\box\trusty64.box
Vagrantfile 也要改成 config.vm.box = "ubuntu/trusty64"
4、创建虚拟机
vagrant up
5、登录虚拟机
vagrant ssh
6、批量创建虚拟机
配置文件如下:
vm_list = [
{ # hash map
"name" => "node-1",
"cpu" => "2",
"mem" => "2048",
"ip_addr" => "192.168.1.10"
},
{
"name" => "node-2",
"cpu" => "1",
"mem" => "1024",
"ip_addr" => "192.168.1.11"
},
{
"name" => "node-3",
"cpu" => "1",
"mem" => "1024",
"ip_addr" => "192.168.1.12"
}
]
Vagrant.configure(2) do |config|
config.vm.box = "generic/ubuntu2204"
vm_list.each do |item|
config.vm.define item["name"] do |node|
node.vm.provider "virtualbox" do |vbox|
vbox.name = item["name"]; # 虚拟机名称
vbox.memory = item["mem"]; # 内存
vbox.cpus = item["cpu"]; # CPU
end
# 设置hostanme
node.vm.hostname = item["name"]
# 设置IP
node.vm.network "public_network", ip: item["ip_addr"]
end
end
end
命令后面加虚拟机的名字,可以单独操作虚拟机:
vagrant up node-1
vagrant halt node-1
vagrant reload node-1
vagrant destroy node-1
vagrant provision node-1
SSH的私钥也分别存放在.vagrant虚拟机名对应的目录下
ssh vagrant@192.168.1.10 -i .vagrant/machines/虚拟机名称/virtualbox/private_key
常用命令
重启:
vagrant reload --provision #--provision修改配置后
查看box:
vagrant box list
连接虚拟机
vagrant ssh
常用命令
vagrant reload #重新配置虚拟机
vagrant halt #关闭虚拟机
vagrant destroy #删除虚拟机
vagrant suspend #休眠
vagrant resume #唤醒
vagrant box remove #移除box
查看IP:
ip addr show ens33 #ens33是接口名称,使用 ip addr 查看
查看默认路由:
ip route show