puppet運維自動化之sshkey管理 | mysqlops 資料庫與運維自動化技術分享
you are here:home /
puppet中文自動化管理 / puppet運維自動化之sshkey管理
九月 24, 2011 by sky · 2 comments
ssh key,作為系統管理人員經常會使用ssh 連線遠端伺服器,建立相應的金鑰,可以免去每次登入
都要輸入密碼的痛苦。另外關閉相應的password認證,用ssh key來認證也可以提高ssh 安全。但有
個問題,就是有n多台伺服器,如何批量建立ssh key認證呢? 還是用shell的for迴圈? 其實這完全
可以交給puppet來搞定。本章就為大家介紹運維自動化之ssh key管理。
【puppet sshkey 基礎】
在介紹puppet 管理 ssh key之前, 我們簡單回顧下面的問題
ssh為secure shell的縮寫,由ietf的網路工作小組(network working group)所制定;ssh為建立在應用層和傳輸層基礎上的安全協議。
ssh分為兩部分:客戶端部分和服務端部分,工作機制大致是本地的客戶端傳送乙個連線請求到遠端的服務端,服務端檢查申請的包和ip位址再傳送金鑰給ssh的客戶端,本地再將金鑰發回給服務端,自此連線互相建立。
步驟如下:a. 本地生成金鑰
# ssh-keygen -t dsa -c 」test by sky」
b.複製公鑰到你想要的登入的機器(比如 ip為192.168.3.235)
c. 登入到192.168.3.235,這時候還是需要輸入密碼的。
# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
#chmod 700 ~/.ssh
#chmod 600 ~/.ssh/authorized_keys
至此,就可以無密碼登入。熟悉上面的後,我們就可以為大家詳細講解,如何用
puppet來管理ssh key?
【puppet sshkey 概要】
puppet ssh key是主要安裝和管理ssh主機金鑰。
這種型別只知道如何安裝到/ etc/ssh/ssh_known_hosts,它不能管理使用者的授權金鑰。
【puppet ssh key 引數】
alias
別名,通俗的可以理解為小名,主機可能具有多個別名。如果有多個話可以用陣列表示。
ensure
key生成 的金鑰值,一般是十六進製制數字的長字串。
name
名稱,主機名.
provider
經常不需要指定,puppet根據相應的作業系統選擇相應的provider.
parsed: 為ssh解析和生成已知的host檔案。
target:
儲存的ssh金鑰檔案的路徑。
type
key生成的加密型別,通過是ssh-dsa,或者ssh-rsa,備註,dsa也可以用dss來表示。
user
指定是哪個使用者的key
【puppet sshkey 示例】
假設,我建立好了乙個使用者名為sky的使用者。由於他是sa,需要管理n臺機器,為了方便無密碼登入。
**示例:
ssh_authorized_key
【puppet sshkey 總結】
上面的例子是有個問題的,就是如果每多執行一次的話,他都會把key追加寫到/home/sky/.ssh/authorized_keys。
puppet 非常強大,建立使用者可以用puppet user來管理,本章最好結合使用者,還有之前一篇管理虛擬資源結合起來。
這樣可以實現基礎的使用者管理,使用者key管理等基礎工作,再配合puppet package管理軟體包。
一步步朝運維自動化方向前進。
補充:剛有同學在qq群裡問到,「就是如果每多執行一次的話,他都會把key追加寫到/home/sky/.ssh/authorized_keys」
有沒有解決方法,其實這是sky不小心,在金鑰值中寫了說明「***== test1.test.com」,把test1.test.com這個說明給去掉
就可以解決了。
puppet自動化運維之package資源
package資源管理系統的軟體包安裝,預設是yum源 etc yum.repo.d 的,通過puppet 來自動安裝的軟體包均是通過 yum來安裝的,所以需要先配置好 yum源。作用 管理哪些軟體包被安裝,哪些軟體包被解除安裝 管理軟體包的更新 注 要求系統配置好yum源 redhat系統 格式 ...
puppet自動化運維之exec資源
puppet通過exec來執行外部的命令或者指令碼,一般來講是shell指令碼。這裡面就涉及到乙個重複執行的問題,因為預設的agent一連線上來就會自動執行對應的命令或者指令碼。如果指令碼重複執行對系統沒影響的還無所謂,如果會對系統造成影響呢?乙個有用的方法是使用像creates引數來,除非達到了某...
Puppet自動化運維排錯案例
近日,自己維護的一組puppet agent機器,出現了如下報錯 12 root client src puppetd test server server.cn7788.com notice run of puppet configuration client alreadyinprogress ...