本文概述
- 定义类
- 声明类
- 参数化类别
类在Puppet模块内部的清单文件中描述。使用类的主要原因是为了减少任何清单文件或其他p代码中相同代码的重复。
定义类在使用类之前, 我们必须定义它, 这是通过class关键字, 类的名称, 花括号和一组代码来完成的。代码的这一部分不会自动评估代码。
语法如下:
class my_class {
... puppet code ...
}
声明类类的声明部分评估该类中的代码并应用其所有资源。代码的这一部分实际上做了一些事情。
语法如下:
class my_class {
... puppet code ...
}
include my_class
class unix {
file {
'/etc/passwd':
owner =>
'superuser', group =>
'superuser', mode =>
644;
'/etc/shadow':
owner =>
'nikita', group =>
'nikita', mode =>
440;
}
}
让我们看另一个与上面的示例相似的简单示例:
class unix {
file {
'/etc/passwd':
owner =>
'superuser', group =>
'superuser', mode =>
644;
}file {'/etc/shadow':
owner =>
'nikita', group =>
'nikita', mode =>
440;
}
}
参数化类别参数用于允许类请求外部数据。如果某个类必须将其自身配置为事实以外的数据, 则通常将通过参数将数据插入该类中。
让我们看一个例子:
class windows_ntp (
String $server = 'time.windows.com', ) {
registry::value { 'NtpServer':
key=>
'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters', data =http://www.srcmini.com/>"${server}, 0x9", }
service { 'w32time':
ensure =>
running, enable =>
true, }
}
【Puppet类用法示例】在上面的示例中, 我们创建了一个Windows_ntp类, 该类将注册表资源和服务资源分组在一起以配置Windows时间服务。 windows_ntp类接受时间服务器地址作为名为$ server的参数。
推荐阅读
- Puppet编码样式
- 处理新SSH开发环境搭建扫描mapper文件的主要配置
- 搜狗地图下载|搜狗地图app下载
- .NET跨平台开发之Xamarin.Android介绍与生命周期
- Android-sqlite-SQL语句大全
- 康皱共享美肤APP软件
- 民萌app下载|民萌app最新版下载
- [转]Android限制只能在主线程中进行UI访问的实现原理
- Android-startService后台运行