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

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.

主站蜘蛛池模板: 富顺县| 潞西市| 惠来县| 徐汇区| 贵定县| 石柱| 克什克腾旗| 靖西县| 和龙市| 平果县| 金阳县| 萨嘎县| 江孜县| 六盘水市| 江川县| 梓潼县| 班戈县| 镇原县| 图木舒克市| 四平市| 法库县| 嘉义市| 登封市| 虹口区| 德钦县| 蒲城县| 蒲城县| 光山县| 曲周县| 什邡市| 玉环县| 安康市| 青冈县| 班玛县| 巴彦淖尔市| 崇礼县| 进贤县| 文昌市| 台中市| 阜阳市| 武宁县|