自動化とオーケストレーションにPuppetを使用する理由

Puppetは、ハイブリッドインフラストラクチャの配信と継続的な運用を自動化するための事実上の標準としてPuppetに自動化ツールを請求しています。Puppetは2005年にさかのぼるだけでなく、現在、フォーチュン100の75%を含む、世界中の40,000の組織をユーザーとして主張しています。Puppetは依然として非常に強力な製品であり、速度と機能が向上しています。何年にもわたって、その競合他社、特にシェフはギャップを狭めてきました。

IT自動化スペースの外交団長から予想されるように、Puppetには非常に多くのモジュールのコレクションがあり、CI / CDからクラウドネイティブインフラストラクチャまでの範囲をカバーしていますが、その機能の多くは追加の製品を通じて提供されます。Puppetは主にエージェントを備えたモデルベースのシステムですが、Puppetタスクを使用したプッシュ操作をサポートしています。Puppet Enterpriseは、Amazonのサービスとしても利用できます。

人形製品

現在のPuppet製品には、オープンソースのPuppet、Puppet Enterprise、Puppet Pipelines、Puppet Discovery、Puppet Bolt、Puppet Container Registry、およびPuppetForgeが含まれます。Linux、Unix、およびWindowsシステム用の自動管理エンジンであるオープンソースPuppetは、一元化された仕様に基づいて管理タスク(ユーザーの追加、パッケージのインストール、サーバー構成の更新など)を実行します。

Puppet Enterpriseは、オーケストレーション機能、Webコンソール、および専門的なサポートをオープンソースのPuppetに追加します。これにより、インフラストラクチャ全体で自動化を幅広く深く拡張し、コンプライアンスを維持できます。Puppet Discoveryは、従来のインフラストラクチャ、クラウドネイティブリソース、およびコンテナを検出し、それらを管理下に置くことができます。

Puppet devops

Puppet Pipelinesは、継続的インテグレーション/継続的デリバリープラットフォームであり、ホステッドサービスおよびオンプレミスインストールとして利用できます。パイプラインには、アプリケーション用とKubernetesを使用したコンテナ用の2つの異なるバージョンがあります。

エージェントレスのPuppetTasks機能を使用すると、エージェントを使用したモデル駆動型の自動化とは対照的に、アドホックタスクを実行できます。タスクには、オープンソースのPuppetBoltとPuppetEnterprise TaskManagementの2種類があります。Boltは小規模なインフラストラクチャを対象としていますが、PuppetEnterpriseのコンポーネントであるEnterpriseTask Managementは、役割ベースのアクセス制御、監査証跡、およびチーム指向のワークフローを必要とする大規模なインフラストラクチャを対象としています。

Puppet Container Registry(以前のDistelli Europa)は、無料、プレミアム(またはチーム)、およびエンタープライズバージョンで提供され、Dockerコンテナーのローカルレジストリとリモートレジストリの統合ビューを提供します。プレミアムバージョンでは、マルチユーザーサポートとアクセス制御が追加されています。エンタープライズバージョンでは、シングルサインオンが追加されます。

パペットフォージ

Puppet Forgeは、オープンソースのPuppetおよびPuppetEnterprise用のモジュールのリポジトリです。現在、5,500を超えるビルド済みモジュールが含まれています。一部のモジュールにはPuppetタスクがありますが、すべてではありません。一部のモジュールは、Puppet Enterpriseの一部としてPuppetによってテストおよびサポートされており、一部はPuppetによってのみ承認されています。

各モジュールには、独自の前提条件とインストール手順があります。「ここでドラゴンになってください」とは言いませんが、モジュールのインストールは、最近のWindowsでかなりうまく機能しているにもかかわらず、PuppetがLinux / Unixシステム管理者向けのツールとしてそのルーツを偽装しようとさえしない領域の1つであると言えます。 (マスターを除く)。

Puppet Enterprise

Puppet Enterpriseは、モデル駆動型の構成アプローチと必須のタスク実行を組み合わせた統合プラットフォームであるため、ハイブリッドインフラストラクチャを管理できます。バージョン管理、コードレビュー、自動テスト、継続的インテグレーション、自動展開などのDevOpsプラクティスをサポートします。 Puppetを使用して、ワークロードをクラウド、コンテナー、およびハイブリッドクラウドに移行することもできます。 Puppetを使用すると、構成の目的の状態を適用し、予期しない変更を自動的に修正し、アドホックタスクを自動化できます。

Puppet Enterpriseは、セキュリティポリシーを継続的に実施し、コンプライアンスを証明することで、セキュリティの設定ミスや監査の失敗に関連するリスクを軽減するのに役立ちます。基本的に、Puppet Masterは30分ごとにカタログをクライアントに自動的に送信(プッシュ)し、クライアントのPuppetエージェントはそのカタログを既存の構成に関する事実と比較し、必要に応じて変更を適用します。次に、エージェントはステータスレポートをマスターに返します。マスターは、全体的なコンプライアンスレポートを生成できます。セキュリティとコンプライアンスは、個別のコンポーネントではなく、Puppetのコア構成管理の一部として処理されます。

雲の中の人形

Puppet Enterpriseは、主要なクラウドサービスプロバイダーであるAmazon、Microsoft、VMware、およびGoogleと統合されています。これにより、コンピューティング、ストレージ、およびネットワークリソースの管理を合理化し、異種環境全体でワークロードを拡張できます。この機能は主にクラウド固有のモジュールにあります。たとえば、puppetlabs / awsモジュールは、AWS APIへのインターフェースを提供し、インスタンスをプロビジョニングするだけでなく、AWSインフラストラクチャ全体を記述し、異なる間の関係をモデル化することもできます。コンポーネント。

Puppet Enterpriseは現在、サーバーレス機能をサポートしていません。ポートフォリオの別の部分であるPuppetPipelinesは、サーバーレス機能を含めることができる開発者アプリコードのリリースライフサイクルを管理するためのツールです。

Puppet開発キット

Puppetを使用すると、独自のモジュールを作成できるため、詳細なカスタム開発が可能になります。新しいモジュールの生成を容易にする開発キットを提供し、古いモジュールをPup​​pet Development Kit(PDK)と互換性のあるものに変換することも可能になりました。PDKには、テストツール、完全なモジュールテンプレート(YAML、Ruby、埋め込みRubyファイルなど)、およびPuppetモジュールでのテストの作成、検証、実行に役立つコマンドラインツールが含まれています。

Puppetのインストールとセットアップ

Puppet Enterpriseを実際にインストールする主な方法は2つあります。AWSOpsWorksを使用する方法と、オンプレミスまたは1つ以上のクラウドインスタンスに自分でダウンロードしてインストールする方法です。(最大10ノードの管理は無料です。)これらのインストールのいずれかを試す前に、Puppet LearningVMまたは以下に示すオンラインPuppetエミュレーターを使用してPuppetを学習することをお勧めします。

マネージドサービスであるAWSOpsWorks for Puppet Enterpriseを使用すると、完全に構成されたPuppetマスターをAWSで20分以内に稼働させることができます。 OpsWorksは、独自のPuppetインフラストラクチャを管理できないまたは管理したくない小規模なチームやショップに適しています。

AWS OpsWorks for Puppet Enterpriseインスタンスを作成するための基本的な手順は、AWS CLI、Git、およびPuppetEnterpriseクライアントツールをダウンロードしてインストールすることから始まります。 SSHキーを作成し、SSHキーを使用してGitHubアカウントを設定し、AWSコンソールにサインインして、OpsWorksサービスに移動し、[Create PuppetEnterpriseserver]をクリックします。サーバーに短い名前を付け、リージョンを選択して、c4.largeインスタンスタイプを選択します。次のページで、SSHキーを使用していないと言い(AWSの場合-これはGitHub SSHキーとは関係ありません)、GitHubコントロールリポジトリへのリンクを提供します。詳細設定ページでデフォルトを受け入れ、サーバーインスタンスを起動し、インスタンスの初期化が完了する前に資格情報とスターターキットの両方をダウンロードします。必要なものの残りはスターターキットにあります、ただし、この時点で、独自の構成を実施している作業マスターがすでに存在します。

Puppet Enterpriseを自分でインストールすることは、はるかに長く複雑な操作であり、Puppetが新しいバージョンをリリースするたびにアップグレードを実行するように設定します。一方、すでに所有しているサーバーリソースを利用することもできます。

適切なtarballをダウンロードしてフィンガープリントを確認した後、RHEL、Ubuntu LTS、またはSuseLinuxシステムにWebベースまたはテキストベースのインストーラーを使用してPuppetEnterpriseをインストールできます。リンクを取得するには、メールアドレスを入力する必要があります。Webベースのモノラル(1つのノード上のすべて)のインストールから始めて、すべてのデフォルトを使用することをお勧めします。後でいつでもアップグレードできます。新しいLinuxシステムイメージから始めると、ほとんどの問題を回避できます。たとえば、事前にPostgreSQLをインストールすることで「助け」をしないでください。

費用:オープンソースの人形:無料。Puppet Enterprise:10ノード無料、120ドル/ノード/年最大500ノード(標準サポート付き)。PuppetDiscoveryは現在テクニカルプレビュー中です。Puppet Pipelines:5ノード無料、月額$ 29.99、最大100ノード(標準サポート付き)。

プラットフォーム:マスター:Red Hat、SUSE、またはUbuntuLinux。エージェント:Linux、Windows Vista以降、MacOS 10.10以降、Solaris10または11。クラウドマスターはAWSOpsWorks for PuppetEnterpriseとして利用できます。