Wayang - API RESTful
Puppet menggunakan RESTful API sebagai saluran komunikasi antara master Wayang dan agen Puppet. Berikut ini adalah URL dasar untuk mengakses RESTful API ini.
https://brcleprod001:8140/{environment}/{resource}/{key} 
https://brcleprod001:8139/{environment}/{resource}/{key}Keamanan REST API
Wayang biasanya menangani keamanan dan manajemen sertifikat SSL. Namun, jika seseorang ingin menggunakan RESTful API di luar cluster, seseorang perlu mengelola sertifikatnya sendiri, saat mencoba menghubungkan ke mesin. Kebijakan keamanan untuk Puppet dapat dikonfigurasi melalui file authconfig lainnya.
Menguji REST API
Utilitas Curl dapat digunakan sebagai utilitas dasar untuk mengistirahatkan konektivitas API yang tenang. Berikut adalah contoh bagaimana kita dapat mengambil katalog node menggunakan perintah curl REST API.
curl --cert /etc/puppet/ssl/certs/brcleprod001.pem --key 
   /etc/puppet/ssl/private_keys/brcleprod001.pemDalam rangkaian perintah berikut kami hanya menyetel sertifikat SSL, yang akan berbeda tergantung di mana direktori SSL dan nama node yang digunakan. Misalnya, mari kita lihat perintah berikut.
curl --insecure -H 'Accept: yaml' 
https://brcleprod002:8140/production/catalog/brcleprod001Pada perintah di atas, kami hanya mengirim tajuk yang menentukan format atau format yang kami inginkan kembali dan URL RESTful untuk membuat katalog brcleprod001 di lingkungan produksi, akan menghasilkan keluaran sebagai berikut.
--- &id001 !ruby/object:Puppet::Resource::Catalog 
aliases: {} 
applying: false 
classes: [] 
...Mari kita asumsikan contoh lain, di mana kita ingin mendapatkan kembali sertifikat CA dari master Wayang. Itu tidak perlu diautentikasi dengan sertifikat SSL yang ditandatangani sendiri karena itu adalah sesuatu yang diperlukan sebelum diautentikasi.
curl --insecure -H 'Accept: s' https://brcleprod001:8140/production/certificate/ca  
-----BEGIN CERTIFICATE----- 
MIICHTCCAYagAwIBAgIBATANBgkqhkiG9w0BAQUFADAXMRUwEwYDVQQDDAxwdXBwReferensi API Puppet Master dan Agen
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/brcleprod002Referensi Puppet Master API
Sumber Daya yang Diautentikasi (Valid, sertifikat yang ditandatangani diperlukan).
Katalog
GET /{environment}/catalog/{node certificate name} 
curl -k -H "Accept: pson" https://brcelprod001:8140/production/catalog/myclientDaftar Pencabutan Sertifikat
GET /certificate_revocation_list/ca 
curl -k -H "Accept: s" https://brcleprod001:8140/production/certificate/caPermintaan Sertifikat
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/puppetclientLaporan Mengirim Laporan
PUT /{environment}/report/{node certificate name}  
curl -k -X PUT -H "Content-Type: text/yaml" -d "{key:value}" https://brcleprod002:8139/productionNode - Fakta Mengenai Node Tertentu
GET /{environment}/node/{node certificate name}  
curl -k -H "Accept: yaml" https://brcleprod002:8140/production/node/puppetclientStatus - Digunakan untuk Pengujian
GET /{environment}/status/{anything}  
curl -k -H "Accept: pson" https://brcleprod002:8140/production/certificate_request/puppetclientReferensi Puppet Agent API
Saat agen baru disiapkan di mesin mana pun, secara default Agen boneka tidak mendengarkan permintaan HTTP. Ini perlu diaktifkan di Puppet dengan menambahkan "mendengarkan = true" di file puppet.conf. Ini akan memungkinkan agen Puppet untuk mendengarkan permintaan HTTP saat agen Puppet mulai.
Fakta
GET /{environment}/facts/{anything}  
curl -k -H "Accept: yaml" https://brcelprod002:8139/production/facts/{anything}Run - Menyebabkan klien memperbarui seperti boneka atau tendangan boneka.
PUT  /{environment}/run/{node certificate name}  
curl -k -X PUT -H "Content-Type: text/pson" -d "{}" 
https://brcleprod002:8139/production/run/{anything}