人形のチートシート
Puppetは、システム管理者がサーバーインフラストラクチャのプロビジョニング、構成、および管理を自動化するのに役立つ構成管理ツールです。 通常、マスターサーバーが複数のエージェントノードの構成を管理するマスター/エージェントモードで実行されます。 マスターとエージェント間の通信は、クライアントが検証したHTTPSで許可および保護されます。これには、有効な識別SSL証明書が必要です。 Puppetマスターは、これらの証明書を管理するための認証局として機能します。
このチートシートスタイルガイドは、を使用するためのクイックリファレンスを提供します puppet cert
それらの証明書を管理するコマンド。
このガイドの使用方法:
- このガイドは、自己完結型のコマンドラインスニペットを含むチートシート形式です。
- 完了しようとしているタスクに関連するセクションにジャンプします。
注: puppet
あなたのパスにない場合は、フルパスを提供する必要があります puppet
以下のコマンドで。
証明書リクエストの一覧表示
Puppetエージェントサーバーがオンラインになると、すべてが適切に構成されている場合、サーバーはPuppetマスターに証明書署名要求を提示します。 これらのリクエストは、 puppet cert list
指図。
署名済みと未署名のすべてのリクエストを一覧表示します
署名付きおよび署名なしのすべての証明書要求を表示するには、 --all
次のようにフラグを立てます。
- sudo puppet cert list --all
署名されたリクエストの前にはプラス(+
)および署名されていないリクエストはそうではありません。 以下の出力では、 host2.example.com
署名されていませんが、 host1
と puppet
持ってる:
Output:+ "host1.example.com" (SHA256) 51:D8:7A:EB:40:66:74:FD:0A:03:5D:35:AA:4D:B3:FA:35:99:C2:A8:C9:01:83:34:F6:16:60:BB:46:1F:33:3F
"host2.example.com" (SHA256) 3C:A9:96:3A:8D:24:5F:25:DB:FF:67:B5:22:B1:46:D9:89:F1:75:EC:BA:F2:D6:87:70:0C:59:97:11:11:01:E3
+ "puppet.example.com" (SHA256) 12:32:47:18:D1:12:85:A6:EA:D4:51:9C:24:96:E2:8A:51:41:8D:EB:E8:7C:EB:47:94:B0:8B:16:16:51:6A:D1 (alt names: "DNS:puppet", "DNS:puppet.localdomain", "DNS:puppet.example.com")
署名されていないリクエストを一覧表示する
Puppet Serverがエージェントノードと通信して制御できるようになる前に、その特定のエージェントノードの証明書に署名する必要があります。 署名されていないリクエストを確認するには、 puppet cert list
Puppetサーバーからのコマンド:
- sudo puppet cert list
これにより、署名されていないリクエストのみが一覧表示されます。 出力は次のようになります。
Output: "host2.example.com" (SHA256) 9D:49:DE:46:1C:0F:40:19:9B:55:FC:97:69:E9:2B:C4:93:D8:A6:3C:B8:AB:CB:DD:E6:F5:A0:9C:37:C8:66:A0
プラス記号がない(+
)は、これらの証明書がまだ署名されていないことを示します。 署名されていない要求がない場合は、出力なしでコマンドプロンプトに戻ります。
証明書リクエストへの署名
特定のリクエストに署名する
単一の証明書リクエストに署名するには、 puppet cert sign
コマンド。証明書要求に表示される1つ以上のホスト名を使用します。
- puppet cert sign host2.example.com
次の例のような出力は、証明書要求が署名されていることを示しています。
Output:Notice: Signed certificate request for host1.example.com
Notice: Removing file Puppet::SSL::CertificateRequest host2.example.com at '/etc/puppetlabs/puppet/ssl/ca/requests/host1.example.com.pem'
すべてのリクエストに署名する
を追加することにより、すべてのリクエストに署名できます --all
国旗:
- sudo puppet cert sign --all
証明書の取り消し
最終的には、Puppetからホストを削除するか、ホストを再構築してから再度追加することをお勧めします。 この場合、Puppetマスターからホストの証明書を取り消す必要があります。 これを行うには、 clean
アクション:
注:バックアップを作成します /etc/puppetlabs/puppet/ssl/
証明書を取り消す前のディレクトリ:
- sudo cp -R /etc/puppetlabs/puppet/ssl/ /root/
特定の証明書を取り消す
次の方法で1つ以上の特定の証明書を取り消すことができます puppet cert clean
証明書に表示されている1つ以上のホスト名を指定する。
- sudo puppet cert clean host1.example.com
証明書を失効させた後、失効を有効にするには、Puppetマスターを再起動する必要があります。
- sudo service puppetserver reload
次回 puppet agent
エージェントノードで実行されると、新しい証明書署名要求がPuppetマスターに送信されます。 puppet cert sign
. 次の方法でリクエストをすぐにトリガーできます。
- sudo puppet agent --test
複数の証明書を取り消す
Puppetでは、証明書を一括で削除することはできません。 --all
フラグを立てますが、スペースで区切ってホスト名を指定することにより、複数の証明書を一度に取り消すことができます。
- sudo puppet cert clean host1.example.com host2.example.com . . .
証明書を失効させた後、失効を有効にするには、Puppetマスターを再起動する必要があります。
- sudo service puppetserver reload
結論
このガイドでは、Puppetバージョン4.xでPuppet証明書を管理するための一般的なコマンドのいくつかについて説明します。 で使用できる他のアクションとフラグがあります puppet cert
. 包括的なリストについては、puppetcertのマニュアルページを参照してください。