我正在嘗試實施 Foreman,以便我們能夠為我們管理的客戶管理和配置伺服器,我已在中央位置安裝了 Foreman,然後在其中一個客戶網路內安裝了 Foreman 智慧代理,一切正常(遠端 Puppet代理可以連接到我的智慧代理,並且我的中央Foreman 伺服器可以看到資料),但是我現在想要設定新的虛擬機器(透過vCenter)。我已經安裝foreman-vmware
並配置了我的計算資源配置文件,為我的VM 模板創建了一個條目,但是當我通過Foreman 創建一個新主機並告訴它從我的模板克隆時,它會掛起等待節點可用,我認為它可以透過 SSH 完成配置,我的問題是 Foreman 伺服器無法連接到新虛擬機,我希望新虛擬機(已安裝 Puppet 代理)配置為連接到我的智慧代理,並且這樣就完成了自身配置?
我的設計有錯嗎?有人可以幫我設計適合我的解決方案嗎?
我無法在客戶網路上建立新的 DHCP、DNS 和 TFTP 伺服器,因為它可能會幹擾現有的 DHCP 和 DNS 服務。
謝謝你,本
答案1
tl;dr:目前不起作用,SSH 設定來自 foreman 伺服器。
我們有一個類似的配置,其中有一個公共/集中式 Foreman/Puppet 實例,我們將多個「小」客戶連接到該實例。在我們的例子中,我甚至沒有在客戶的網路中安裝「智慧代理」。客戶的 IT 人員實際上向我提供了最小 CentOS 6.x 安裝的 SSH 憑證(就像部署映像一樣?)。在Foreman 中,我剛剛將新虛擬機器建立為“裸機”,然後從主機詳細資料畫面的“範本”標籤中複製完成腳本,並將其貼到虛擬機器中(我必須使用VPN 來SSH 到客戶端計算機) )。就您而言,您可能可以做類似的事情,但任何“手動”步驟通常都會被拒絕。
以下是我在思考這個問題時的一些隨機想法:
也許您可以弄清楚如何使用“cloud-init”,然後您將能夠“配置”(在其上運行腳本)虛擬機,而無需工頭伺服器能夠透過 SSH 連接到該虛擬機。我不確定這如何與 ESXi 配合使用,並且可能需要一些“自訂程式碼”:)
也許在 foreman 伺服器上設定一個 OpenVPN 伺服器,並設定您的映像以自動 VPN 連接到 foreman 伺服器。這有一些優點,因為您不需要將 puppet/foreman 暴露到 Internet,但可能再次涉及一些自訂程式碼來嘗試找出主機的 VPN IP 以進行 SSH。某些客戶也可能將其視為漏洞,特別是當他們試圖遵守 PCI 要求時。
建立一個允許「SSH via」配置的新模組,以便 foreman 伺服器可以透過 SSH 連接到特定主機,然後
ssh -t viaHost ssh $HOST_ADDRESS
在設定過程中連接到所需的客戶端 IP ( )。當然,如果您沿著這條路走下去,您也可以將其設為智慧型代理操作,而不是嘗試從 foreman 伺服器進行 SSH,而是要求智慧代理來執行此操作。
這些都是潛在的解決方案,但我認為目前它們中的任何一個都不起作用。在以下位置提交一些功能請求可能是個好主意http://projects.theforeman.org/projects/foreman/issues
〜湯米