開發者的簡單伺服器叢集管理

麥索發表於2017-09-10

概述

本篇是以開發者的視角進行,非專業運維視角,開發管理伺服器叢集,也許僅僅是自己的專案,或者是在創業公司而沒有專業的運維。

開發管理伺服器叢集,用各種工具需要付出一定的學習成本,但開發者的主要工作不在於此,所以我們需要最簡單又比較安全的管理方法,以下是一個對開發者比較好的管理伺服器方案,希望對大家有幫助

實現方法

現有伺服器 A、B、C 三臺伺服器,我們將 A 作為部署維護伺服器,連線 B、C 進行操作。

首先更改伺服器名 sudo vim /etc/hostname,以使得每個伺服器有易於你標識的名字,讓我們操作伺服器時根據提示符知道我們現在操作哪一臺伺服器。

檢視系統網路資訊 ifconfig,這一步是獲取伺服器的 IP 地址。

我使用的伺服器是 Ubuntu,Ubuntu 更新 sudo apt update,16.04 以上版本可使用 apt 代替 apt-get

安裝 SSH 服務 sudo apt install ssh

禁用防火牆,不禁用無法連線用 SSH 連線伺服器,禁用命令 sudo ufw disable,當然更安全的做法是隻允許特定埠可訪問,這裡為了簡單直接禁用了防火牆。

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 檔案構建的映象。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章