Con rối - API RESTful

Puppet sử dụng RESTful API làm kênh giao tiếp giữa cả Puppet master và Puppet agent. Sau đây là URL cơ bản để truy cập API RESTful này.

https://brcleprod001:8140/{environment}/{resource}/{key} 
https://brcleprod001:8139/{environment}/{resource}/{key}

REST API Security

Puppet thường chăm sóc bảo mật và quản lý chứng chỉ SSL. Tuy nhiên, nếu muốn sử dụng RESTful API bên ngoài cụm, người đó cần phải tự quản lý chứng chỉ khi cố gắng kết nối với máy. Chính sách bảo mật cho Puppet có thể được định cấu hình thông qua tệp authconfig còn lại.

Kiểm tra API REST

Tiện ích Curl có thể được sử dụng như một tiện ích cơ bản để phục hồi kết nối API RESTful. Sau đây là một ví dụ về cách chúng ta có thể truy xuất danh mục nút bằng lệnh curl API REST.

curl --cert /etc/puppet/ssl/certs/brcleprod001.pem --key 
   /etc/puppet/ssl/private_keys/brcleprod001.pem

Trong nhóm lệnh sau, chúng tôi chỉ thiết lập chứng chỉ SSL, chứng chỉ này sẽ khác nhau tùy thuộc vào vị trí của thư mục SSL và tên của nút đang được sử dụng. Ví dụ, hãy xem lệnh sau.

curl --insecure -H 'Accept: yaml' 
https://brcleprod002:8140/production/catalog/brcleprod001

Trong lệnh trên, chúng tôi chỉ gửi một tiêu đề xác định định dạng hoặc các định dạng mà chúng tôi muốn quay lại và một URL RESTful để tạo danh mục brcleprod001 trong môi trường sản xuất, sẽ tạo ra một đầu ra sau đây.

--- &id001 !ruby/object:Puppet::Resource::Catalog 
aliases: {} 
applying: false 
classes: [] 
...

Hãy giả sử một ví dụ khác, nơi chúng ta muốn lấy lại chứng chỉ CA từ Puppet master. Nó không yêu cầu được xác thực bằng chứng chỉ SSL đã ký riêng vì đó là thứ cần thiết trước khi được xác thực.

curl --insecure -H 'Accept: s' https://brcleprod001:8140/production/certificate/ca  

-----BEGIN CERTIFICATE----- 
MIICHTCCAYagAwIBAgIBATANBgkqhkiG9w0BAQUFADAXMRUwEwYDVQQDDAxwdXBw

Tham chiếu API được chia sẻ của đại lý và kỹ sư con rối

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

Tham chiếu API chính của con rối

Tài nguyên được xác thực (Yêu cầu chứng chỉ hợp lệ, đã ký).

Danh mục

GET /{environment}/catalog/{node certificate name} 

curl -k -H "Accept: pson" https://brcelprod001:8140/production/catalog/myclient

Danh sách thu hồi chứng chỉ

GET /certificate_revocation_list/ca 

curl -k -H "Accept: s" https://brcleprod001:8140/production/certificate/ca

Yêu cầu chứng chỉ

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

Báo cáo Gửi báo cáo

PUT /{environment}/report/{node certificate name}  
curl -k -X PUT -H "Content-Type: text/yaml" -d "{key:value}" https://brcleprod002:8139/production

Node - Sự thật về một nút cụ thể

GET /{environment}/node/{node certificate name}  

curl -k -H "Accept: yaml" https://brcleprod002:8140/production/node/puppetclient

Trạng thái - Được sử dụng để thử nghiệm

GET /{environment}/status/{anything}  

curl -k -H "Accept: pson" https://brcleprod002:8140/production/certificate_request/puppetclient

Tham chiếu API tác nhân con rối

Khi một tác nhân mới được thiết lập trên bất kỳ máy nào, theo mặc định, tác nhân Con rối không lắng nghe yêu cầu HTTP. Nó cần được kích hoạt trong Puppet bằng cách thêm “nghe = true” trong tệp rối.conf. Điều này sẽ cho phép tác nhân Con rối lắng nghe yêu cầu HTTP khi tác nhân con rối đang khởi động.

Sự thật

GET /{environment}/facts/{anything}  

curl -k -H "Accept: yaml" https://brcelprod002:8139/production/facts/{anything}

Run - Làm cho khách hàng cập nhật như rối hoặc đá rối.

PUT  /{environment}/run/{node certificate name}  

curl -k -X PUT -H "Content-Type: text/pson" -d "{}" 
https://brcleprod002:8139/production/run/{anything}