使用本地虚拟机搭建多台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主机名 来修改主机名称。 在我的实验环境中,各主机名称如下,
- 身份认证服务器 auth.027yunwei.com
- 应用服务器 apps.027yunwei.com
- 数据库服务器 db.027yunwei.com
- 客户桌面机 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"