為 Puppet 主伺服器新增要管理的節點 - AWS OpsWorks

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為 Puppet 主伺服器新增要管理的節點

重要

該 AWS OpsWorks for Puppet Enterprise 服務於 2024 年 3 月 31 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請透過 AWS Re: post 或透過進AWS 階 Support 與 AWS Support 團隊聯絡。

新增節點的建議方法是使用 AWS OpsWorks associateNode() API。Puppet Enterprise 主伺服器託管一個儲存庫,可供您用來在要管理的節點上安裝 Puppet 代理程式軟體,而不論節點是在現場部署實體電腦或虛擬機器上。部分作業系統的 Puppet 代理程式軟體會安裝在 OpsWorks Puppet 企業伺服器上,做為啟動程序的一部分。下表顯示啟動時可在 Puppet Enterprise 伺服器上使用的 OpsWorks 作業系統代理程式。

預先安裝的作業系統代理程式
支援的作業系統 版本
Ubuntu 16.04、18.04、20.04
Red Hat Enterprise Linux (RHEL) 六、七、八
Windows 所有 Puppet 支援之 Windows 版本的 64 位元版本

您可以針對其他作業系統將 puppet-agent 新增至您的伺服器。請注意,系統維護將會刪除您在啟動之後已新增至伺服器的代理程式。雖然已在執行遭刪除代理程式的大多數現有連接節點會繼續簽入,但執行 Debian 作業系統的節點可能會停止報告。建議您在執行作業系統的節點puppet-agent上手動安裝,而 Puppet Enterprise 伺服器上未預先安裝代理程式軟體。 OpsWorks 如需如何讓具有其他作業系統的節點可以在您伺服器上使用 puppet-agent 的詳細資訊,請參閱 Puppet Enterprise 文件中的 Installing agents

如需如何透過填入 EC2 執行個體使用者資料,自動將節點與您的 Puppet 主伺服器建立關聯的資訊,請參閱 OpsWorks 為 Puppet 企業自動新增節點

執行 associateNode() API 呼叫

在您透過安裝方式新增節點之後puppet-agent,節點會傳送憑證簽署要求 (CSR) 至 Puppet 企業伺服器。 OpsWorks 您可以在 Puppet 主控台中檢視 CSR;如需節點 CSR 的詳細資訊,請參閱 Puppet Enterprise 文件中的 Managing certificate signing requests。執行 OpsWorks Puppet 企業版 associateNode() API 呼叫會處理節點 CSR,並將節點與您的伺服器建立關聯。以下是如何在中使用此 API 呼叫 AWS CLI 來關聯單一節點的範例。您將需要節點所傳送之 PEM 格式的 CSR,這可透過 Puppet 主控台取得。

aws opsworks-cm associate-node --server-name "test-puppet-server" --node-name "node or instance ID" --engine-attributes "Name=PUPPET_NODE_CSR,Value='PEM_formatted_CSR_from_the_node'

如需如何使用 associateNode() 自動新增節點的詳細資訊,請參閱 OpsWorks 為 Puppet 企業自動新增節點

新增現場部署節點的考量

在內部部署電腦或虛擬機器puppet-agent上安裝之後,您可以使用兩種方式之一,將內部部署節點與您 OpsWorks 的 Puppet Enterprise 主機產生關聯。

  • 如果節點支援 AWS 開發套件AWS CLIAWS Tools for PowerShell 的安裝,您可以使用建議的方法來關聯節點,也就是執行 associateNode() API 呼叫。您第一次建立 Puppet 企業主機時下載的 OpsWorks 入門套件會顯示如何使用標籤將角色指派給節點。您可以透過在 CSR 中指定信任的事實,在建立節點與 Puppet 主伺服器關聯同時套用標籤。例如,入門套件隨附的示範控制儲存庫設定為使用標籤 pp_role 將角色指派給 Amazon EC2 執行個體。如需如何將標籤新增至 CSR 做為信任事實的詳細資訊,請參閱 Puppet 平台文件中的 Extension requests (permanent certificate data)

  • 如果節點無法執行 AWS 管理或開發工具,您 OpsWorks 仍然可以向 Puppet Enterprise 主機註冊它,方法與在任何未受管理的 Puppet 企業主機上註冊該節點相同。如本主題所述,安裝會將 CSR puppet-agent 傳送至 Puppet 企業主機。 OpsWorks 獲得授權的 Puppet 使用者可以手動簽署 CSR,或透過編輯存放在 Puppet 主伺服器上的 autosign.conf 檔案來設定 CSR 的自動簽署。如需設定自動簽署和編輯 autosign.conf 的詳細資訊,請參閱 Puppet 平台文件中的 SSL configuration: autosigning certificate requests

若要將現場部署節點與一個 Puppet 主伺服器連結,允許 Puppet 主伺服器以接受所有 CSR,請在 Puppet Enterprise 主控台執行下列動作。控制此行為的參數為puppet_enterprise::profile::master::allow_unauthenticated_ca

重要

啟用 Puppet 主伺服器接受自簽 CSR,或不建議所有 CSRs 用於安全考量。根據預設,允許未經授權的 CSR 讓全世界都能使用 Puppet 主伺服器。設定上傳憑證要求須根據預設啟用,會讓您的 Puppet 主程式容易受到阻斷服務攻擊 (DoS)。

  1. 登入 Puppet Enterprise 主控台

  2. 選擇 Configure (設定),選擇 Classification (分類),選擇 PE Master,然後選擇 Configuration (組態) 標籤。

  3. Classification (分類) 標籤,找到 puppet_enterprise::profile::master 類別。

  4. allow_unauthenticated_ca 參數的值設為 true

  5. 儲存您的變更。您的變更會在下一次 Puppet run 期間套用。您可以允許變更在 30 分鐘內生效 (並新增現場部署節點),或者您可以在 PE 主控台的 Run (執行) 區段手動初始化 Puppet run。

詳細資訊

請造訪學習 Puppet 教學課程網站,以進一步了解如何使 OpsWorks 用 Puppet 企業伺服器和 Puppet 企業主控台功能。