📜  Puppet-功能

📅  最后修改于: 2020-10-31 14:10:03             🧑  作者: Mango


由于Puppet的基本开发语言是Ruby,因此Puppet支持任何其他编程语言的功能。它支持两种类型的函数,这些函数以statementrvalue函数的名称命名。

  • 语句独立存在,没有任何返回类型。它们用于执行独立任务,例如在新清单文件中导入其他Puppet模块。

  • Rvalue返回值,并且只能在语句需要值(例如赋值或case语句)时使用。

在Puppet中执行函数背后的关键是,它仅在Puppet主服务器上执行,而不在客户端或Puppet代理上执行。因此,他们只能访问Puppet主服务器上可用的命令和数据。已经存在不同类型的功能,甚至用户也有权根据要求创建自定义功能。下面列出了一些内置函数。

文件功能

文件资源的文件函数是在Puppet中加载模块,并以字符串形式返回所需的输出。它寻找的参数是<模块名称> / <文件>引用,它有助于从Puppet模块的文件目录中加载模块。

像script / tesingscript.sh一样,它将从<模块名称> /script/files/testingscript.sh加载文件。函数具有读取和接受绝对路径的功能,这有助于从磁盘上的任何位置加载文件。

包含功能

在木偶,include函数是非常相似的包括其他编程语言的函数。它用于声明一个或多个类,从而评估这些类中存在的所有资源,最后将它们添加到目录中。它的工作方式是,include函数接受类名称,类列表或逗号分隔的类名称列表。

使用include语句时要记住的一件事是,它可以在一个类中多次使用,但仅限于只包含一个类一次的限制。如果包含的类接受参数,则include函数将使用 :: 作为查找键为它们自动查找值。

包含函数不会导致在声明类时将其包含在类中,因为我们需要使用一个包含函数。它甚至不会在声明的类及其周围的类中创建依赖项。

在include函数,仅允许使用类的全名,而不允许使用相对名。

定义功能

在Puppet中,已定义的函数有助于确定在哪里定义了给定的类或资源类型,并且是否返回布尔值。还可以使用define来确定是定义了特定资源还是定义的变量具有值。使用定义的函数时要记住的关键是,该函数至少需要一个字符串参数,该参数可以是类名,类型名,资源引用或形式为“ $ 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'])