Vagrant笔记:Vagrant集群

本文讲述在 Windows 系统利用 Vagrantt 搭建多台虚拟机。

一、导入镜像包

先导入镜像(或下载镜像)。镜像名称为 ubuntu1604。命令:

1
vagrant box add ubuntu1604 xenial-server-cloudimg-amd64-vagrant.box

也可以直接使用官方提供的镜像名称,无须先下载。

二、配置文件

新建目录ubuntu_k3s,创建Vagrantfile文件,内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Vagrant.configure("2") do |config|
(1..3).each do |i|
config.vm.define "node#{i}" do |node|
# 设置虚拟机的Box
node.vm.box = "ubuntu1604"

# 设置虚拟机的主机名
node.vm.hostname="node#{i}"

# 设置虚拟机的IP
node.vm.network "private_network", ip: "192.168.56.#{10+i}"

# 设置主机与虚拟机的共享目录
# node.vm.synced_folder "~/Documents/vagrant/share", "/home/vagrant/share"

# VirtaulBox相关配置
node.vm.provider "virtualbox" do |v|
# 设置虚拟机的名称
v.name = "node#{i}"
# 设置虚拟机的内存大小
v.memory = 1024
# 设置虚拟机的CPU个数
v.cpus = 1
end
end
end
end

启动 vagrant up

登陆指定虚拟机vagrant ssh node1

注:node1为主。

三、免密登陆

3.1 配置hosts

每台机器上都做如下配置:

1
sudo vim /etc/hosts

增加如下内容:

1
2
3
192.168.56.11 node1
192.168.56.12 node2
192.168.56.13 node3

3.2 生成秘钥

1
ssh-keygen -t rsa

默认的路径在/home/vagrant/.ssh/
查看公钥(仅主机):

1
cat /home/vagrant/.ssh/id_rsa.pub

为了让节点机器访问主机器,将节点机器的公钥复制到主机器即可实现免密登陆。反之亦然。

3.3 修改ssh

1
sudo vim /etc/ssh/sshd_config

修改:

1
2
3
PermitEmptyPasswords yes       // 允许空密码  // 实际测试不成功,还是要密码
PermitRootLogin yes // 允许root登陆
PasswordAuthentication yes // 需要密切

重启:

1
sudo systemctl restart sshd

3.4 添加root密码:

1
2
sudo -s
passwd

心得:

配置的IP,最好使用vm默认的192.168.56段。否则会出现2个IP网段,虚拟机也有2个IP,虽然都相通,但可能会有问题。