手中有刀,心里有佛

虚拟环境准备 (Virtual Environment Preparation)


本文以 VirtualBox 和 Ubuntu Server 为例,介绍在 macOS 下搭建 3 台虚拟机集群过程。

安装 VirtualBox

官网下载最新版本的 VirtualBox 和 VirtualBox Extension Pack,本文以 6.1.22 版本为例。根据安装向导安装 VirtualBox。

双击下载好的 .vbox-extpack 安装文件安装 VirtualBox Extension Pack。

通过 File -> Host Network Manager... 为 VirtualBox 添加一块网卡。

安装 Ubuntu Server

虚拟机配置

官网下载最新版本的 Ubuntu Server,本文以 20.04.2 LTS 版本为例。在 VirtualBox 通过 New 按钮添加新的虚拟机,首先为虚拟机配置名称,存储路径和内存大小等基本信息:

单击 Create 后为虚拟机配置磁盘类型和大小:

单击 Create 完成创建。创建完毕后,在左侧列表中选择创建好的虚拟机,通过 Settings 按钮打开设置对话框,在 System - Motherboard 标签页去除掉软盘启动 Boot Order - Floppy,同时也可以再次调整内存大小:

System - Processor 标签页可以调整虚拟机使用 CPU 的数量:

Display - Acceleration 标签页可以调整使用的现存大小:

Network - Adapter 1 标签页选择 NAT 网络类型,该网卡用于虚拟机连接外部网络:

Network - Adapter 2 标签页选择 Host-only Adapter 网络类型,名称选择上文 VirtualBox 配置的 vboxnet0,该网卡用于虚拟机连接内部网络:

Network - Adapter 2 标签页为光驱选择挂载的磁盘镜像:

添加下载好的 Ubuntu Server ISO 磁盘镜像:

Ubuntu Server 安装配置

单击 Start 按钮启动虚拟机,启动后等待片刻,在语言选择页面选择 English

在键盘布局页面采用默认配置,Done 进入下一步:

在网络配置页面,上文中配置了两块网卡,在此我们需要对于 Host-only Adapter 网卡 enp0s8 进行配置,NAT 网卡 enp0s3 采用默认即可:

进入配置后选择手动 Nanual,在 Subnet 中输入 192.168.56.0/24(参考上文中 VirtualBox 添加的网卡设置),在 Address 中输入 192.168.56.1,在 Gateway 中输入 192.168.56.1Save 进行保存:

配置完后,结果如下,Done 进入下一步:

在镜像配置页面,根据实际情况选择一个合适的镜像地址,本文采用清华大学的镜像地址 https://mirrors.tuna.tsinghua.edu.cn/ubuntu/Done 进入下一步:

在存储配置页面,为了方便起见选择使用整个磁盘,Done 进入下一步:

确认磁盘配置信息,Done 进入下一步:

在用户信息配置页面,输入用户名和密码等信息,Done 进入下一步:

在 SSH 配置页面,选择安装 OpenSSH server,Done 进入下一步:

在软件包配置页面,跳过安装,Done 进入下一步:

安装完毕后,Reboot Now 重启虚拟机:

配置 Ubuntu Server

克隆虚拟机

重启后,输入用户名和密码即可进入系统:

通过如下命令更新系统软件到最新版本:

sudo apt update
sudo apt upgrade
sudo apt autoremove

输入以下命令进行关机:

sudo shutdown now

右键单击虚拟机 Ubuntu Server 1,选择 Clone 对虚拟机进行克隆,选择为所有网卡重新生成 MAC 地址,然后单击 Continue

选择 Full clone 模式,单击 Continue 完成克隆:

配置网络

分别进入虚拟机 2 和 3,修改固定 IP 地址为 191.168.56.102191.168.56.103

sudo vi /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    enp0s3:
      dhcp4:true
    enp0s8:
      addresses:
      - 192.168.56.101/24
      gateway4: 192.168.56.1
      nameservers:
        addresses: []
        search: []
  version: 2

将配置文件中 00-installer-config.yaml192.168.56.101 修改为对应的 IP。然后执行:

sudo netplan apply

让配置生效。

为三台虚拟机修改主机名为 vm-01vm-02vm-03

sudo hostnamectl set-hostname vm-0x

为三台虚拟机设置 IP 和主机名映射:

sudo vi /etc/hosts

在结尾添加:

# VM
192.168.56.101 vm-01
192.168.56.102 vm-02
192.168.56.103 vm-03

配置 SSH

分别进入三台虚拟机并生成密钥:

ssh-keygen -t rsa

这会在 ~/.ssh 目录生成一对密钥,其中 id_rsa 是私钥,id_rsa.pub 是公钥。

将三台机器中的 id_rsa.pub 导出合并到 ~/.ssh/authorized_keys 文件中,为了方便可以将自己电脑的 id_rsa.pub 也合并到其中实现免密登录。

登录任意每台虚拟机,通过如下命令测试是否可以免密登录:

ssh vm-01
ssh vm-02
ssh vm-03