LabsのPuppetは、システム管理者がサーバーインフラストラクチャのプロビジョニング、構成、および管理を自動化するのに役立つ構成管理ツールです。事前に計画し、Puppetなどの構成管理ツールを使用すると、基本的なタスクの繰り返しに費やす時間を削減でき、インフラストラクチャ全体で構成の一貫性と正確性を確保できます。Puppetやその他の自動化ツールを使用してサーバーを管理すると、時間を節約でき、全体的なセットアップの他の側面の改善に費やすことができます。EnterpriseとオープンソースPuppetの2種類があります。ほとんどのLinuxディストリビューション、さまざまなUNIXプラットフォーム、およびWindowsで実行されます。Masterセットアップにインストールする方法について説明します。Agent_ノードであり、Puppetマスターサーバーによって構成できます。前提条件このチュートリアルを実行するには、Puppetを設定するすべてのサーバーへのルートアクセスが必要です。VPSを作成する必要があります。既存のインフラストラクチャがない場合は、前提条件のDNSセットアップチュートリアルに従って、サンプルインフラストラクチャ(後述)を自由に再作成してください。Puppetのインストールを開始する前に、次の前提条件を満たしていることを確認してください。*プライベートネットワークDNS:*フォワードDNSおよびリバースDNSを構成する必要があり、すべてのサーバーに一意のホスト名が必要です。https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on-ubuntu-14-04へのチュートリアルはこちらです。プライベートネットワークDNSサーバー]。+`ファイルを使用する必要があります。インフラストラクチャ内の通信にプライベートネットワークを使用すると想定します。Puppetマスターはポート8140で到達可能でなければなりません。ファイアウォールの制限が厳しすぎる場合は、https://www.digitalocean.com/community/tutorials/how-to-setup-a-firewall-with-ufw-on-an-ubuntu-and-debian-cloud-をご覧ください。Tutorial]を参照してください。次のインフラストラクチャを使用して、Puppetのセットアップ方法を示します。nameserverns2.nyc2.example.comこれらのすべてのホストにpuppetエージェントがインストールされます。これらのホストは、プライベートネットワークインターフェイスによって参照され、DNSの「.nyc2.example.com」サブドメインにマップされます。+でBINDをプライベートネットワークDNSサーバーとして設定する方法]。次の詳細を使用して、プライベートネットワークをDNSに追加します。[DNSレコードの管理]セクション。基本的に、「A」および「PTR」レコードを追加し、新しいホストが再帰クエリを実行できるようにする必要があります。サーバーが短いホスト名を使用して相互に検索できるように、検索ドメインを構成してください。Puppetマスターのホスト名として「puppet」を使用すると、エージェントへの接続を試みる際にエージェントが使用するデフォルトの名前であるため、エージェントのセットアップが若干簡素化されます。次に、NTPをセットアップする必要があります。NTPをインストールするpuppetマスターサーバーはエージェントノードの認証局として機能するため、エージェント証明書を発行する際に潜在的な問題を回避するために正確なシステム時間を維持する必要があります。Protocol(NTP)を使用します。+`コマンドを使用して1回限りの時間同期を行います。pool.ntp.orgシステム時刻は更新されますが、NTPデーモンをインストールして時刻を自動的に更新し、時間のずれを最小限に抑える必要があります。次のaptコマンドを使用してインストールします。ntpNTPサーバーに地理的に近い「プールゾーン」を使用するようにNTP構成を更新するのが一般的な方法です。zone_を検索します。サーバーはニューヨークのデータセンターにあるため、この例では米国のプール(http://www.pool.ntp.org/zone/us)を使用します。Projectページからファイルの先頭にタイムサーバーを追加します。3.us.pool.ntp.org保存して終了。NTPを再起動して、新しいタイムサーバーを追加します。restartサーバーが正確な時間を保持しているので、Puppetマスターソフトウェアをインストールしましょう。MasterをインストールするオープンソースのPuppetをインストールするには、さまざまな方法があります。Labsが提供する_puppetmaster-passenger_というdebianパッケージを使用します。_puppetmaster-passenger_パッケージには、Puppetマスターと本番用のWebサーバー(Apacheを使用した旅客)が含まれています。Labsパッケージをダウンロードします。https://apt.puppetlabs.com/puppetlabs-release-trusty.debパッケージをインストールしてください。puppetlabs-release-trusty.debaptの利用可能なパッケージのリストを更新します。master、Passenger、Apache、およびその他の必要なパッケージがインストールされました。PassengerとApacheを使用しているため、PuppetマスタープロセスはApacheによって制御されます。Apacheの実行中に実行されます。+`サービスを停止してPuppetマスターを停止します。stop次に、Puppetのバージョンをロックします。バージョンをロックするバージョンごとに変更すると、Puppet環境が正常に動作しなくなる場合があります。このため、インフラストラクチャ全体で一貫したPuppetバージョンを維持する必要があります。新しいバージョンにアップグレードする場合は、マスターがより高いバージョン番号を持つエージェントを管理できないため、エージェントノードの前に必ず_master_をアップグレードしてください。次のコマンドを使用して、Puppetインストールのバージョンを検索します。aptのピン機能を使用して、Puppetのインストールを「+3.6。+」にロックすることができます。これにより、aptはPuppetをより高いメジャーリリースにアップグレードできなくなります。aptプリファレンスディレクトリで呼び出される新しいファイルを作成します。puppetmaster-passenger」パッケージを「+3.6。+」にロックします(インストールされているバージョンに合わせて変更します)。Puppetバージョンがロックされました。次のステップは、Puppetマスター名と証明書をセットアップすることです。名前と証明書を設定するPuppetはSSL証明書を使用して、マスターノードとエージェントノード間の通信を認証します。Puppetマスターは認証局(CA)として機能し、エージェント証明書要求に署名するために使用される独自の証明書を生成する必要があります。マスターの証明書をセットアップします。既存の証明書を削除するパッケージのインストール中に作成された既存のSSL証明書を削除します。/var/lib/puppet/ssl証明書を構成するパペットマスターの証明書を作成するとき、エージェントノードがマスターに接続できるすべてのDNS名を含めます。この例の場合、短いホスト名とFQDNである「puppet」と「puppet.nyc2.example.com」をそれぞれ使用します。マスターのpuppet.confファイルを編集します。/etc/puppet/puppet.confそれは次のようになります。+`オプションが廃止されているため、このオプションを含む行を削除します。+`セクションの最後に次の2行を追加します(強調表示されたテキストをプライベートFQDNに置き換えます)。」を割り当てることが重要です。+`)を編集してSSL証明書パスの名前を変更してください。新しい証明書を生成する次のコマンドを実行して、新しいCA証明書を作成します。--no-daemonizeSSLキーと証明書が作成されていることを示す出力が数行表示されます。3.6.2+」が表示されたら、証明書のセットアップは完了です。+`を押してシェルに戻ります。3.6.2作成されたばかりの証明書の証明書情報を確認するには、次のように入力します。-all前のコマンドは、実際にすべての署名済み証明書と未署名の証明書要求をリストします。現在、他の証明書がまだ追加されていないため、マスター証明書のみが表示されます。"DNS:puppet.nyc2.example.com")Puppetマスターサービスを開始する準備がほぼ整いました。最初にマスター構成を見てみましょう。ご想像のとおり、「メイン」セクションにはグローバル構成が含まれ、「マスター」セクションはパペットマスターに固有であり、「エージェント」はパペットエージェントの構成に使用されます。前に行った変更は別として、デフォルトは基本的なセットアップでは正常に機能します。構成ファイルには、独自のセットアップに関連する可能性のある多くのオプションがあります。File(puppet.conf)]。編集する場合は、次のコマンドを実行します。/etc/puppet/puppet.confメインのマニフェストファイルを見てみましょう。メインマニフェストファイルPuppetはドメイン固有の言語を使用してシステム構成を記述します。