我們有多台開發機(每台可能有不同的應用程式、環境,但它們都是Ubuntu 14.04)。
現在,一旦我們有一個新成員,我必須在每台機器上為他建立一個帳戶,並確保authorized_keys都是相同的。
有沒有一種方法或機制可以只建立一次帳戶,並且可以登入所有伺服器(使用 ssh 金鑰)。
答案1
我用一個簡單的設計做過一次。
- 將開發環境和測試環境的 /home 分割區安裝在同一磁碟上。
- 這樣,無論使用者位於開發伺服器或測試伺服器上,使用者主目錄都是相同的。
儘管上述想法有效,但由於我們擁有少量伺服器和相當精明的用戶,我不會推薦它。
問題:
1)這是一個非常糟糕的主意,因為當使用者在開發上刪除其主目錄中的某些內容時,他們不會知道他們也在測試中擦除它。
2)存取控制變得棘手,因為你無法控制誰可以登入更高的環境。
因此,我的方法是使用腳本根據需要跨環境/伺服器移動帳戶設定。
tar cvf - /home/<username> | ssh <servername> " (cd /home/<username> ; tar xvf - ) "
答案2
更好的管理方法是使用設定管理工具,例如 puppet 或 Chef,它將幫助您自動建立使用者、驗證金鑰或任何重複的事情,並簡化您的工作。話雖如此,如果您在所有伺服器上都沒有 root 用戶的密碼登錄,那麼您可以編寫腳本ssh <host> "useradd [options] username"
。
https://puppetlabs.com