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

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

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

重要

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

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

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

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

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

執行 associateNode() API 呼叫

透過安裝 新增節點之後puppet-agent,節點會將憑證簽署請求 (CSRs) 傳送至 OpsWorks for Puppet Enterprise 伺服器。您可以在 Puppet 主控台中檢視 CSR;如需節點 CSR 的詳細資訊,請參閱 Puppet Enterprise 文件中的 Managing certificate signing requests。執行 OpsWorks for Puppet Enterprise associateNode() API 呼叫會處理節點 CSRs,並將節點與您的伺服器建立關聯。以下是如何在 中使用此 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() 自動新增節點的詳細資訊,請參閱在適用於 Puppet Enterprise 的 OpsWorks 中自動新增節點

新增現場部署節點的考量

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

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

  • 如果節點無法執行 AWS 管理或開發工具,您仍然可以向 OpsWorks for Puppet Enterprise 主伺服器註冊節點,就像向任何未受管 Puppet Enterprise 主伺服器註冊節點一樣。如本主題所述,安裝 puppet-agent 會將 CSR 傳送至 OpsWorks for Puppet Enterprise 主伺服器。獲得授權的 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。

詳細資訊

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