官术网_书友最值得收藏!

Variable types

As of Puppet 3.x, there are only four variable types: strings, arrays, hashes, and Booleans. Puppet 4 introduces a rich data type system. The new data type system will be explained at the end of, Chapter 7, New Features from Puppet 4 and 5. The basic variable types work much like their respective counterparts in other languages. Depending on your background, you might be familiar with using associative arrays or dictionaries as semantic equivalents to Puppet's hash type:

$a_bool = true
$a_string = 'This is a string value'
$an_array = [ 'This', 'forms', 'an', 'array' ]
$a_hash = {
'subject' => 'Hashes',
'predicate' => 'are written',
'object' => 'like this',
'note' => 'not actual grammar!',
'also note' => [ 'nesting is',
{ 'allowed' => ' of course' } ],
}

Accessing the values is equally simple. Note that the hash syntax is similar to that of Ruby, not Perl:

$x = $a_string
$y = $an_array[1]
$z = $a_hash['object']

Strings can be used as resource attribute values, but it's worth noting that a resource title can also be a variable reference:

package { $apache_package:
ensure => 'installed'
}

It's intuitively clear what a string value means in this context. But you can also pass arrays here to declare a whole set of resources in one statement. The following manifest manages three packages, making sure that they are all installed:

$packages = [
'apache2',
'libapache2-mod-php5',
'libapache2-mod-passenger',
]
package { $packages:
ensure => 'installed'
}

You will learn how to make efficient use of hash values in later chapters.

The array does not need to be stored in a variable to be used, but it is a good practice in some cases.

主站蜘蛛池模板: 宾川县| 临沧市| 嘉禾县| 德州市| 山阴县| 宁陕县| 赤壁市| 海兴县| 汝南县| 静宁县| 永康市| 巴中市| 泽普县| 繁峙县| 扬州市| 沅江市| 喀什市| 宁城县| 重庆市| 响水县| 麻城市| 留坝县| 尼勒克县| 吴忠市| 麦盖提县| 杭锦后旗| 化德县| 城口县| 菏泽市| 陈巴尔虎旗| 曲阜市| 南澳县| 虹口区| 新闻| 张北县| 体育| 阳信县| 喀什市| 新安县| 两当县| 东安县|