人偶 class 语法说明
puppet class syntax clarification
目前正在尝试理解另一个人编写的 puppet 清单,并在 class 中遇到以下构造:
postgres_helper::tablespace_grant { $tablespace_grants:
privilege => 'all',
require => [Postgresql::Server::Role[$rolename]]
}
在这种情况下,$tablespace_grants: 是什么意思?首先我建议这是某种标题,但是当我使用通知接收它的值时,它是散列:
Tablespace_grants value is [{name => TS_INDEX_01, role => developer},
{name => TS_DATA01_01, role => developer}]
what does $tablespace_grants: means in this case? First i suggested
that is some kind of a title,
它是一个变量引用,是的,用作 postgres_helper::tablespace_grant
资源声明的标题。
however when i used notice to receive
the value of it, it is hash:
Tablespace_grants value is [{name => TS_INDEX_01, role => developer},
{name => TS_DATA01_01, role => developer}]
实际上,它似乎是一个 数组 哈希。数组可以用作资源声明的标题,以紧凑地声明多个资源,每个资源对应一个数组元素。然而,在 Puppet 4 中,the elements are required to be strings。早期版本的 Puppet 会将哈希字符串化为资源标题;我不确定 Puppet 4 是否仍然依赖于此。
无论如何,在任何版本的 Puppet 中,总体声明不太可能符合其原始作者的意图。看起来意图是声明多个资源,每个资源都具有由其中一个哈希值指定的属性,但给定的代码无法实现这一点,并且不清楚所需的代码到底是什么。
目前正在尝试理解另一个人编写的 puppet 清单,并在 class 中遇到以下构造:
postgres_helper::tablespace_grant { $tablespace_grants:
privilege => 'all',
require => [Postgresql::Server::Role[$rolename]]
}
在这种情况下,$tablespace_grants: 是什么意思?首先我建议这是某种标题,但是当我使用通知接收它的值时,它是散列:
Tablespace_grants value is [{name => TS_INDEX_01, role => developer}, {name => TS_DATA01_01, role => developer}]
what does $tablespace_grants: means in this case? First i suggested that is some kind of a title,
它是一个变量引用,是的,用作 postgres_helper::tablespace_grant
资源声明的标题。
however when i used notice to receive the value of it, it is hash:
Tablespace_grants value is [{name => TS_INDEX_01, role => developer}, {name => TS_DATA01_01, role => developer}]
实际上,它似乎是一个 数组 哈希。数组可以用作资源声明的标题,以紧凑地声明多个资源,每个资源对应一个数组元素。然而,在 Puppet 4 中,the elements are required to be strings。早期版本的 Puppet 会将哈希字符串化为资源标题;我不确定 Puppet 4 是否仍然依赖于此。
无论如何,在任何版本的 Puppet 中,总体声明不太可能符合其原始作者的意图。看起来意图是声明多个资源,每个资源都具有由其中一个哈希值指定的属性,但给定的代码无法实现这一点,并且不清楚所需的代码到底是什么。