
- Puppet 教程
- Puppet - 首頁
- Puppet 基礎
- Puppet - 概述
- Puppet - 架構
- Puppet - 安裝
- Puppet - 配置
- Puppet - 環境配置
- Puppet - Master
- Puppet - Agent 設定
- Puppet - SSL 證書設定
- r10K 的安裝與配置
- Puppet - 設定驗證
- Puppet - 編碼風格
- Puppet - 清單檔案
- Puppet - 模組
- Puppet - 檔案伺服器
- Puppet - Facter 與事實
- 高階 Puppet
- Puppet - 資源
- Puppet - 資源抽象層
- Puppet - 模板
- Puppet - 類
- Puppet - 函式
- Puppet - 自定義函式
- Puppet - 環境
- Puppet - 型別與提供程式
- Puppet - RESTful API
- Puppet - 即時專案
- Puppet 有用資源
- Puppet - 快速指南
- Puppet - 有用資源
- Puppet - 討論
Puppet - RESTful API
Puppet 使用 RESTful API 作為 Puppet master 和 Puppet agent 之間的通訊通道。以下是訪問此 RESTful API 的基本 URL。
https://brcleprod001:8140/{environment}/{resource}/{key} https://brcleprod001:8139/{environment}/{resource}/{key}
REST API 安全性
Puppet 通常負責安全性以及 SSL 證書管理。但是,如果希望在叢集外部使用 RESTful API,則需要自行管理證書,以便嘗試連線到機器。Puppet 的安全策略可以透過 rest authconfig 檔案進行配置。
測試 REST API
Curl 實用程式可以用作測試 RESTful API 連線的基本工具。以下是如何使用 REST API curl 命令檢索節點目錄的示例。
curl --cert /etc/puppet/ssl/certs/brcleprod001.pem --key /etc/puppet/ssl/private_keys/brcleprod001.pem
在以下命令集中,我們只是設定 SSL 證書,這將根據 SSL 目錄的位置和所用節點的名稱而有所不同。例如,讓我們看看以下命令。
curl --insecure -H 'Accept: yaml' https://brcleprod002:8140/production/catalog/brcleprod001
在上例命令中,我們只發送一個標頭,指定我們想要返回的格式,以及用於生成生產環境中 **brcleprod001** 目錄的 RESTful URL,將生成以下輸出。
--- &id001 !ruby/object:Puppet::Resource::Catalog aliases: {} applying: false classes: [] ...
讓我們假設另一個示例,我們想要從 Puppet master 獲取 CA 證書。它不需要使用自己的簽名 SSL 證書進行身份驗證,因為這是在身份驗證之前所需的操作。
curl --insecure -H 'Accept: s' https://brcleprod001:8140/production/certificate/ca -----BEGIN CERTIFICATE----- MIICHTCCAYagAwIBAgIBATANBgkqhkiG9w0BAQUFADAXMRUwEwYDVQQDDAxwdXBw
Puppet Master 和 Agent 共享 API 參考
GET /certificate/{ca, other} curl -k -H "Accept: s" https://brcelprod001:8140/production/certificate/ca curl -k -H "Accept: s" https://brcleprod002:8139/production/certificate/brcleprod002
Puppet Master API 參考
已認證資源(需要有效的簽名證書)。
目錄
GET /{environment}/catalog/{node certificate name} curl -k -H "Accept: pson" https://brcelprod001:8140/production/catalog/myclient
證書吊銷列表
GET /certificate_revocation_list/ca curl -k -H "Accept: s" https://brcleprod001:8140/production/certificate/ca
證書請求
GET /{environment}/certificate_requests/{anything} GET /{environment}/certificate_request/{node certificate name} curl -k -H "Accept: yaml" https://brcelprod001:8140/production/certificate_requests/all curl -k -H "Accept: yaml" https://brcleprod001:8140/production/certificate_request/puppetclient
報告 - 提交報告
PUT /{environment}/report/{node certificate name} curl -k -X PUT -H "Content-Type: text/yaml" -d "{key:value}" https://brcleprod002:8139/production
節點 - 關於特定節點的事實
GET /{environment}/node/{node certificate name} curl -k -H "Accept: yaml" https://brcleprod002:8140/production/node/puppetclient
狀態 - 用於測試
GET /{environment}/status/{anything} curl -k -H "Accept: pson" https://brcleprod002:8140/production/certificate_request/puppetclient
Puppet Agent API 參考
在任何機器上設定新的 agent 時,預設情況下 Puppet agent 不會偵聽 HTTP 請求。需要在 Puppet 中透過在 puppet.conf 檔案中新增“listen=true”來啟用它。這將使 Puppet agent 在啟動時偵聽 HTTP 請求。
事實
GET /{environment}/facts/{anything} curl -k -H "Accept: yaml" https://brcelprod002:8139/production/facts/{anything}
**執行** - 導致客戶端像 puppetturn 或 puppet kick 一樣更新。
PUT /{environment}/run/{node certificate name} curl -k -X PUT -H "Content-Type: text/pson" -d "{}" https://brcleprod002:8139/production/run/{anything}
廣告