使用本地虚拟机搭建多台Linux服务器实验环境

本文说明了如何在自己的Windows机器上装多台Linux虚拟主机,给主机取名,并使用ssh免密码访问。

安装虚拟机

安装虚拟机软件

Windows上有多种虚拟机软件可选。最常见的是收费的VMWare Workstation和免费的VirtualBox。安装虚拟机软件和安装其他的Windows软件一样简单,下载到软件包以后,双击安装即可。

下载Linux

去Linux发行版网站下载即可。我最常用的是Ubuntu, 建议下载服务器版本和桌面版本。服务器版本比较小,也正是我们实验中经常用到的。但是还是建议再下载一个桌面版本,目的是为了使用桌面版本上的终端模拟器,方便以ssh的方式访问那些服务器版本的虚拟机。

到搜索引擎上搜索"下载 Ubuntu", 就能找到链接进行下载了。

创建虚拟机

运行前面安装的虚拟机软件,界面正中间显眼处就会有"创建虚拟机"的按钮可点击,按提示安装即可。

在我的实验环境中,我安装了三台服务器版本的Linux和一台桌面Linux。

Linux基本配置

简化sudo操作

安装虚拟机时创建的用户是具有sudo权限的。但sudo时需要输入密码,对于实验环境而言太麻烦,我们可以取消密码。 比如,我常用的用户名称是wanggan, 创建一个sudo文件,名为 sudo_wanggan, 其内容为,

wanggan ALL=(ALL:ALL) NOPASSWD: ALL

然后将该文件放到/etc/sudoers.d,

$ sudo cp sudo_wanggan /etc/sudoers.d/
$ sudo chmod 0440 /etc/sudoers.d/sudo_wanggan

修改主机名称

参考 设置Linux主机名 来修改主机名称。 在我的实验环境中,各主机名称如下,

  1. 身份认证服务器 auth.027yunwei.com
  2. 应用服务器 apps.027yunwei.com
  3. 数据库服务器 db.027yunwei.com
  4. 客户桌面机 ubuntu.027yunwei.com

在桌面机上,将各主机名称和IP地址形成列表文件,然后添加到各主机的/etc/hosts上去。

比如, 我的实验环境机器列表文件名为 lab-hosts.txt, 内容如下:

192.168.136.129  auth.027yunwei.com  auth
192.168.136.130  apps.027yunwei.com  apps
192.168.136.131  db.027yunwei.com    db

将上述文件内容加到/etc/hosts中,

$ sudo cat lab-hosts.txt >> /etc/hosts

安装ssh服务

在三台服务器上安装并启动ssh服务器,

$ sudo apt install openssh-server
$ sudo service ssh start

使用ssh时总要输入密码也是很麻烦的事情,我们可以创建ssh key来省去这些麻烦。

生成ssh key,

$ ssh-keygen -f .ssh/wanggan

上述命令会生成两个文件,私钥.ssh/wanggan, 公钥.ssh/wanggan.pub。我们可以使用该密钥访问实验环境中所有的主机。

创建配置文件.ssh/config, 并加入如下内容,

Host *
IdentityFile ~/.ssh/wanggan

把公钥添加到各主机上去该用户的.ssh/authorization文件中。

$ ssh-copy-id auth
$ ssh-copy-id apps
$ ssh-copy-id db

完善主机名称解析配置

为了方便主机名称解析,将lab-hosts.txt文件内容加到各主机中:

# copy to auth
$  scp lab-hosts.txt auth:/tmp/
$  ssh auth "sudo cat /tmp/lab-hosts.txt >>/etc/hosts"
# copy to apps
$  scp lab-hosts.txt apps:/tmp/
$  ssh apps "sudo cat /tmp/lab-hosts.txt >>/etc/hosts"
# copy to db
$  scp lab-hosts.txt db:/tmp/
$  ssh db "sudo cat /tmp/lab-hosts.txt >>/etc/hosts"