Linux

適用於 Linux 伺服器和網路設備的自動化測試套件?

  • March 27, 2016

來自開發背景,我習慣於在東西上線之前進行自動化(單元)測試。現在我想對(新)linux(和一些windows)伺服器和網路設備使用相同的方法。

我希望能夠定義這些系統在上線之前應該通過的測試/條件,或者針對實時主機執行測試以檢查它們是否仍然符合我們的標準。

我想執行的測試超出了網路掃描。例如:

  • 我想檢查是否啟用了 SSH,但不允許 root 登錄並且強制執行基於密鑰的登錄。
  • 在列印機上,我想檢查是否設置了某些 SNMP 社區。
  • 在 linux 主機上,我想檢查 ntp 設置
  • 我希望能夠在某些特定情況下定義自定義檢查

你知道這樣的自動化系統是否存在,哪一個最能滿足我的要求?或者我應該建立在現有的單元測試框架上嗎?

這就是您使用監控的目的。有很多監控系統,有不同的正面和負面,這裡不是詳盡討論不同選項的地方。原則上,您的監控應該代表您對系統所做的所有斷言,包括輸出和響應時間。我鼓勵在我的團隊中使用“監控優先的系統管理”,並且與開發的相似之處應該是顯而易見的。

現在,就像有些東西很難進行單元測試一樣,也有一些東西很難監控。您的 SSH 範例就是其中之一——雖然您當然可以嘗試登錄,如果登錄失敗,則說您已完成,但很多事情可能會混淆您的測試——“嘗試以 root 身份使用密碼登錄失敗”有人將root密碼更改為並打開密碼驗證可能會搞砸test123- 您不知道密碼設置為什麼,所以您的測試登錄當然會失敗。

對於這些事情,您需要一個配置管理系統,例如 Chef 或 Puppet。這些系統允許您有效地對系統的狀態進行斷言(例如“應將PasswordAuthentication選項設置為”),並且配置管理系統將確保每次執行時都是這種情況。好的系統還可以為您提供異常報告(“嘿,我想您可能想知道設置為確實發生了。/etc/ssh/sshd_config``false``PasswordAuthentication``true

引用自:https://serverfault.com/questions/407388