人偶 class 与 class dsdfsfd {} 和 class { 'dsdfsfd' }
puppet class with class dsdfsfd {} and class { 'dsdfsfd' }
我希望这是一个非常简单的问题,我正在使用 vagrant,在我的 puppet 文件中我有以下内容
class iptables {
package { "iptables":
ensure => present
}
service { "iptables":
require => Package["iptables"],
hasstatus => true,
status => "true",
hasrestart => false,
}
file { "/etc/sysconfig/iptables":
owner => "root",
group => "root",
mode => 600,
replace => true,
ensure => present,
source => "/vagrant/files/iptables.txt",
require => Package["iptables"],
notify => Service["iptables"],
}
}
class { 'iptables': }
现在我的问题是 class iptables {}
和 class { 'iptables': }
之间有什么不同,或者是否需要一个接一个地来?
提前致谢
符号顺序无关紧要。
class { 'iptables': }
只是另一种方式或写作
include iptables
后者通常是首选。
请查看有关 include 函数的说明。
使用 include
和 class
创建实例之间有一个重要区别。
考虑以下示例:
例如 1:
include some_class
include some_class # no additional effect; the class is only declared once
例如2:
class { "some_class": }
class { "some_class": } # this will not compile !
当您尝试重用人偶配置时,通过 include
创建实例变得尤为重要。例如,您定义了 node1
和 node2
,它们都创建了 class some_class
的实例。接下来,您要创建包含两个节点的 single_node
。
例如single_node.pp
清单:
include node1
include node2
如果 some_class
是由 class{ 'some_class': }
声明的,则会产生冲突,清单将无法编译。另一方面,使用 include some_class
,清单将编译,没有任何 "already defined" 错误。
在我看来,使用 include
超出了推荐范围。
我希望这是一个非常简单的问题,我正在使用 vagrant,在我的 puppet 文件中我有以下内容
class iptables {
package { "iptables":
ensure => present
}
service { "iptables":
require => Package["iptables"],
hasstatus => true,
status => "true",
hasrestart => false,
}
file { "/etc/sysconfig/iptables":
owner => "root",
group => "root",
mode => 600,
replace => true,
ensure => present,
source => "/vagrant/files/iptables.txt",
require => Package["iptables"],
notify => Service["iptables"],
}
}
class { 'iptables': }
现在我的问题是 class iptables {}
和 class { 'iptables': }
之间有什么不同,或者是否需要一个接一个地来?
提前致谢
符号顺序无关紧要。
class { 'iptables': }
只是另一种方式或写作
include iptables
后者通常是首选。
请查看有关 include 函数的说明。
使用 include
和 class
创建实例之间有一个重要区别。
考虑以下示例:
例如 1:
include some_class
include some_class # no additional effect; the class is only declared once
例如2:
class { "some_class": }
class { "some_class": } # this will not compile !
当您尝试重用人偶配置时,通过 include
创建实例变得尤为重要。例如,您定义了 node1
和 node2
,它们都创建了 class some_class
的实例。接下来,您要创建包含两个节点的 single_node
。
例如single_node.pp
清单:
include node1
include node2
如果 some_class
是由 class{ 'some_class': }
声明的,则会产生冲突,清单将无法编译。另一方面,使用 include some_class
,清单将编译,没有任何 "already defined" 错误。
在我看来,使用 include
超出了推荐范围。