Puppet-restful-api

提供:Dev Guides
移動先:案内検索

Puppet-RESTful API

Puppetは、PuppetマスターとPuppetエージェント間の通信チャネルとしてRESTful APIを使用します。 以下は、このRESTful APIにアクセスするための基本的なURLです。

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

REST APIセキュリティ

Puppetは通常、セキュリティとSSL証明書の管理を行います。 ただし、クラスターの外部でRESTful APIを使用する場合は、マシンに接続しようとするときに証明書を独自に管理する必要があります。 Puppetのセキュリティポリシーは、残りの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マスターからCA証明書を取得する別の例を考えてみましょう。 署名されたSSL証明書で認証される必要はありません。これは、認証される前に必要なことです。

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

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

Puppet MasterおよびAgent Shared 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

Node-特定のノードに関する事実

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リファレンス

マシンに新しいエージェントがセットアップされると、デフォルトでは、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}

実行-クライアントをパペットターンまたはパペットキックのように更新します。

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

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