Puppet-機能

Puppetの基本開発言語はRubyであるため、Puppetは他のプログラミング言語と同様に関数をサポートします。の名前で知られている2種類の関数をサポートしていますstatement そして rvalue 関数。

  • Statements自立しており、戻り値の型はありません。これらは、新しいマニフェストファイルに他のPuppetモジュールをインポートするなどのスタンドアロンタスクを実行するために使用されます。

  • Rvalue 値を返し、代入やcaseステートメントなど、ステートメントに値が必要な場合にのみ使用できます。

Puppetでの関数の実行の背後にある鍵は、Puppetマスターでのみ実行され、クライアントまたはPuppetエージェントでは実行されないことです。したがって、Puppetマスターで使用可能なコマンドとデータにのみアクセスできます。すでに存在するさまざまな種類の関数があり、ユーザーでさえ、要件に応じてカスタム関数を作成する特権を持っています。いくつかの組み込み関数を以下に示します。

ファイル機能

ファイルリソースのファイル機能は、Puppetにモジュールをロードし、目的の出力を文字列の形式で返すことです。探す引数は、<モジュール名> / <ファイル>参照です。これは、Puppetモジュールのファイルディレクトリからモジュールをロードするのに役立ちます。

script / tesingscript.shのように、<モジュール名> /script/files/testingscript.shからファイルをロードします。関数には、絶対パスを読み取って受け入れる機能があり、ディスク上のどこからでもファイルをロードするのに役立ちます。

インクルード機能

Puppetでは、include関数は他のプログラミング言語のinclude関数と非常によく似ています。これは、1つ以上のクラスの宣言に使用されます。これにより、それらのクラス内に存在するすべてのリソースが評価され、最終的にカタログに追加されます。それが機能する方法は、include関数がクラス名、クラスのリスト、またはクラス名のコンマ区切りのリストを受け入れることです。

を使用する際に留意すべき1つのこと includeステートメントは、クラス内で複数回使用できますが、1つのクラスを1回だけ含めるという制限があります。インクルードされたクラスがパラメーターを受け入れる場合、インクルード関数は、ルックアップキーとして<クラス名> :: <パラメーター名>を使用してそれらの値を自動的にルックアップします。

Include関数は、宣言されたときにクラスがクラスに含まれることを引き起こしません。そのため、含まれる関数を使用する必要があります。宣言されたクラスとそれを取り巻くクラスに依存関係を作成することさえありません。

インクルード関数では、クラスのフルネームのみが許可され、相対名は許可されません。

定義された関数

Puppetでは、定義された関数は、特定のクラスまたはリソースタイプが定義されている場所を判別するのに役立ち、ブール値を返すかどうかを決定します。また、defineを使用して、特定のリソースが定義されているか、定義された変数に値があるかを判別することもできます。定義された関数を使用する際に留意すべき重要な点は、この関数は少なくとも1つの文字列引数を取ります。これは、クラス名、型名、リソース参照、または「$ name」形式の変数参照です。

モジュールによって提供されるタイプを含む、ネイティブ関数タイプと定義済み関数タイプの両方の関数チェックを定義します。タイプとクラスは名前で照合されます。この関数は、リソース参照を使用してリソースの減速を照合します。

関数の一致を定義する

# Matching resource types 
defined("file") 
defined("customtype")  

# Matching defines and classes 
defined("testing") 
defined("testing::java")  

# Matching variables 
defined('$name')  

# Matching declared resources 
defined(File['/tmp/file'])