本篇是以開發者的視角進行,非專業運維視角,開發管理服務器集羣,也許僅僅是本身的項目,或者是在創業公司而沒有專業的運維。docker
開發管理服務器集羣,用各類工具須要付出必定的學習成本,但開發者的主要工做不在於此,因此咱們須要最簡單又比較安全的管理方法,如下是一個對開發者比較好的管理服務器方案,但願對你們有幫助vim
現有服務器 A、B、C 三臺服務器,咱們將 A 做爲部署維護服務器,鏈接 B、C 進行操做。安全
首先更改服務器名 sudo vim /etc/hostname
,以使得每一個服務器有易於你標識的名字,讓咱們操做服務器時根據提示符知道咱們如今操做哪一臺服務器。bash
查看系統網絡信息 ifconfig
,這一步是獲取服務器的 IP 地址。服務器
我使用的服務器是 Ubuntu,Ubuntu 更新 sudo apt update
,16.04 以上版本可以使用 apt
代替 apt-get
。網絡
安裝 SSH 服務 sudo apt install ssh
。運維
禁用防火牆,不由用沒法鏈接用 SSH 鏈接服務器,禁用命令 sudo ufw disable
,固然更安全的作法是隻容許特定端口可訪問,這裏爲了簡單直接禁用了防火牆。ssh
SSH 鏈接命令 ssh -p 端口號 username@xxx.xxx.xxx.xxx
,端口非必須,默認22。工具
默認 SSH 使用密碼進行鏈接,更安全的方式是使用密鑰進行鏈接,在 of 上使用 ssh-keygen
建立密鑰,會在家目錄的 .ssh 目錄中生成 id_rsa 和 id_rsa.pub 這兩個私鑰和公鑰。將公鑰上傳到 B 和 C 中,可使用 scp 命令或者 ssh-copy-id 命令。學習
踩坑:配置ssh免密碼登陸後,仍提示輸入密碼
SSH 不但願 home
目錄和 ~/.ssh
目錄對組有寫權限,進行如下修改:
chmod g-w /home/dongm2ez
chmod 700 /home/dongm2ez/.ssh
chmod 600 /home/dongm2ez/.ssh/authorized_keys複製代碼
在 B 和 C 的家目錄建立 .ssh 目錄,使用 cat path/to/id_rsa.pub >> authorized_keys
將祕鑰內容加入到認證文件中。同時給予其權限 chmod 600 authorized_keys
在 of 的 ~/.ssh/config
文件中能夠配置 ssh 鏈接信息。
Host B
HostName xxx.xxx.xxx.xxx
User 用戶名
Port 端口號
Host C
HostName xxx.xxx.xxx.xxx
User 用戶名
Port 端口號
...複製代碼
這樣就可使用 ssh hostname
進行主機鏈接了,每新加一臺管理服務器只需更新這個文件就可。
同時爲了安全應該禁用 root 用戶登陸 和 密碼登陸,使用 sudo vim /etc/ssh/sshd_config
編輯文件,進行如下修改。
RSAAuthentication yes #開啓RSA驗證
PubkeyAuthentication yes #是否使用公鑰驗證
PasswordAuthentication no #禁止使用密碼驗證登陸
PermitRootLogin no #禁止root用戶登陸複製代碼
這樣的服務器管理方法對於管理幾臺或十幾臺服務器是對開發者比較好的,簡單也安全。
對於更多的服務器管理,咱們就須要工具和自動化腳本了。
現代開發者,請學會如何使用 docker ,不單單是開發會讓你很方便,並且能使得你的開發環境和線上測試和生產環境徹底一致,只要他們是用同一個 dockerfile 文件構建的鏡像。