- 木偶教程
 - 木偶 - 主页
 
- 基础木偶
 - 木偶 - 概述
 - 木偶 - 建筑
 - 傀儡 - 安装
 - 木偶 - 配置
 - Puppet - 环境会议
 - 木偶大师
 - Puppet - 代理设置
 - Puppet - SSL 签名证书设置
 - 安装和配置 r10K
 - Puppet - 验证设置
 - Puppet - 编码风格
 - Puppet - 清单文件
 - 木偶 - 模块
 - Puppet - 文件服务器
 - 木偶 - 事实与事实
 
- 高级傀儡
 - 木偶 - 资源
 - Puppet - 资源抽象层
 - 木偶 - 模板
 - 木偶 - 课程
 - 木偶 - 功能
 - Puppet - 自定义函数
 - 木偶 - 环境
 - 木偶 - 类型和提供者
 - Puppet - RESTful API
 - 木偶 - 现场项目
 
- 木偶有用资源
 - 木偶 - 快速指南
 - 木偶 - 有用的资源
 - 木偶 - 讨论
 
Puppet - RESTful API
Puppet 使用 RESTful API 作为 Puppet 主设备和 Puppet 代理之间的通信通道。以下是访问此 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 代理 API 参考
当在任何计算机上设置新代理时,默认情况下,Puppet 代理不会侦听 HTTP 请求。需要通过在 puppet.conf 文件中添加“listen=true”来在 Puppet 中启用它。这将使 Puppet 代理能够在 Puppet 代理启动时侦听 HTTP 请求。
事实
GET /{environment}/facts/{anything}  
curl -k -H "Accept: yaml" https://brcelprod002:8139/production/facts/{anything}
Run - 导致客户端更新,如 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}