Puppet-type-provider
Puppet-タイプとプロバイダー
Puppetタイプは、個々の構成管理に使用されます。 Puppetには、サービスタイプ、パッケージタイプ、プロバイダータイプなどのさまざまなタイプがあります。 各タイプにはプロバイダーがあります。 プロバイダーは、さまざまなプラットフォームまたはツールで構成を処理します。 たとえば、パッケージタイプにはaptitude、yum、rpm、およびDGMプロバイダーがあります。 多くのタイプがあり、Puppetは管理が必要な優れたスペクトル構成管理項目をカバーしています。
Puppetはベース言語としてRubyを使用します。 存在するすべてのPuppetタイプおよびプロバイダーは、Ruby言語で記述されています。 標準のエンコード形式に従っているため、リポジトリを管理するリポジトリの例に示すように単純に作成できます。 ここでは、タイプリポジトリとプロバイダーのsvnとgitを作成します。 リポジトリタイプの最初の部分は、タイプ自体です。 タイプは通常lib/puppet/typeに保存されます。 このために、 repo.rb というファイルを作成します。
ファイルに次のコンテンツを追加します。
- 上記のスクリプトでは、repoという名前の新しいタイプを作成するブロック「 *Puppet
- Type.newtype(:repo)do* 」を作成しました。 次に、追加したい詳細のレベルを追加するのに役立つ@docがあります。 次のステートメントはEnsurableです。基本的なensureプロパティを作成します。 Puppetタイプは、 ensure プロパティを使用して構成アイテムの状態を判断します。
例
ensureステートメントは、Puppetに対して、作成、破棄、およびプロバイダ内に存在する3つのメソッド以外を指示します。 これらの方法は、次の機能を提供します-
- リソースを作成するコマンド
- リソースを削除するコマンド
- リソースの存在を確認するコマンド
その後、これらのメソッドとそのコンテンツを指定するだけです。 Puppetは、それらの周りにサポートインフラストラクチャを作成します。
次に、sourceという新しいパラメーターを定義します。
ソースは、ソースリポジトリを取得/クローン/チェックアウトする場所をリポジトリタイプに通知します。 これでは、validateと呼ばれるフックも使用しています。 プロバイダーセクションでは、定義したリポジトリの有効性をチェックするgitとsvnを定義しました。
最後に、コードでパスと呼ばれるもう1つのパラメーターを定義しました。
これは、取得される新しいコードを配置する場所を指定する値タイプです。 ここでも、validateフックを使用して、適切性の値をチェックするブロックを作成します。
Subversionプロバイダーの使用例
上記で作成したタイプを使用して、Subversionプロバイダーから始めましょう。
上記のコードでは、 fileutils ライブラリが必要であり、メソッドを使用する 'fileutils' が必要であると事前に定義されています。
- 次に、プロバイダーをブロックPuppet
- Type.type(:repo).provide(:svn)doとして定義しました。これは、これがレポと呼ばれるタイプのプロバイダーであることをPuppetに伝えます。
次に、プロバイダーにドキュメントを追加できる desc を追加しました。 このプロバイダーが使用するコマンドも定義しました。 次の行では、作成、削除、存在などのリソースの機能を確認しています。
リソースを作成する
上記のすべてが完了したら、次のコードに示すように、クラスとマニフェストファイルで使用されるリソースを作成します。