前两片文章分享了homestead + vagrant 配置,但都是单点的,现在我们一起研究研究多节点集群的配置。
多节点集群配置/创建
安装VirtualBox
安装Vagrant
下载Box
这些前面文章都有讲解,也有下载链接,就不在重复,可以查看:这里写链接内容
修改vagrantfile
1. 原vagrantfile 为:
Vagrant.configure("2") do |config|
## 中间注释忽略
end
2. 修改添加代码如下:
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://atlas.hashicorp.com/search.
# config.vm.box = "base"
(1..3).each do |i|
config.vm.define "node#{i}" do |node|
# 设置虚拟机的Box
node.vm.box = "laravel/homestead"
# 设置虚拟机的主机名
node.vm.hostname="node#{i}"
# 设置虚拟机的IP
node.vm.network "private_network", ip: "192.168.10.1#{i}"
# 设置主机与虚拟机的共享目录
node.vm.synced_folder "F:/workSpace/quickstart1", "/home/vagrant/share"
# VirtaulBox相关配置
node.vm.provider "virtualbox" do |v|
# 设置虚拟机的名称
v.name = "node#{i}"
# 设置虚拟机的内存大小
v.memory = 2048
# 设置虚拟机的CPU个数
v.cpus = 1
end
# 使用shell脚本进行软件安装和配置
# node.vm.provision "shell", inline: <<-SHELL
# # 安装docker 1.11.0
# wget -qO- https://get.docker.com/ | sed 's/docker-engine/docker-engine=1.11.0-0~trusty/' | sh
# usermod -aG docker vagrant
# SHELL
end
end
与创建单个虚拟机相比,创建多个虚拟机时多了一层循环,而变量i可以用于设置节点的名称与IP,使用#{i}取值:
(1..3).each do |i|
end
通过之前文章的讲解,应该知道怎么对应共享文件吧,代码中的:
# 设置主机与虚拟机的共享目录
node.vm.synced_folder "F:/workSpace/quickstart1", "/home/vagrant/share"
创建虚拟机
vagrant up
该命令将循环创建3个分别为:node1, node2,node3 三个虚拟机。如图:
而 vagrant up 会创建并启动你循环的所有虚拟机。
集群管理
常用命令
下面是一些常用的Vagrant管理命令,操作特定虚拟机时仅需指定虚拟机的名称。
命令 | 解释 |
---|---|
up | 启动homestead |
halt | 停止homestead |
init | 创建初始化的homestead.yaml |
edit | 编辑homestead.yaml |
suspend | 挂起homestead |
resume | 继续挂起的homestead |
ssh | 通过ssh登录homestead |
run | 通过ssh在homestead上运行命令 |
status | 获取homestead的状态 |
list | 列表命令 |
help | 显示命令的帮助 |
provision | 重新配置homestead |
destroy | 销毁homestead |
update | 更新homestead镜像 |
启动单个虚拟机
vagrant up node1
启动多个虚拟机
vagrant up node1 node2
启动所有虚拟机
vagrant up
其他登录虚拟机之类的,前面的文章都有介绍。