Puppetチュートリアル–構成管理のためのワンストップソリューション



Puppetチュートリアルは、Puppetブログシリーズの2番目のブログです。 Puppetのアーキテクチャ、コンポーネント、およびPuppetを使用してmysqlとphpをデプロイする例について説明します。

Puppetチュートリアル

Puppetチュートリアルは、Puppetブログシリーズの2番目のブログです。以前のブログを読んでいただければ幸いです。 Puppetとは 」では、構成管理と、ユースケースの助けを借りてそれが重要である理由を説明しています。

このPuppetチュートリアルでは、次のトピックについて説明します。





構成管理とは何ですか?

私の中で 前のブログ 構成管理と、それが克服するのに役立つ課題について紹介しました。このPuppetチュートリアルでは、構成管理のさまざまな相互依存アクティビティについて説明します。しかしその前に、私たちは何であるかを理解しましょう 構成項目 (CI)。構成アイテムは、サービスを正常に提供するために管理する必要のあるサービスコンポーネント、インフラストラクチャ要素、またはその他のアイテムです。 CIの例には、個々の要件ドキュメント、ソフトウェア、モデル、および計画が含まれます。



構成管理は、次の要素で構成されています。

  • 構成の識別
  • 変更管理
  • 構成ステータスアカウンティング
  • 構成監査

次の図は、これらのコンポーネントを説明しています。

構成管理コンポーネント-Puppetチュートリアル-Edureka



構成の識別: それは次のプロセスです:

  • 一意の識別子を使用したソフトウェアおよびハードウェア構成アイテムのラベル付け
  • 構成アイテムを説明するドキュメントを特定する
  • 関連する構成アイテムをベースラインにグループ化する
  • 構成アイテムとベースラインのリビジョンにラベルを付けます。

変更管理: これは、組織と個人の両方の観点から変化に対処するための体系的なアプローチです。

構成ステータスアカウンティング: それ 構成アイテムの説明(ハードウェア、ソフトウェア、ファームウェアなど)を記録および報告するプロセスと、設計および製造中のベースラインからのすべての逸脱が含まれます。問題が疑われる場合は、ベースライン構成と承認された変更の検証を迅速に決定できます。

構成監査: 構成監査は、システムの現在の状態が最新のベースラインおよびドキュメントとどの程度一致しているかを判断するためのメカニズムを提供します。基本的に、配信される製品が宣伝、宣伝、または顧客に約束されたとおりに機能することを確認するための正式なレビューです。品質監査およびテストの結果として利用可能な情報を構成ステータスアカウンティング情報とともに使用して、必要なものが構築されていることを保証します。

ユースケースを使用して構成管理を理解しましょう。特定のソフトウェアを更新する必要がある場合、またはそれを置き換える必要がある場合を想定します。その場合、構成管理を成功させるには、以下のフローチャートに従う必要があります。

今がPuppetアーキテクチャを理解する正しい時期です。

Puppetチュートリアル–のアーキテクチャ 傀儡

Puppetはマスタースレーブアーキテクチャを使用しています。次の図は同じことを示しています。

上の画像では、次の機能が実行されています。

  • PuppetAgentはファクトをPuppetMasterに送信します。事実は基本的にIPアドレス、稼働時間、オペレーティングシステム、仮想マシンかどうかなど、スレーブ状態のある側面を表すキーと値のデータペア。事実については、ブログの後半で詳しく説明します。
  • Puppet Masterは、ファクトを使用して、スレーブの構成方法を定義するカタログをコンパイルします。カタログPuppetMasterがスレーブ上で管理する各リソースの望ましい状態を説明するドキュメントです。カタログとリソースについては後で詳しく説明します。
  • Puppet Slaveは、構成が完了したことをマスターに報告します。これは、Puppetダッシュボードに表示されます。

Puppetの深い理解については、このPuppetチュートリアルビデオをチェックしてください。

初心者のためのPuppetチュートリアル| DevOpsトレーニング|エドゥレカ

Puppetチュートリアル–Puppetマスターとスレーブの通信

操り人形マスターとスレーブはを介して通信しますSSLの助けを借りて安全な暗号化されたチャネル。次の図は同じことを示しています。

上の画像からわかるように:

  • PuppetSlaveはPuppetMaster証明書を要求します。
  • Puppet Master証明書を受け取った後、Masterはスレーブ証明書を要求します。
  • マスターがスレーブ証明書に署名すると、スレーブは構成/データを要求します。
  • 最後に、PuppetMasterは設定をPuppetSlaveに送信します。

ここで、さまざまなPuppetコンポーネントを見てみましょう。

Puppetチュートリアル–のコンポーネント 傀儡

マニフェスト: すべてのスレーブは、ネイティブのPuppet言語で記述されたPuppetMasterで構成の詳細を取得しています。これらの詳細は、Puppetが理解できる言語で書かれており、マニフェストと呼ばれます。それらはPuppetコードで構成され、ファイル名は .pp 拡張。これらは基本的にPuppetプログラムです。
例:ファイルを作成し、Puppetマスターに接続されているすべてのPuppetスレーブにApacheサーバーをインストールするマニフェストをPuppetマスターに作成できます。

モジュール: Puppet Moduleは、マニフェストとデータ(ファクト、ファイル、テンプレートなど)のコレクションであり、特定のディレクトリ構造を持っています。モジュールを使用すると、コードを複数のマニフェストに分割できるため、Puppetコードを整理するのに役立ちます。モジュールは、コードとデータの自己完結型のバンドルです。

資源: リソースは、システム構成をモデル化するための基本的な単位です。各リソースは、特定のサービスやパッケージなど、システムのいくつかの側面を記述します。

事実: Facterは、ハードウェアの詳細、ネットワーク設定、OSの種類とバージョン、IPアドレス、MACアドレス、SSHキーなど、Puppet Slaveに関する基本情報(事実)を収集します。これらの事実は、PuppetMasterのマニフェストで変数として利用できるようになります。

Mcollective: これは、複数のスレーブで複数のジョブを並行して実行できるようにするフレームワークです。次のようなさまざまな機能を実行します。

  • 小グループであろうと非常に大規模な展開であろうと、スレーブのクラスターと対話します。
  • ブロードキャストパラダイムを使用してリクエストを配信します。すべてのスレーブはすべてのリクエストを同時に受信し、リクエストにはフィルターがアタッチされ、フィルターに一致するスレーブのみがリクエストに対応します。
  • 簡単なコマンドラインツールを使用して、リモートスレーブを呼び出します。
  • インフラストラクチャに関するカスタムレポートを作成します。

カタログ: カタログには、スレーブ上の各管理対象リソースの望ましい状態が記述されています。これは、Puppet Masterが特定のスレーブに適用するすべてのリソースと、それらのリソース間の関係をまとめたものです。カタログは、マニフェストとスレーブが提供するデータ(ファクト、証明書、提供されている場合は環境など)、およびオプションの外部データ(外部スレーブ分類子からのデータ、エクスポートされたリソースなど)からPuppetMasterによってコンパイルされます。および機能)。次に、マスターは、要求に応じて、コンパイルされたカタログをスレーブに提供します。

このPuppetチュートリアルでは、次のセクションでハンズオンに焦点を当てます。

Puppetチュートリアル–ハンズオン

MySQLとPHPをPuppetMasterからPuppetSlaveにデプロイする方法を紹介します。デモンストレーションの目的で1つのスレーブのみを使用していますが、1つのマスターに数百のスレーブが接続されている可能性があります。 PHPとMySQLをデプロイするために、forge.puppet.comで入手可能な事前定義されたモジュールを使用します。独自のモジュールを作成することもできます。

ステップ1: Puppet Masterで、MySQLおよびPHPモジュールをインストールします。

これを実行します:

1)puppetモジュールはpuppetlabs-mysql –version3.10.0をインストールします

このMySQLモジュールは、MySQLサービスをインストール、構成、および管理します。このモジュールは、MySQLのインストールと構成の両方を管理し、データベース、ユーザー、助成金などのMySQLリソースの管理を可能にするためにPuppetを拡張します。

Javaで文字列を日付に変換する

2)puppetモジュールのインストールmayflower-php –バージョン4.0.0-beta1

このモジュールは、PHP、特にphp-fpmの管理に使用されます。 PHP-FPM(FastCGI Process Manager)は、あらゆるサイズのサイト、特に忙しいサイトに役立ついくつかの追加機能を備えた、代替のPHPFastCGI実装です。

ステップ2: Puppetマニフェストには、MySQLサーバーとPHPが含まれます。

これを実行します: vi /etc/puppet/manifests/site.pp

vim、geditなどの他のエディターも使用できます。このsite.ppファイルに以下を追加します。

インクルード ':: mysql :: server'インクルード ':: php'

保存して終了します。

ステップ3: Puppet Slavesは、定期的に(30分ごとに)マスターから構成をプルします。メインマニフェストを評価し、MySQLとPHPのセットアップを指定するモジュールを適用します。すぐに試してみたい場合は、すべてのスレーブノードで次のコマンドを実行する必要があります。

これを実行します: 人形エージェント-t

したがって、MySQLとPHPはスレーブノードに正常にインストールされます。

ステップ4: インストールされているMySQLとPHPのバージョンを確認するには:

これを実行します:

1)mysql -v

2)php -version

おめでとう! MySQlとPHPは、PuppetSlaveで稼働しています。ここでは、スレーブを1つだけ示しましたが、スレーブが数百ある場合を想像してみてください。そのシナリオでは、作業が非常に簡単になります。PuppetMasterで構成を指定するだけで、Puppet Slavesがメインマニフェストを自動的に評価し、MySQLとPHPのセットアップを指定するモジュールを適用します。

これを見つけたら Puppetチュートリアル 関連する、 チェックアウト 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 Edureka DevOps認定トレーニングコースは、学習者がSDLCの複数のステップを自動化するためのPuppet、Jenkins、Nagios、GITなどのさまざまなDevOpsプロセスとツールに関する専門知識を習得するのに役立ちます。