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

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.

主站蜘蛛池模板: 罗田县| 旺苍县| 临湘市| 米脂县| 贺兰县| 昌吉市| 沁源县| 香港| 安国市| 江达县| 新建县| 友谊县| 象州县| 福清市| 道真| 上杭县| 出国| 柳江县| 台州市| 正安县| 怀安县| 武汉市| 河曲县| 临沭县| 西昌市| 武邑县| 措美县| 利津县| 加查县| 玉树县| 东乌珠穆沁旗| 彭山县| 关岭| 米泉市| 汉中市| 金秀| 苗栗县| 铁岭市| 通许县| 威海市| 凤台县|