Puppet-function

提供:Dev Guides
移動先:案内検索

パペット-機能

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

  • Statements は独立しており、戻り値の型はありません。 これらは、新しいマニフェストファイルに他のPuppetモジュールをインポートするなどのスタンドアロンタスクを実行するために使用されます。
  • Rvalue は値を返すため、割り当てやcaseステートメントなど、ステートメントに値が必要な場合にのみ使用できます。

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

ファイル機能

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

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

機能を含める

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

include ステートメントを使用する際に留意すべきことの1つは、1つのクラスで複数回使用できますが、1つのクラスを1回しか含めることができないという制限があります。 含まれるクラスがパラメーターを受け入れる場合、include関数は、<class name>
<parameter name>を検索キーとして使用して、それらの値を自動的に検索します。

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

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

定義済み関数

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'])