如何更改 Puppet 配置的伺服器上的電腦名稱
我是 Puppet 的新手,我試圖讓 Puppet 在從 AWS 中的 Cloud Formation 模板啟動我的 EC2 實例後配置我的 EC2 實例。問題是從 Cloud Formation Template 啟動的所有節點都具有相同的名稱(新節點派生自 AMI 的名稱)。
我很想找到一種在節點啟動時讓 puppet 重命名節點的方法。(儘管據我所知,更改電腦名稱需要重新啟動,這是一個單獨的問題……)
如果您可以向我指出一些可以幫助我解決這個問題的文件,或者您有任何想法會很棒。我的最終目標是讓每個 EC2 都以唯一的名稱開頭,以便我可以使用 New Relic 伺服器監控來報告不同的伺服器。
我最終需要為 Linux 和 Windows Server 2008 R2 實現這一目標,但我認為我已經弄清楚了 Linux 方面。
更新:
我就這個問題與 New Relic 進行了交談,他們確認 New Relic 目前無法報告機器名稱以外的其他內容。因此,從 New Relic 方面解決問題目前還不是一個選擇。
我還想避免在創建機器後更改機器名稱,因為我不想在機器啟動後重新啟動機器。
我的理想選擇是讓 Cloud Formation 能夠從 AMI 生成新的 EC2 實例,但在創建過程中使用特定的機器名稱(例如將機器名稱設置為實例 ID 或其他內容)。
如果啟動 EC2 的 AMI 已配置為將電腦名稱設置為 EC2 配置服務中的 ip-,則 EC2 將以唯一名稱開始。
看到這個:http ://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html
對於新的遺物,您只需要更改您的主機名,因為這是他們使用的標識符。主機名更改不需要重新啟動,至少對於 Linux 而言。您可以在 puppet exec 中執行以下操作:
hostname `ifconfig eth0|grep "inet addr"| awk -F ":" '{print $2}'|awk '{print $1}'`
這會將您的主機名設置為 IP 地址,newrelic 可以將其用作標識符。您也可以更輕鬆地診斷問題,因為它們將根據機器的 IP 地址顯示。