本文以ubuntu-16.04.3-server-amd64为例,搭建服务器集群。同样是依托于虚拟机。
创建第一个节点
创建新的虚拟机参见:创建新的虚拟机,创建之后,编辑虚拟机,选择Ubuntu镜像,开启虚拟机开始安装。
具体安装参见:安装配置Ubuntu,安装的过程值得强调的两点就是:
这个版本有个bug,刚开始的时候选择语言,千万不要选择Chinese,直接默认英语就行了,不然安装到后续过程会报错。
由于选择的镜像是server版的,所以一定要把openssh-server安装上,不然后续更新源会让人比较蛋疼。(客户端无法连接到服务器,虚拟机中的ubuntu无法复制粘贴)
配置源
安装完成系统后默认带的源都是官方提供的,如果不FQ的话是无法使用的。可以自己从网上下载国内的源,比如:阿里源,使用客户端(xshell、putty都可以)更新。
- sudo vim /etc/apt/sources.list
:%d 清空官方提供源,替换成自己的
更新下apt-get
- sudo apt-get update
- sudo apt-get upgrade
克隆节点
基于节点1直接做克隆,实现3台服务器集群。这个操作比较简单,直接指定好存储目录,在被克隆的虚拟机上右键克隆,填写虚拟机名称,指定存储路径,完全克隆就行了。
更改hostname
由于都是克隆的节点,所以它们的hostname都是一样的,为了便于辨识,修改hostname:
- sudo hostname 新主机名
- sudo reboot
- sudo shutdown 命令可以安全地关闭或重启Linux系统;sudo reboot, 使用reboot命令可以快速地关闭系统,但如果还有其它用户在该系统上工作时,就会引起数据的丢失。用reboot命令的场合主要是在单用户模式
修改host映射
选择一台机器作为跳板机,通过这台机器管理其它所有服务器。 修改host:
- sudo vim /etc/hosts
- 添加其它两台服务器ip和名称的映射
- sudo /etc/init.d/networking restart 保存并重启网络
实现免密码登陆
采用ssh 用户名@ip 即可以实现服务器连接登陆,但是这需要我们输入用户名、密码,为了便于管理如下实现密钥连接。(如果A需要登陆B,则把A的公钥发给B)
- 生存密钥:ssh-keygen -t rsa
- cd ~/.ssh/ cd到该目录可以生成了私钥和公钥文件
- 把公钥发送到需要连接的服务器,如果源服务器已经有了authorized_keys文件,需要先发送到其他目录,再把密钥考到这个文件中(scp id_rsa.pub root@192.168.0.143:~/.ssh/id_rsa.pub.1)。通过cat id_rsa追加(cat ~/.ssh/id_rsa.pub.1 >>authorized_keys)。
- scp id_rsa.pub root@192.168.0.143:~/.ssh/authorized_keys
- 此时再连接,第一次需要输入yes/no
- 把.ssh/known_hosts直接删掉,该文件就是记录ssh登录的服务器信息
- 如上既可以实现免密码登陆,以后管理其它服务器直接通过这台服务器作为跳板,其他服务器完全可以禁用密码登陆:
- 禁用方式:sudo vim /etc/ssh/sshd_config 修改PasswordAuthentication no
总结
- 大多公司服务器管理采用ssh+密钥的方式,也有基于vpn的方式;不管怎么样尽可能少的把服务器地址暴露出去。只需要暴露一台地址80端口,其他服务器依托局域网即可。这样也会更安全。
- ssh管理还是很方便的,基于同样方式也可以移动端管理,把密钥导入到ipad(cola ,密钥导入到ipad,管理服务器)