272
|
1 # stdlib
|
|
2
|
|
3 #### 目次
|
|
4
|
|
5 1. [モジュールの説明 - モジュールの機能とその有益性](#モジュールの説明)
|
|
6 1. [セットアップ - stdlib導入の基本](#セットアップ)
|
|
7 1. [使用 - 設定オプションと追加機能](#使用方法)
|
|
8 1. [リファレンス - モジュールの機能と動作について](#参考)
|
|
9 1. [クラス](#クラス)
|
|
10 1. [定義タイプ](#定義タイプ)
|
|
11 1. [データタイプ](#データタイプ)
|
|
12 1. [Facts](#facts)
|
|
13 1. [関数](#関数)
|
|
14 1. [制約 - OS互換性など](#制約)
|
|
15 1. [開発 - モジュール貢献についてのガイド](#開発)
|
|
16 1. [コントリビュータ](#コントリビュータ)
|
|
17
|
|
18
|
|
19 ## モジュールの説明
|
|
20
|
|
21 このモジュールでは、Puppetモジュールリソースの標準ライブラリを提供しています。Puppetモジュールでは、この標準ライブラリを広く使用しています。stdlibモジュールは、以下のリソースをPuppetに追加します。
|
|
22
|
|
23 * ステージ
|
|
24 * Facts
|
|
25 * 関数
|
|
26 * 定義タイプ
|
|
27 * データタイプ
|
|
28 * プロバイダ
|
|
29
|
|
30 > *注:* バージョン3.7のPuppet Enterpriseには、stdlibモジュールが含まれていません。Puppet Enterpriseを使用している場合は、Puppetと互換性のあるstdlibの最新リリースをインストールする必要があります。
|
|
31
|
|
32 ## セットアップ
|
|
33
|
|
34 stdlibモジュールを[インストール](https://docs.puppet.com/puppet/latest/modules_installing.html)し、この標準ライブラリの関数、Facts、リソースをPuppetに追加します。
|
|
35
|
|
36 stdlibに依存するモジュールを記述する場合は、必ずmetadata.jsonで[依存関係を特定](https://docs.puppet.com/puppet/latest/modules_metadata.html#specifying-dependencies)してください。
|
|
37
|
|
38 ## 使用方法
|
|
39
|
|
40 stdlibのほとんどの機能は、Puppetに自動的にロードされます。Puppetで標準化されたランステージを使用するには、`include stdlib`を用いてマニフェスト内でこのクラスを宣言してください。
|
|
41
|
|
42 宣言すると、stdlibがモジュール内の他のすべてのクラスを宣言します。現在モジュールに含まれている他のクラスは、`stdlib::stages`のみです。
|
|
43
|
|
44 `stdlib::stages`クラスは、インフラストラクチャ、言語ランタイム、アプリケーションレイヤの配備に関する各種のランステージを宣言します。ハイレベルステージは、以下のとおりです(順番どおり)。
|
|
45
|
|
46 * setup
|
|
47 * main
|
|
48 * runtime
|
|
49 * setup_infra
|
|
50 * deploy_infra
|
|
51 * setup_app
|
|
52 * deploy_app
|
|
53 * deploy
|
|
54
|
|
55 使用例:
|
|
56
|
|
57 ```puppet
|
|
58 node default {
|
|
59 include stdlib
|
|
60 class { java: stage => 'runtime' }
|
|
61 }
|
|
62 ```
|
|
63
|
|
64 ## 参考
|
|
65
|
|
66 * [パブリッククラス](#パブリッククラス)
|
|
67 * [プライベートクラス](#プライベートクラス)
|
|
68 * [定義タイプ](#定義タイプ)
|
|
69 * [データタイプ](#データタイプ)
|
|
70 * [Facts](#facts)
|
|
71 * [関数](#関数)
|
|
72
|
|
73 ### クラス
|
|
74
|
|
75 #### パブリッククラス
|
|
76
|
|
77 `stdlib`クラスにはパラメータはありません。
|
|
78
|
|
79 #### プライベートクラス
|
|
80
|
|
81 * `stdlib::stages`: Puppetのランステージの標準セットを管理します。
|
|
82
|
|
83 ### 定義タイプ
|
|
84
|
|
85 #### `file_line`
|
|
86
|
|
87 任意の行がファイル内に確実に含まれるようにします。最初と最後の空白を含め、行全体をマッチさせます。その行が与えられたファイルに含まれない場合は、Puppetがファイルの最後にその行を追加し、望ましい状態を確保します。1つのファイル内で複数のリソースを宣言し、複数の行を管理することが可能です。
|
|
88
|
|
89 例:
|
|
90
|
|
91 ```puppet
|
|
92 file_line { 'sudo_rule':
|
|
93 path => '/etc/sudoers',
|
|
94 line => '%sudo ALL=(ALL) ALL',
|
|
95 }
|
|
96
|
|
97 file_line { 'sudo_rule_nopw':
|
|
98 path => '/etc/sudoers',
|
|
99 line => '%sudonopw ALL=(ALL) NOPASSWD: ALL',
|
|
100 }
|
|
101 ```
|
|
102
|
|
103 上の例では、指定された両方の行が、ファイル `/etc/sudoers`に確実に含まれます。
|
|
104
|
|
105 マッチ例:
|
|
106
|
|
107 ```puppet
|
|
108 file_line { 'bashrc_proxy':
|
|
109 ensure => present,
|
|
110 path => '/etc/bashrc',
|
|
111 line => 'export HTTP_PROXY=http://squid.puppetlabs.vm:3128',
|
|
112 match => '^export\ HTTP_PROXY\=',
|
|
113 }
|
|
114 ```
|
|
115
|
|
116 上の例では、`match`により、'export'で始まり'HTTP_PROXY'と続く行が探され、その行が行内の値に置き換えられます。
|
|
117
|
|
118 マッチ例:
|
|
119
|
|
120 ```puppet
|
|
121 file_line { 'bashrc_proxy':
|
|
122 ensure => present,
|
|
123 path => '/etc/bashrc',
|
|
124 line => 'export HTTP_PROXY=http://squid.puppetlabs.vm:3128',
|
|
125 match => '^export\ HTTP_PROXY\=',
|
|
126 append_on_no_match => false,
|
|
127 }
|
|
128 ```
|
|
129
|
|
130 このコードの例では、`match`によってexportで始まり'HTTP_PROXY'が続く行が検索され、その行が行内の値に置き換えられます。マッチするものが見つからない場合、ファイルは変更されません。
|
|
131
|
|
132 `ensure => absent`の例:
|
|
133
|
|
134 `ensure => absent`を設定する場合に、このタイプの動作には2通りがあります。
|
|
135
|
|
136 1つは`match => ...`と`match_for_absence => true`の設定です。`match`により、'export'で始まり'HTTP_PROXY'と続く行が探され、その行が削除されます。複数の行がマッチし、`multiple => true`パラメータが設定されていない場合は、エラーが生じます。
|
|
137
|
|
138 この例で`line => ...`パラメータは承認されますが無視されます。
|
|
139
|
|
140 例:
|
|
141
|
|
142 ```puppet
|
|
143 file_line { 'bashrc_proxy':
|
|
144 ensure => absent,
|
|
145 path => '/etc/bashrc',
|
|
146 match => '^export\ HTTP_PROXY\=',
|
|
147 match_for_absence => true,
|
|
148 }
|
|
149 ```
|
|
150
|
|
151 `ensure => absent`を設定する場合のもう1つの動作は、`line => ...`の指定と一致なしです。行が存在しないことを確認した場合のデフォルトの動作では、マッチするすべての行を削除します。この動作を無効にすることはできません。
|
|
152
|
|
153 例:
|
|
154
|
|
155 ```puppet
|
|
156 file_line { 'bashrc_proxy':
|
|
157 ensure => absent,
|
|
158 path => '/etc/bashrc',
|
|
159 line => 'export HTTP_PROXY=http://squid.puppetlabs.vm:3128',
|
|
160 }
|
|
161 ```
|
|
162
|
|
163
|
|
164 エンコード例:
|
|
165
|
|
166 ```puppet
|
|
167 file_line { "XScreenSaver":
|
|
168 ensure => present,
|
|
169 path => '/root/XScreenSaver'
|
|
170 line => "*lock: 10:00:00",
|
|
171 match => '^*lock:',
|
|
172 encoding => "iso-8859-1",
|
|
173 }
|
|
174 ```
|
|
175
|
|
176 ファイルにUTF-8に対応しない特殊文字が用いられていると、「Invalid byte sequence in UTF-8」(UTF-8で無効なバイト列)というエラーメッセージが表示されます。この場合は、ファイルエンコーディングを決定し、`encoding`属性で指定してください。
|
|
177
|
|
178 **Autorequire:** Puppetが管理しているファイルに、管理対象となる行が含まれている場合は、`file_line`リソースと当該ファイルの暗黙的な依存関係が設定されます。
|
|
179
|
|
180 **パラメータ**
|
|
181
|
|
182 パラメータは、別途説明がない限り、すべてオプションです。
|
|
183
|
|
184 ##### `after`
|
|
185
|
|
186 このパラメータで指定された行の後に、Puppetが正規表現を用いて新規の行を追加します(既存の行が規定の位置に追加されます)。
|
|
187
|
|
188 値: 正規表現を含む文字列
|
|
189
|
|
190 デフォルト値: `undef`。
|
|
191
|
|
192 ##### `encoding`
|
|
193
|
|
194 適正なファイルエンコードを指定します。
|
|
195
|
|
196 値: 有効なRuby文字エンコードを指定する文字列
|
|
197
|
|
198 デフォルト: 'UTF-8'
|
|
199
|
|
200 ##### `ensure`: リソースが存在するかどうかを指定します。
|
|
201
|
|
202 値: 'present'、'absent'
|
|
203
|
|
204 デフォルト値: 'present'。
|
|
205
|
|
206 ##### `line`
|
|
207
|
|
208 **必須**
|
|
209
|
|
210 `path`パラメータにより位置を示されたファイルに追加する行を設定します。
|
|
211
|
|
212 値: 文字列
|
|
213
|
|
214 ##### `match`
|
|
215
|
|
216 ファイル内の既存の行と比較する正規表現を指定します。マッチが見つかった場合、新規の行を追加する代わりに、置き換えられます。
|
|
217
|
|
218 値: 正規表現を含む文字列
|
|
219
|
|
220 デフォルト値: `undef`。
|
|
221
|
|
222
|
|
223 ##### `match_for_absence`
|
|
224
|
|
225 `ensure => absent`の場合にマッチを適用するかどうかを指定します。`true`に設定してマッチを設定すると、マッチする行が削除されます。`false`に設定すると(デフォルト)、`ensure => absent`の場合にマッチが無視され、代わりに`line`の値が使用されます。`ensure => present`になっている場合は、このパラメータは無視されます。
|
|
226
|
|
227 ブーリアン。
|
|
228
|
|
229 デフォルト値: `false`。
|
|
230
|
|
231 ##### `multiple`
|
|
232
|
|
233 `match`および`after`により複数の行を変更できるかどうかを指定します。`false`に設定すると、file_lineは1つの行のみ置き換えることができますが、複数の行を置き換えようとするとエラーが発生します。`true`に設定すると、file_lineは1つまたは複数の行を置き換えることができます。
|
|
234
|
|
235 値: `true`、`false`。
|
|
236
|
|
237 デフォルト値: `false`。
|
|
238
|
|
239
|
|
240 ##### `name`
|
|
241
|
|
242 リソースの名称として使用する名前を指定します。リソースのnamevarをリソースの規定の`title`と異なるものにしたい場合は、`name`で名前を指定します。
|
|
243
|
|
244 値: 文字列
|
|
245
|
|
246 デフォルト値: タイトルの値
|
|
247
|
|
248 ##### `path`
|
|
249
|
|
250 **必須**
|
|
251
|
|
252 `line`で指定された行を確保するファイルを指定します。
|
|
253
|
|
254 値: 当該ファイルの絶対パスを指定する文字列
|
|
255
|
|
256 ##### `replace`
|
|
257
|
|
258 `match`パラメータとマッチする既存の行をリソースで上書きするかどうかを指定します。`false`に設定すると、`match`パラメータにマッチする行が見つかった場合、その行はファイルに配置されません。
|
|
259
|
|
260 `false`に設定すると、`match`パラメータにマッチする行が見つかった場合、その行はファイルに配置されません。
|
|
261
|
|
262 ブーリアン。
|
|
263
|
|
264 デフォルト値: `true`。
|
|
265
|
|
266 ##### `replace_all_matches_not_matching_line`
|
|
267
|
|
268 `line`がファイルにすでに存在する場合でも、`match`パラメータに一致するすべての行が置き換えられます。
|
|
269
|
|
270 デフォルト値: `false`。
|
|
271
|
|
272 ### データタイプ
|
|
273
|
|
274 #### `Stdlib::Absolutepath`
|
|
275
|
|
276 厳密な絶対パスタイプ。UnixpathタイプおよびWindowspathタイプの異形を使用します。
|
|
277
|
|
278 使用可能なインプット例:
|
|
279
|
|
280 ```shell
|
|
281 /var/log
|
|
282 ```
|
|
283
|
|
284 ```shell
|
|
285 /usr2/username/bin:/usr/local/bin:/usr/bin:.
|
|
286 ```
|
|
287
|
|
288 ```shell
|
|
289 C:\\WINDOWS\\System32
|
|
290 ```
|
|
291
|
|
292 使用不可能なインプット例:
|
|
293
|
|
294 ```shell
|
|
295 ../relative_path
|
|
296 ```
|
|
297
|
|
298 #### `Stdlib::Ensure::Service`
|
|
299
|
|
300 サービスリソースの使用可能なensure値と一致します。
|
|
301
|
|
302 使用可能なインプット例:
|
|
303
|
|
304 ```shell
|
|
305 停止済み
|
|
306 実行中
|
|
307 ```
|
|
308
|
|
309 使用不可能なインプット例:
|
|
310
|
|
311 ```shell
|
|
312 true
|
|
313 false
|
|
314 ```
|
|
315
|
|
316 #### `Stdlib::Httpsurl`
|
|
317
|
|
318 HTTPS URLに一致します。
|
|
319
|
|
320 使用可能なインプット例:
|
|
321
|
|
322 ```shell
|
|
323 https://hello.com
|
|
324 ```
|
|
325
|
|
326 使用不可能なインプット例:
|
|
327
|
|
328 ```shell
|
|
329 httds://notquiteright.org`
|
|
330 ```
|
|
331
|
|
332 #### `Stdlib::Httpurl`
|
|
333
|
|
334 HTTPSおよびHTTP URLの両方に一致します。
|
|
335
|
|
336 使用可能なインプット例:
|
|
337
|
|
338 ```shell
|
|
339 https://hello.com
|
|
340
|
|
341 http://hello.com
|
|
342 ```
|
|
343
|
|
344 使用不可能なインプット例:
|
|
345
|
|
346 ```shell
|
|
347 httds://notquiteright.org
|
|
348 ```
|
|
349
|
|
350 #### `Stdlib::MAC`
|
|
351
|
|
352 [RFC5342](https://tools.ietf.org/html/rfc5342)で定義されるMACアドレスに一致します。
|
|
353
|
|
354 #### `Stdlib::Unixpath`
|
|
355
|
|
356 Unixオペレーティングシステムのパスに一致します。
|
|
357
|
|
358 使用可能なインプット例:
|
|
359
|
|
360 ```shell
|
|
361 /usr2/username/bin:/usr/local/bin:/usr/bin:
|
|
362
|
|
363 /var/tmp
|
|
364 ```
|
|
365
|
|
366 使用不可能なインプット例:
|
|
367
|
|
368 ```shell
|
|
369 C:/whatever
|
|
370 ```
|
|
371
|
|
372 #### `Stdlib::Filemode`
|
|
373
|
|
374 8進数で有効な4桁モードと一致します。
|
|
375
|
|
376 使用可能なインプット例:
|
|
377
|
|
378 ```shell
|
|
379 0644
|
|
380 ```
|
|
381
|
|
382 ```shell
|
|
383 1777
|
|
384 ```
|
|
385
|
|
386 使用不可能なインプット例:
|
|
387
|
|
388 ```shell
|
|
389 644
|
|
390 ```
|
|
391
|
|
392 ```shell
|
|
393 0999
|
|
394 ```
|
|
395
|
|
396 #### `Stdlib::Windowspath`
|
|
397
|
|
398 Windowsオペレーティングシステムのパスに一致します。
|
|
399
|
|
400 使用可能なインプット例:
|
|
401
|
|
402 ```shell
|
|
403 C:\\WINDOWS\\System32
|
|
404
|
|
405 C:\\
|
|
406
|
|
407 \\\\host\\windows
|
|
408 ```
|
|
409
|
|
410 有効な値: Windowsのファイルパスに一致します。
|
|
411
|
|
412 #### `Stdlib::Filesource`
|
|
413
|
|
414 puppetファイルタイプのソースパラメータの有効な値のパスに一致します。
|
|
415
|
|
416 使用可能なインプット例:
|
|
417
|
|
418 ```shell
|
|
419 http://example.com
|
|
420
|
|
421 https://example.com
|
|
422
|
|
423 file:///hello/bla
|
|
424 ```
|
|
425
|
|
426 有効な値: ファイルパス。
|
|
427
|
|
428 #### `Stdlib::Fqdn`
|
|
429
|
|
430 完全修飾ドメイン名(FQDN)のパスに一致します。
|
|
431
|
|
432 使用可能なインプット例:
|
|
433
|
|
434 ```shell
|
|
435 localhost
|
|
436
|
|
437 example.com
|
|
438
|
|
439 www.example.com
|
|
440 ```
|
|
441 有効な値: サーバーのドメイン名。
|
|
442
|
|
443 #### `Stdlib::Host`
|
|
444
|
|
445 有効なホストに一致します。これには、有効なipv4、ipv6、またはfqdnを含みます。
|
|
446
|
|
447 使用可能なインプット例:
|
|
448
|
|
449 ```shell
|
|
450 localhost
|
|
451
|
|
452 www.example.com
|
|
453
|
|
454 192.0.2.1
|
|
455 ```
|
|
456
|
|
457 有効な値: IPアドレスまたはドメイン名。
|
|
458
|
|
459 #### `Stdlib::Port`
|
|
460
|
|
461 有効なTCP/UDPポート番号に一致します。
|
|
462
|
|
463 使用可能なインプット例:
|
|
464
|
|
465 ```shell
|
|
466 80
|
|
467
|
|
468 443
|
|
469
|
|
470 65000
|
|
471 ```
|
|
472
|
|
473 有効な値: 整数。
|
|
474
|
|
475 #### `Stdlib::Port::Privileged`
|
|
476
|
|
477 有効なTCP/UDP特権ポート(1024未満)に一致します。
|
|
478
|
|
479 使用可能なインプット例:
|
|
480
|
|
481 ```shell
|
|
482 80
|
|
483
|
|
484 443
|
|
485
|
|
486 1023
|
|
487 ```
|
|
488
|
|
489 有効な値: 1024未満の数。
|
|
490
|
|
491 #### `Stdlib::Port::Unprivileged`
|
|
492
|
|
493 有効なTCP/UDP特権ポート(1024以上)に一致します。
|
|
494
|
|
495 使用可能なインプット例:
|
|
496
|
|
497 ```shell
|
|
498 1024
|
|
499
|
|
500 1337
|
|
501
|
|
502 65000
|
|
503
|
|
504 ```
|
|
505
|
|
506 有効な値: 1024以上の数。
|
|
507
|
|
508 #### `Stdlib::Base32`
|
|
509
|
|
510 有効なbase32文字列のパスに一致します。
|
|
511
|
|
512 使用可能なインプット例:
|
|
513
|
|
514 ```shell
|
|
515 ASDASDDASD3453453
|
|
516
|
|
517 asdasddasd3453453=
|
|
518
|
|
519 ASDASDDASD3453453==
|
|
520 ```
|
|
521
|
|
522 有効な値: base32文字列。
|
|
523
|
|
524 #### `Stdlib::Base64`
|
|
525
|
|
526 有効なbase64文字列のパスに一致します。
|
|
527
|
|
528 使用可能なインプット例:
|
|
529
|
|
530 ```shell
|
|
531 asdasdASDSADA342386832/746+=
|
|
532
|
|
533 asdasdASDSADA34238683274/6+
|
|
534
|
|
535 asdasdASDSADA3423868327/46+==
|
|
536 ```
|
|
537
|
|
538 有効な値: base64文字列。
|
|
539
|
|
540 #### `Stdlib::Ipv4`
|
|
541
|
|
542 有効なIPv4アドレスに一致します。
|
|
543
|
|
544 使用可能なインプット例:
|
|
545
|
|
546 ```shell
|
|
547 0.0.0.0
|
|
548
|
|
549 192.0.2.1
|
|
550
|
|
551 127.0.0.1
|
|
552 ```
|
|
553
|
|
554 有効な値: IPv4アドレス。
|
|
555
|
|
556 #### `Stdlib::Ipv6`
|
|
557
|
|
558 有効なIPv6アドレスに一致します。
|
|
559
|
|
560 使用可能なインプット例:
|
|
561
|
|
562 ```shell
|
|
563 2001:0db8:85a3:0000:0000:8a2e:0370:7334
|
|
564
|
|
565 2001:db8::
|
|
566
|
|
567 2001:db8::80
|
|
568 ```
|
|
569
|
|
570 有効な値: IPv6アドレス。
|
|
571
|
|
572 #### `Stdlib::Ip_address`
|
|
573
|
|
574 有効なIPv4またはIPv6アドレスに一致します。
|
|
575
|
|
576 使用可能なインプット例:
|
|
577
|
|
578 ```shell
|
|
579 0.0.0.0
|
|
580
|
|
581 127.0.0.1
|
|
582
|
|
583 fe80:0000:0000:0000:0204:61ff:fe9d:f156
|
|
584 ```
|
|
585
|
|
586 有効な値: IPアドレス。
|
|
587
|
|
588 #### `Stdlib::IP::Address`
|
|
589
|
|
590 IPv4とIPv6両方のアドレスを含む、任意のIPアドレスに一致します。CIDRフォーマットのIPv4アドレスで使用されるアドレスプレフィックスの有無に関わらず一致します。
|
|
591
|
|
592 例:
|
|
593
|
|
594 ```
|
|
595 '127.0.0.1' =~ Stdlib::IP::Address # true
|
|
596 '10.1.240.4/24' =~ Stdlib::IP::Address # true
|
|
597 '52.10.10.141' =~ Stdlib::IP::Address # true
|
|
598 '192.168.1' =~ Stdlib::IP::Address # false
|
|
599 'FEDC:BA98:7654:3210:FEDC:BA98:7654:3210' =~ Stdlib::IP::Address # true
|
|
600 'FF01:0:0:0:0:0:0:101' =~ Stdlib::IP::Address # true
|
|
601 ```
|
|
602
|
|
603 #### `Stdlib::IP::Address::V4`
|
|
604
|
|
605 CIDRプレフィックスの有無に関わらず、ドット区切りの4つの10進数で表現されたIPv4アドレスで構成される任意の文字列に一致します。省略形(192.168.1など)には一致しません。省略形はドキュメンテーションが不十分で、サポートにばらつきがあるためです。
|
|
606
|
|
607 例:
|
|
608
|
|
609 ```
|
|
610 '127.0.0.1' =~ Stdlib::IP::Address::V4 # true
|
|
611 '10.1.240.4/24' =~ Stdlib::IP::Address::V4 # true
|
|
612 '192.168.1' =~ Stdlib::IP::Address::V4 # false
|
|
613 'FEDC:BA98:7654:3210:FEDC:BA98:7654:3210' =~ Stdlib::IP::Address::V4 # false
|
|
614 '12AB::CD30:192.168.0.1' =~ Stdlib::IP::Address::V4 # false
|
|
615 ```
|
|
616
|
|
617 有効な値: IPv4アドレス。
|
|
618
|
|
619 #### `Stdlib::IP::Address::V6`
|
|
620
|
|
621 アドレスプレフィックスの有無に関わらず、RFC 2373に規定された任意のフォーマットで記述されたIPv6アドレスを構成する任意の文字列に一致します。
|
|
622
|
|
623 例:
|
|
624
|
|
625 ```
|
|
626 '127.0.0.1' =~ Stdlib::IP::Address::V6 # false
|
|
627 '10.1.240.4/24' =~ Stdlib::IP::Address::V6 # false
|
|
628 'FEDC:BA98:7654:3210:FEDC:BA98:7654:3210' =~ Stdlib::IP::Address::V6 # true
|
|
629 'FF01:0:0:0:0:0:0:101' =~ Stdlib::IP::Address::V6 # true
|
|
630 'FF01::101' =~ Stdlib::IP::Address::V6 # true
|
|
631 ```
|
|
632
|
|
633 有効な値: IPv6アドレス。
|
|
634
|
|
635 #### `Stdlib::IP::Address::Nosubnet`
|
|
636
|
|
637 `Stdlib::IP::Address`エイリアスと同じものに一致しますが、アドレスプレフィックスを含むアドレスには一致しません(たとえば、'192.168.0.6'には一致しますが、'192.168.0.6/24'には一致しません)。
|
|
638
|
|
639 有効な値: サブネットを持たないIPアドレス。
|
|
640
|
|
641 #### `Stdlib::IP::Address::V4::CIDR`
|
|
642
|
|
643 CIDRフォーマットで記述されたIPv4アドレスに一致します。アドレスにアドレスプレフィックスが含まれる場合のみ一致します(たとえば、'192.168.0.6/24'には一致しますが、
|
|
644 '192.168.0.6'には一致しません)。
|
|
645
|
|
646 有効な値: CIDRが提供されたIPv4アドレス、たとえば'192.186.8.101/105'など。これは、'192.186.8.101'~'192.168.8.105'を含むすべてに一致します。
|
|
647
|
|
648 #### `Stdlib::IP::Address::V4::Nosubnet`
|
|
649
|
|
650 アドレスプレフィックスを含まないIPv4アドレスに一致します(たとえば、'192.168.0.6'には一致しますが、'192.168.0.6/24'には一致しません)。
|
|
651
|
|
652 有効な値: サブネットを持たないIPv4アドレス。
|
|
653
|
|
654 #### `Stdlib::IP::Address::V6::Full`
|
|
655
|
|
656 [RFC 2373](https://www.ietf.org/rfc/rfc2373.txt)の2.2に規定された「好ましい形式」のIPv6アドレスに一致します。[RFC 2373](https://www.ietf.org/rfc/rfc2373.txt)の2.3に規定されたアドレスプレフィックスの有無に関わらず一致します。
|
|
657
|
|
658 #### `Stdlib::IP::Address::V6::Alternate`
|
|
659
|
|
660 [RFC 2373](https://www.ietf.org/rfc/rfc2373.txt)の2.2に規定された「代替形式」(最後の2つの16ビット断片をドット区切りの4つの10進数で表現できる)のIPv6アドレスに一致します。[RFC 2373](https://www.ietf.org/rfc/rfc2373.txt)の2.3に規定されたアドレスプレフィックスの有無に関わらず一致します。
|
|
661
|
|
662 #### `Stdlib::IP::Address::V6::Compressed`
|
|
663
|
|
664 [RFC 2373](https://www.ietf.org/rfc/rfc2373.txt)の2.2に規定された0を圧縮する記法である`::`を含む可能性のあるIPv6アドレスに一致します。[RFC 2373](https://www.ietf.org/rfc/rfc2373.txt)の2.3に規定されたアドレスプレフィックスの有無に関わらず一致します。
|
|
665
|
|
666 #### `Stdlib::IP::Address::V6::Nosubnet`
|
|
667
|
|
668 `Stdlib::IP::Address::V6::Nosubnet::Full`、`Stdlib::IP::Address::V6::Nosubnet::Alternate`、および`Stdlib::IP::Address::V6::Nosubnet::Compressed`を許可するエイリアス。
|
|
669
|
|
670 #### `Stdlib::IP::Address::V6::Nosubnet::Full`
|
|
671
|
|
672 [RFC 2373](https://www.ietf.org/rfc/rfc2373.txt)の2.2.1に規定された「好ましい形式」のIPv6アドレスに一致します。[RFC 2373](https://www.ietf.org/rfc/rfc2373.txt)の2.3に規定されたアドレスプレフィックスを持つアドレスには一致しません。
|
|
673
|
|
674 #### `Stdlib::IP::Address::V6::Nosubnet::Alternate`
|
|
675
|
|
676 [RFC 2373](https://www.ietf.org/rfc/rfc2373.txt)の2.2.1に規定された「代替形式」(最後の2つの16ビット断片をドット区切りの4つの10進数で表現できる)のIPv6アドレスに一致します。[RFC 2373](https://www.ietf.org/rfc/rfc2373.txt)の2.3に規定されたアドレスプレフィックスを持たないアドレスにのみ一致します。
|
|
677
|
|
678 #### `Stdlib::IP::Address::V6::Nosubnet::Compressed`
|
|
679
|
|
680 [RFC 2373](https://www.ietf.org/rfc/rfc2373.txt)の2.2.2に規定された0を圧縮する記法である`::`を含む可能性のあるIPv6アドレスに一致します。[RFC 2373](https://www.ietf.org/rfc/rfc2373.txt)の2.3に規定されたアドレスプレフィックスを持たないアドレスにのみ一致します。
|
|
681
|
|
682 ### ファクト
|
|
683
|
|
684 #### `package_provider`
|
|
685
|
|
686 Puppetがこのシステムのパッケージ管理に使用するデフォルトのプロバイダを返します。
|
|
687
|
|
688 #### `is_pe`
|
|
689
|
|
690 Puppet Enterpriseがインストールされているかどうかを返します。PE 3.x以降のプラットフォームでは何も報告されません。
|
|
691
|
|
692 #### `pe_version`
|
|
693
|
|
694 インストールされているPuppet Enterpriseのバージョンを返します。PE 3.x以降のプラットフォームでは何も報告されません。
|
|
695
|
|
696 #### `pe_major_version`
|
|
697
|
|
698 インストールされているPuppet Enterpriseのメジャーバージョンを返します。PE 3.x以降のプラットフォームでは何も報告されません。
|
|
699
|
|
700 #### `pe_minor_version`
|
|
701
|
|
702 インストールされているPuppet Enterpriseのマイナーバージョンを返します。PE 3.x以降のプラットフォームでは何も報告されません。
|
|
703
|
|
704 #### `pe_patch_version`
|
|
705
|
|
706 インストールされているPuppet Enterpriseのパッチバージョンを返します。
|
|
707
|
|
708 #### `puppet_vardir`
|
|
709
|
|
710 PuppetまたはPuppet agentが稼働しているノードについて設定されたPuppet vardirの値を返します。
|
|
711
|
|
712 #### `puppet_environmentpath`
|
|
713
|
|
714 PuppetまたはPuppet agentが稼働しているノードについて設定されたPuppet環境の値を返します。
|
|
715
|
|
716 #### `puppet_server`
|
|
717
|
|
718 Puppet agentの`server`値を返します。この値は、agentが通信するPuppet masterのホストネームです。
|
|
719
|
|
720 #### `root_home`
|
|
721
|
|
722 ルートのホームディレクトリを決定します。
|
|
723
|
|
724 ルートのホームディレクトリを決定します。これは、オペレーティングシステムによって異なります。通常は'/root'です。
|
|
725
|
|
726 #### `service_provider`
|
|
727
|
|
728 Puppetがこのシステムのサービス管理に使用するデフォルトのプロバイダを返します。
|
|
729
|
|
730 ### 関数
|
|
731
|
|
732 #### `abs`
|
|
733
|
|
734 数字の絶対値を返します。たとえば、'-34.56'は'34.56'になります。
|
|
735
|
|
736 引数: 整数値または浮動小数点値のいずれかの単一の引数。
|
|
737
|
|
738 *タイプ*: 右辺値
|
|
739
|
|
740 #### `any2array`
|
|
741
|
|
742 任意のオブジェクトを、そのオブジェクトを含む配列に変換します。空の引数リストは空の配列に変換されます。ハッシュは、キーと値が交互になった配列に変換されます。配列は変換されません。
|
|
743
|
|
744 *タイプ*: 右辺値
|
|
745
|
|
746 #### `any2bool`
|
|
747
|
|
748 任意のオブジェクトをブーリアンに変換します。
|
|
749
|
|
750 * 'Y'、'y'、'1'、'T'、't'、'TRUE'、'yes'、'true'といった文字列は`true`を返します。
|
|
751 * '0'、'F'、'f'、'N'、'n'、'FALSE'、'no'、'false'といった文字列は`false`を返します。
|
|
752 * ブーリアンは元の値を返します。
|
|
753 * 0よりも大きい数字(または数字の文字列表現)は`true`を返します。それ以外は`false`を返します。
|
|
754 * undef値は`false`を返します。
|
|
755 * それ以外はすべて`true`を返します。
|
|
756
|
|
757 *タイプ*: 右辺値
|
|
758
|
|
759 #### `assert_private`
|
|
760
|
|
761 現在のクラスまたは定義をプライベートとして設定します。現在のモジュール外のクラスまたは定義タイプを呼び出すことはできません。
|
|
762
|
|
763 たとえば、クラス`foo::bar`で`assert_private()`がコールされると、クラスがモジュール`foo`の外から呼び出された場合、次のメッセージがアウトプットされます:`Class foo::bar is private`。
|
|
764
|
|
765 使用したいエラーメッセージを指定する方法:
|
|
766
|
|
767 ```puppet
|
|
768 assert_private("You're not supposed to do that!")
|
|
769 ```
|
|
770
|
|
771 *タイプ*: ステートメント
|
|
772
|
|
773 #### `base64`
|
|
774
|
|
775 文字列とbase64エンコードを相互に変換します。`action` ('encode'、'decode')とプレーンまたは base64でエンコードした`string`、およびオプションで`method` ('default'、'strict'、'urlsafe')が必要です。
|
|
776
|
|
777 下位互換性を得るには、`method`を`default`に設定します(指定されていない場合)。
|
|
778
|
|
779 *注:* この関数はRubyクラスの実装にあたり、UTF8との互換性がない可能性があります。互換性を確保するには、Ruby 2.4.0以降でこの関数を使用してください。
|
|
780
|
|
781 **例:**
|
|
782
|
|
783 ```puppet
|
|
784 base64('encode', 'hello')
|
|
785 base64('encode', 'hello', 'default')
|
|
786 # リターン: "aGVsbG8=\n"
|
|
787
|
|
788 base64('encode', 'hello', 'strict')
|
|
789 # リターン: "aGVsbG8="
|
|
790
|
|
791 base64('decode', 'aGVsbG8=')
|
|
792 base64('decode', 'aGVsbG8=\n')
|
|
793 base64('decode', 'aGVsbG8=', 'default')
|
|
794 base64('decode', 'aGVsbG8=\n', 'default')
|
|
795 base64('decode', 'aGVsbG8=', 'strict')
|
|
796 # リターン: "hello"
|
|
797
|
|
798 base64('encode', 'https://puppetlabs.com', 'urlsafe')
|
|
799 # リターン: "aHR0cHM6Ly9wdXBwZXRsYWJzLmNvbQ=="
|
|
800
|
|
801 base64('decode', 'aHR0cHM6Ly9wdXBwZXRsYWJzLmNvbQ==', 'urlsafe')
|
|
802 # リターン: "https://puppetlabs.com"
|
|
803 ```
|
|
804
|
|
805 *タイプ*: 右辺値
|
|
806
|
|
807 #### `basename`
|
|
808
|
|
809 パスの`basename`を返します。オプションの引数で拡張子が外れます。例:
|
|
810
|
|
811 * ('/path/to/a/file.ext')は'file.ext'を返します。
|
|
812 * ('relative/path/file.ext')は'file.ext'を返します。
|
|
813 * ('/path/to/a/file.ext', '.ext')は'file'を返します。
|
|
814
|
|
815 *タイプ*: 右辺値
|
|
816
|
|
817 #### `bool2num`
|
|
818
|
|
819 ブーリアンを数字に変換します。以下の値を変換します。
|
|
820
|
|
821 * `false`、'f'、'0'、'n'、'no'を0に変換します。
|
|
822 * `true`、't'、'1'、'y'、'yes'を1に変換します。
|
|
823
|
|
824 引数: インプットとして、単一のブーリアンまたは文字列。
|
|
825
|
|
826 *タイプ*: 右辺値
|
|
827
|
|
828 #### `bool2str`
|
|
829
|
|
830 オプションで提供される引数を用いて、ブーリアンを文字列に変換します。オプションの第2および第3の引数は、trueおよびfalseがそれぞれ何に変換されるかを表しています。与えられた引数が1つだけの場合は、ブーリアンから`true`または`false`を含む文字列に変換されます。
|
|
831
|
|
832 *例:*
|
|
833
|
|
834 ```puppet
|
|
835 bool2str(true) => `true`
|
|
836 bool2str(true, 'yes', 'no') => 'yes'
|
|
837 bool2str(false, 't', 'f') => 'f'
|
|
838 ```
|
|
839
|
|
840 引数: ブーリアン。
|
|
841
|
|
842 *タイプ*: 右辺値
|
|
843
|
|
844 #### `camelcase`
|
|
845
|
|
846 配列内の1つの文字列またはすべての文字列の大文字と小文字の別をCamelCase(大小文字混在)に変換します。
|
|
847
|
|
848 引数: 配列または文字列のいずれか。受け取ったものと同じタイプの引数を返しますが、CamelCaseの形式で返します。
|
|
849
|
|
850 *注:* この関数はRubyクラスの実装にあたり、UTF8との互換性がない可能性があります。互換性を確保するには、Ruby 2.4.0以降でこの関数を使用してください。
|
|
851
|
|
852 *タイプ*: 右辺値
|
|
853
|
|
854 #### `capitalize`
|
|
855
|
|
856 文字列または複数文字列の配列の最初の文字を大文字にし、各文字列の残りの文字を小文字にします。
|
|
857
|
|
858 引数: インプットとして、単一文字列または配列。*タイプ*: 右辺値
|
|
859
|
|
860 *注:* この関数はRubyクラスの実装にあたり、UTF8との互換性がない可能性があります。互換性を確保するには、Ruby 2.4.0以降でこの関数を使用してください。
|
|
861
|
|
862 #### `ceiling`
|
|
863
|
|
864 引数以上の最小整数を返します。
|
|
865
|
|
866 引数: 単一の数値。
|
|
867
|
|
868 *タイプ*: 右辺値
|
|
869
|
|
870 #### `chomp`
|
|
871
|
|
872 文字列または複数文字列の配列の最後から、レコード分離文字を削除します。たとえば、'hello\n'は'hello'になります。
|
|
873
|
|
874 引数: 単一の文字または配列。
|
|
875
|
|
876 *タイプ*: 右辺値
|
|
877
|
|
878 #### `chop`
|
|
879
|
|
880 最後の文字を削除した新しい文字列を返します。文字列が'\r\n'で終わる場合は、両方の文字が削除されます。`chop`を空文字列に適用すると、空文字列が返されます。レコード分離文字のみを削除する場合は、`chomp`関数を使用してください。
|
|
881
|
|
882 引数: インプットとして、文字列または複数文字列の配列。
|
|
883
|
|
884 *タイプ*: 右辺値
|
|
885
|
|
886 #### `clamp`
|
|
887
|
|
888 整数値に基づく分類により、当該領域[Min、X、Max]内で値を維持します(パラメータの順序は関係ありません)。文字列が変換され、数字として比較されます。値の配列は、さらなる処理が可能なリストに平坦化されます。例:
|
|
889
|
|
890 * `clamp('24', [575, 187])`は187を返します。
|
|
891 * `clamp(16, 88, 661)`は88を返します。
|
|
892 * `clamp([4, 3, '99'])`は4を返します。
|
|
893
|
|
894 引数: 文字列、配列、数字。
|
|
895
|
|
896 *タイプ*: 右辺値
|
|
897
|
|
898 #### `concat`
|
|
899
|
|
900 複数配列のコンテンツを、与えられた最初の配列に追加します。例:
|
|
901
|
|
902 * `concat(['1','2','3'],'4')`は['1','2','3','4']を返します。
|
|
903 * `concat(['1','2','3'],'4',['5','6','7'])`は['1','2','3','4','5','6','7']を返します。
|
|
904
|
|
905 *タイプ*: 右辺値
|
|
906
|
|
907 #### `convert_base`
|
|
908
|
|
909 与えられた整数または整数を表す10進数文字列を、指定した基数の文字列に変換します。例:
|
|
910
|
|
911 * `convert_base(5, 2)`は'101'になります。
|
|
912 * `convert_base('254', '16')`は'fe'になります。
|
|
913
|
|
914 #### `count`
|
|
915
|
|
916 配列のみで呼び出した場合は、空または`undef`**ではない**要素の数をカウントします。第2の引数を用いて呼び出した場合は、第2の引数にマッチする配列内の要素の数をカウントします。
|
|
917
|
|
918 *タイプ*: 右辺値
|
|
919
|
|
920 #### `deep_merge`
|
|
921
|
|
922 2つ以上のハッシュを再帰的に統合し、その結果得られたハッシュを返します。
|
|
923
|
|
924 ```puppet
|
|
925 $hash1 = {'one' => 1, 'two' => 2, 'three' => { 'four' => 4 } }
|
|
926 $hash2 = {'two' => 'dos', 'three' => { 'five' => 5 } }
|
|
927 $merged_hash = deep_merge($hash1, $hash2)
|
|
928 ```
|
|
929
|
|
930 得られるハッシュは、以下に相当します。
|
|
931
|
|
932 ```puppet
|
|
933 $merged_hash = { 'one' => 1, 'two' => 'dos', 'three' => { 'four' => 4, 'five' => 5 } }
|
|
934 ```
|
|
935
|
|
936 ハッシュである重複キーが存在する場合は、そうした重複キーが再帰的に統合されます。ハッシュではない重複キーが存在する場合は、最右のハッシュのキーが上位になります。
|
|
937
|
|
938 *タイプ*: 右辺値
|
|
939
|
|
940 #### `defined_with_params`
|
|
941
|
|
942 属性のリソースリファレンスとオプションでハッシュを取得します。特定の属性を持つリソースがすでにカタログに追加されている場合は`true`を返します。そうでない場合は`false`を返します。
|
|
943
|
|
944 ```puppet
|
|
945 user { 'dan':
|
|
946 ensure => present,
|
|
947 }
|
|
948
|
|
949 if ! defined_with_params(User[dan], {'ensure' => 'present' }) {
|
|
950 user { 'dan': ensure => present, }
|
|
951 }
|
|
952 ```
|
|
953
|
|
954 *タイプ*: 右辺値
|
|
955
|
|
956 #### `delete`
|
|
957
|
|
958 配列から任意の要素のインスタンスを、文字列からサブストリングを、またはハッシュからキーをすべて削除します。
|
|
959
|
|
960 例:
|
|
961
|
|
962 * `delete(['a','b','c','b'], 'b')`は['a','c']を返します。
|
|
963 * `delete('abracadabra', 'bra')`は'acada'を返します。
|
|
964 * `delete({'a' => 1,'b' => 2,'c' => 3},['b','c'])`は{'a'=> 1}を返します。
|
|
965 * `delete(['ab', 'b'], 'b')`は['ab']を返します。
|
|
966
|
|
967 *タイプ*: 右辺値
|
|
968
|
|
969 #### `delete_at`
|
|
970
|
|
971 決められたインデックス付き値を配列から削除します。
|
|
972
|
|
973 例: `delete_at(['a','b','c'], 1)`は['a','c']を返します。
|
|
974
|
|
975 *タイプ*: 右辺値
|
|
976
|
|
977 #### `delete_regex`
|
|
978
|
|
979 提示された正規表現にマッチする任意の要素のインスタンスを、配列またはハッシュからすべて削除します。文字列は1アイテム配列として処理されます。
|
|
980
|
|
981 *注:* この関数はRubyクラスの実装にあたり、UTF8との互換性がない可能性があります。互換性を確保するには、Ruby 2.4.0以降でこの関数を使用してください。
|
|
982
|
|
983
|
|
984 例
|
|
985
|
|
986 * `delete_regex(['a','b','c','b'], 'b')`は['a','c']を返します。
|
|
987 * `delete_regex({'a' => 1,'b' => 2,'c' => 3},['b','c'])`は{'a'=> 1}を返します。
|
|
988 * `delete_regex(['abf', 'ab', 'ac'], '^ab.*')`は['ac']を返します。
|
|
989 * `delete_regex(['ab', 'b'], 'b')`は['ab']を返します。
|
|
990
|
|
991 *タイプ*: 右辺値
|
|
992
|
|
993 #### `delete_values`
|
|
994
|
|
995 任意の値のインスタンスをハッシュからすべて削除します。
|
|
996
|
|
997 例:
|
|
998
|
|
999 * `delete_values({'a'=>'A','b'=>'B','c'=>'C','B'=>'D'}, 'B')`は{'a'=>'A','c'=>'C','B'=>'D'}を返します。
|
|
1000
|
|
1001 *タイプ*: 右辺値
|
|
1002
|
|
1003 #### `delete_undef_values`
|
|
1004
|
|
1005 `undef`値のインスタンスをアレイまたはハッシュからすべて削除します。
|
|
1006
|
|
1007 例:
|
|
1008
|
|
1009 * `$hash = delete_undef_values({a=>'A', b=>'', c=>`undef`, d => false})`は{a => 'A', b => '', d => false}を返します。
|
|
1010
|
|
1011 *タイプ*: 右辺値
|
|
1012
|
|
1013 #### `deprecation`
|
|
1014
|
|
1015 非推奨警告をプリントし、任意のキーについて警告を一度記録します:
|
|
1016
|
|
1017 ```puppet
|
|
1018 deprecation(key, message)
|
|
1019 ```
|
|
1020
|
|
1021 引数:
|
|
1022
|
|
1023 * キーを指定する文字列: Puppetプロセスの継続期間中にメッセージの数を少なく抑えるために、1つのキーにつき1つのメッセージのみを記録します。
|
|
1024 * メッセージを指定する文字列: 記録されるテキスト。
|
|
1025
|
|
1026 *タイプ*: ステートメント
|
|
1027
|
|
1028 **`deprecation`に影響を与える設定**
|
|
1029
|
|
1030 Puppetの他の設定は、stdlibの`deprecation`関数に影響を与えます。
|
|
1031
|
|
1032 * [`disable_warnings`](https://docs.puppet.com/puppet/latest/reference/configuration.html#disablewarnings)
|
|
1033 * [`max_deprecations`](https://docs.puppet.com/puppet/latest/reference/configuration.html#maxdeprecations)
|
|
1034 * [`strict`](https://docs.puppet.com/puppet/latest/reference/configuration.html#strict):
|
|
1035
|
|
1036 * `error`: 非推奨メッセージにより、ただちに機能しなくなります。
|
|
1037 * `off`: メッセージがアウトプットされません。
|
|
1038 * `warning`: すべての警告を記録します。これがデフォルト設定です。
|
|
1039
|
|
1040 * 環境変数`STDLIB_LOG_DEPRECATIONS`
|
|
1041
|
|
1042 非推奨警告を記録するかどうかを指定します。これは特に、自動テストの際、移行の準備ができる前にログに情報が氾濫するのを避けるうえで役立ちます。
|
|
1043
|
|
1044 この変数はブーリアンで、以下の効果があります:
|
|
1045
|
|
1046 * `true`: 警告を記録します。
|
|
1047 * `false`: 警告は記録されません。
|
|
1048 * 値を設定しない場合: Puppet 4は警告を出しますが、Puppet 3は出しません。
|
|
1049
|
|
1050 #### `difference`
|
|
1051
|
|
1052 2つの配列の間の差異を返します。返される配列はオリジナル配列のコピーで、第2の配列にも見られるアイテムがあれば、それが取り除かれます。
|
|
1053
|
|
1054 例:
|
|
1055
|
|
1056 * `difference(["a","b","c"],["b","c","d"])`は["a"]を返します。
|
|
1057
|
|
1058 *タイプ*: 右辺値
|
|
1059
|
|
1060 #### `dig`
|
|
1061
|
|
1062 **非推奨:**この関数は、Puppet 4.5.0で、内蔵の[`dig`](https://docs.puppet.com/puppet/latest/function.html#dig)関数に置き換えられました。下位互換性を得るには、[`dig44()`](#dig44)を使用するか、新しいバージョンを使用してください。
|
|
1063
|
|
1064 パスを含むキー配列を通じて、複数レイヤーのハッシュおよびアレイ内の値を探します。この関数は各パスコンポーネントにより構造内を移動し、パスの最後で値を返すよう試みます。
|
|
1065
|
|
1066 この関数では、必要とされるパス引数に加え、デフォルトの引数を使用できます。パスが正しくない場合や、値が見つからない場合、その他のエラーが生じた場合は、デフォルトの引数を返します。
|
|
1067
|
|
1068 ```ruby
|
|
1069 $data = {
|
|
1070 'a' => {
|
|
1071 'b' => [
|
|
1072 'b1',
|
|
1073 'b2',
|
|
1074 'b3',
|
|
1075 ]
|
|
1076 }
|
|
1077 }
|
|
1078
|
|
1079 $value = dig($data, ['a', 'b', 2])
|
|
1080 # $value = 'b3'
|
|
1081
|
|
1082 # 可能なすべてのオプションを使用
|
|
1083 $value = dig($data, ['a', 'b', 2], 'not_found')
|
|
1084 # $value = 'b3'
|
|
1085
|
|
1086 # デフォルト値を使用
|
|
1087 $value = dig($data, ['a', 'b', 'c', 'd'], 'not_found')
|
|
1088 # $value = 'not_found'
|
|
1089 ```
|
|
1090
|
|
1091 1. **$data** 取り扱うデータ構造。
|
|
1092 2. **['a', 'b', 2]** パス配列。
|
|
1093 3. **'not_found'** デフォルト値。何も見つからない場合に返されます。
|
|
1094
|
|
1095 デフォルト値: `undef`。
|
|
1096
|
|
1097 *タイプ*: 右辺値
|
|
1098
|
|
1099 #### `dig44`
|
|
1100
|
|
1101 パスを含むキー配列を通じて、複数レイヤーのハッシュおよびアレイ内の値を探します。この関数は各パスコンポーネントにより構造内を移動し、パスの最後で値を返すよう試みます。
|
|
1102
|
|
1103 この関数では、必要とされるパス引数に加え、デフォルトの引数を使用できます。パスが正しくない場合や、値が見つからない場合、その他のエラーが生じた場合は、デフォルトの引数を返します。
|
|
1104
|
|
1105 ```ruby
|
|
1106 $data = {
|
|
1107 'a' => {
|
|
1108 'b' => [
|
|
1109 'b1',
|
|
1110 'b2',
|
|
1111 'b3',
|
|
1112 ]
|
|
1113 }
|
|
1114 }
|
|
1115
|
|
1116 $value = dig44($data, ['a', 'b', 2])
|
|
1117 # $value = 'b3'
|
|
1118
|
|
1119 # 可能なすべてのオプションを使用
|
|
1120 $value = dig44($data, ['a', 'b', 2], 'not_found')
|
|
1121 # $value = 'b3'
|
|
1122
|
|
1123 # デフォルト値を使用
|
|
1124 $value = dig44($data, ['a', 'b', 'c', 'd'], 'not_found')
|
|
1125 # $value = 'not_found'
|
|
1126 ```
|
|
1127
|
|
1128 *タイプ*: 右辺値
|
|
1129
|
|
1130 1. **$data** 取り扱うデータ構造。
|
|
1131 2. **['a', 'b', 2]** パス配列。
|
|
1132 3. **'not_found'** デフォルト値。何も見つからない場合に返されます。
|
|
1133 (オプション、デフォルトは`undef`)
|
|
1134
|
|
1135 #### `dirname`
|
|
1136
|
|
1137 パスの`dirname`を返します。たとえば、`dirname('/path/to/a/file.ext')`は'/path/to/a'を返します。
|
|
1138
|
|
1139 *タイプ*: 右辺値
|
|
1140
|
|
1141 #### `dos2unix`
|
|
1142
|
|
1143 与えられた文字列のUnixバージョンを返します。クロスプラットフォームテンプレートでファイルリソースを使用する場合に非常に役立ちます。
|
|
1144
|
|
1145 ```puppet
|
|
1146 file { $config_file:
|
|
1147 ensure => file,
|
|
1148 content => dos2unix(template('my_module/settings.conf.erb')),
|
|
1149 }
|
|
1150 ```
|
|
1151
|
|
1152 [unix2dos](#unix2dos)も参照してください。
|
|
1153
|
|
1154 *タイプ*: 右辺値
|
|
1155
|
|
1156 #### `downcase`
|
|
1157
|
|
1158 配列内の1つの文字列またはすべての文字列の大文字と小文字の別を、小文字に変換します。
|
|
1159
|
|
1160 *注:* この関数はRubyクラスの実装にあたり、UTF8との互換性がない可能性があります。互換性を確保するには、Ruby 2.4.0以降でこの関数を使用してください。
|
|
1161
|
|
1162 *タイプ*: 右辺値
|
|
1163
|
|
1164 #### `empty`
|
|
1165
|
|
1166 **非推奨:**この関数は、Puppet 5.5.0で、内蔵の[`empty`](https://docs.puppet.com/puppet/latest/function.html#empty)関数に置き換えられました。
|
|
1167
|
|
1168 引数が要素を含まない配列かハッシュ、または空文字列である場合に、`true`を返します。引数が数値の場合に`false`を返します。
|
|
1169
|
|
1170 *タイプ*: 右辺値
|
|
1171
|
|
1172 #### `enclose_ipv6`
|
|
1173
|
|
1174 IPアドレスの配列を取得し、ipv6アドレスを大括弧でくくります。
|
|
1175
|
|
1176 *タイプ*: 右辺値
|
|
1177
|
|
1178 #### `ensure_packages`
|
|
1179
|
|
1180 配列またはハッシュ内のパッケージのリストを取得し、すでに存在しない場合にのみ、それらをインストールします。オプションで、ハッシュを第2のパラメータとして取得し、第3の引数として`ensure_resource()`または `ensure_resources()`関数に渡します。
|
|
1181
|
|
1182 *タイプ*: ステートメント
|
|
1183
|
|
1184 配列の場合:
|
|
1185
|
|
1186 ```puppet
|
|
1187 ensure_packages(['ksh','openssl'], {'ensure' => 'present'})
|
|
1188 ```
|
|
1189
|
|
1190 ハッシュの場合:
|
|
1191
|
|
1192 ```puppet
|
|
1193 ensure_packages({'ksh' => { ensure => '20120801-1' } , 'mypackage' => { source => '/tmp/myrpm-1.0.0.x86_64.rpm', provider => "rpm" }}, {'ensure' => 'present'})
|
|
1194 ```
|
|
1195
|
|
1196 #### `ensure_resource`
|
|
1197
|
|
1198 リソースタイプ、タイトル、リソースを記述する属性のハッシュを取得します。
|
|
1199
|
|
1200 ```
|
|
1201 user { 'dan':
|
|
1202 ensure => present,
|
|
1203 }
|
|
1204 ```
|
|
1205
|
|
1206 この例では、すでに存在しない場合にのみリソースが作成されます:
|
|
1207
|
|
1208 `ensure_resource('user', 'dan', {'ensure' => 'present' })`
|
|
1209
|
|
1210 リソースがすでに存在しているものの、指定されたパラメータとマッチしない場合は、リソースの再作成が試みられ、重複リソース定義エラーにつながります。
|
|
1211
|
|
1212 リソースの配列を提示することも可能です。それぞれのリソースは、すでに存在しない場合に、指定のタイプおよびパラメータにより作成されます。
|
|
1213
|
|
1214 `ensure_resource('user', ['dan','alex'], {'ensure' => 'present'})`
|
|
1215
|
|
1216 *タイプ*: ステートメント
|
|
1217
|
|
1218 #### `ensure_resources`
|
|
1219
|
|
1220 ハッシュからリソース宣言を作成しますが、すでに宣言されているリソースとは対立しません。
|
|
1221
|
|
1222 リソースタイプ、タイトル、リソースを記述する属性のハッシュを指定します。
|
|
1223
|
|
1224 ```puppet
|
|
1225 user { 'dan':
|
|
1226 gid => 'mygroup',
|
|
1227 ensure => present,
|
|
1228 }
|
|
1229
|
|
1230 ensure_resources($user)
|
|
1231 ```
|
|
1232
|
|
1233 リソースのハッシュを提示します。リストにあるリソースは、すでに存在しない場合に、指定のタイプおよびパラメータにより作成されます。
|
|
1234
|
|
1235 ensure_resources('user', {'dan' => { gid => 'mygroup', uid => '600' } , 'alex' => { gid => 'mygroup' }}, {'ensure' => 'present'})
|
|
1236
|
|
1237 Hieraバックエンドから:
|
|
1238
|
|
1239 ```yaml
|
|
1240 userlist:
|
|
1241 dan:
|
|
1242 gid: 'mygroup'
|
|
1243 uid: '600'
|
|
1244 alex:
|
|
1245 gid: 'mygroup'
|
|
1246 ```
|
|
1247
|
|
1248 ```puppet
|
|
1249 ensure_resources('user', hiera_hash('userlist'), {'ensure' => 'present'})
|
|
1250 ```
|
|
1251
|
|
1252 #### `fact`
|
|
1253
|
|
1254 指定されたfactの値を返します。構造化されたfactを参照する場合にドット表記を使用することができます。指定されたfactが存在しない場合は、Undefを返します。
|
|
1255
|
|
1256 使用例:
|
|
1257
|
|
1258 ```puppet
|
|
1259 fact('kernel')
|
|
1260 fact('osfamily')
|
|
1261 fact('os.architecture')
|
|
1262 ```
|
|
1263
|
|
1264 配列のインデックス:
|
|
1265
|
|
1266 ```puppet
|
|
1267 $first_processor = fact('processors.models.0')
|
|
1268 $second_processor = fact('processors.models.1')
|
|
1269 ```
|
|
1270
|
|
1271 名前に「.」を含むfact:
|
|
1272
|
|
1273 ```puppet
|
|
1274 fact('vmware."VRA.version"')
|
|
1275 ```
|
|
1276
|
|
1277 #### `flatten`
|
|
1278
|
|
1279 **非推奨:**この関数は、Puppet 5.5.0で、内蔵の[`flatten`](https://docs.puppet.com/puppet/latest/function.html#flatten)関数に置き換えられました。
|
|
1280
|
|
1281 ネストの深いアレイを平坦化し、結果として単一のフラット配列を返します。
|
|
1282
|
|
1283 たとえば、`flatten(['a', ['b', ['c']]])`は['a','b','c']を返します。
|
|
1284
|
|
1285 *タイプ*: 右辺値
|
|
1286
|
|
1287 #### `floor`
|
|
1288
|
|
1289 引数以下の最大整数を返します。
|
|
1290
|
|
1291 引数: 単一の数値。
|
|
1292
|
|
1293 *タイプ*: 右辺値
|
|
1294
|
|
1295 #### `fqdn_rand_string`
|
|
1296
|
|
1297 ランダムな英数字文字列を生成します。`$fqdn` factとオプションのシードを組み合わせると、反復的な無作為抽出が可能です。オプションで、この関数に使用する文字セットを指定することもできます(デフォルトは英数字)。
|
|
1298
|
|
1299 *使用例:*
|
|
1300
|
|
1301 ```puppet
|
|
1302 fqdn_rand_string(LENGTH, [CHARSET], [SEED])
|
|
1303 ```
|
|
1304
|
|
1305 *例:*
|
|
1306
|
|
1307 ```puppet
|
|
1308 fqdn_rand_string(10)
|
|
1309 fqdn_rand_string(10, 'ABCDEF!@#$%^')
|
|
1310 fqdn_rand_string(10, '', 'custom seed')
|
|
1311 ```
|
|
1312
|
|
1313 引数:
|
|
1314
|
|
1315 * 整数、得られる文字列の長さを指定。
|
|
1316 * オプションで、文字セットを指定する文字列。
|
|
1317 * オプションで、反復的な無作為抽出を可能にするシードを指定する文字列。
|
|
1318
|
|
1319 *タイプ*: 右辺値
|
|
1320
|
|
1321 #### `fqdn_rotate`
|
|
1322
|
|
1323 配列と文字列をランダムな回数で回転させます。`$fqdn` factとオプションのシードを組み合わせると、反復的な無作為抽出が可能です。
|
|
1324
|
|
1325 *使用例:*
|
|
1326
|
|
1327 ```puppet
|
|
1328 fqdn_rotate(VALUE, [SEED])
|
|
1329 ```
|
|
1330
|
|
1331 *例:*
|
|
1332
|
|
1333 ```puppet
|
|
1334 fqdn_rotate(['a', 'b', 'c', 'd'])
|
|
1335 fqdn_rotate('abcd')
|
|
1336 fqdn_rotate([1, 2, 3], 'custom seed')
|
|
1337 ```
|
|
1338
|
|
1339 *タイプ*: 右辺値
|
|
1340
|
|
1341 #### `fqdn_uuid`
|
|
1342
|
|
1343 DNSネームスペースのFQDN文字列をもとに、[RFC 4122](https://tools.ietf.org/html/rfc4122)有効バージョン5 UUIDを返します:
|
|
1344
|
|
1345 * fqdn_uuid('puppetlabs.com')は'9c70320f-6815-5fc5-ab0f-debe68bf764c'を返します。
|
|
1346 * fqdn_uuid('google.com')は'64ee70a4-8cc1-5d25-abf2-dea6c79a09c8'を返します。
|
|
1347
|
|
1348 *タイプ*: 右辺値
|
|
1349
|
|
1350 #### `get_module_path`
|
|
1351
|
|
1352 現在の環境について、指定されたモジュールの絶対パスを返します。
|
|
1353
|
|
1354 ```puppet
|
|
1355 $module_path = get_module_path('stdlib')
|
|
1356 ```
|
|
1357
|
|
1358 *タイプ*: 右辺値
|
|
1359
|
|
1360 #### `getparam`
|
|
1361
|
|
1362 リソースのパラメータの値を返します。
|
|
1363
|
|
1364 引数: リソースリファレンスおよびパラメータの名前。
|
|
1365
|
|
1366 たとえば、以下の場合は'param_value'を返します:
|
|
1367
|
|
1368 ```puppet
|
|
1369 define example_resource($param) {
|
|
1370 }
|
|
1371
|
|
1372 example_resource { "example_resource_instance":
|
|
1373 param => "param_value"
|
|
1374 }
|
|
1375
|
|
1376 getparam(Example_resource["example_resource_instance"], "param")
|
|
1377 ```
|
|
1378
|
|
1379 *タイプ*: 右辺値
|
|
1380
|
|
1381 #### `getvar`
|
|
1382
|
|
1383 リモートネームスペースの変数を調べます。
|
|
1384
|
|
1385 例:
|
|
1386
|
|
1387 ```puppet
|
|
1388 $foo = getvar('site::data::foo')
|
|
1389 # $foo = $site::data::fooに相当
|
|
1390 ```
|
|
1391
|
|
1392 この関数は、ネームスペースそのものが文字列に保存されている場合に役立ちます:
|
|
1393
|
|
1394 ```puppet
|
|
1395 $datalocation = 'site::data'
|
|
1396 $bar = getvar("${datalocation}::bar")
|
|
1397 # $bar = $site::data::barに相当
|
|
1398 ```
|
|
1399
|
|
1400 *タイプ*: 右辺値
|
|
1401
|
|
1402 #### `glob`
|
|
1403
|
|
1404 パスパターンに一致するパスの文字列配列を返します。
|
|
1405
|
|
1406 引数: パスパターンを指定する文字列または文字列配列。
|
|
1407
|
|
1408 ```puppet
|
|
1409 $confs = glob(['/etc/**/*.conf', '/opt/**/*.conf'])
|
|
1410 ```
|
|
1411
|
|
1412 *タイプ*: 右辺値
|
|
1413
|
|
1414 #### `grep`
|
|
1415
|
|
1416 配列内を検索し、提示された正規表現に一致する要素を返します。
|
|
1417
|
|
1418 たとえば、`grep(['aaa','bbb','ccc','aaaddd'], 'aaa')`は['aaa','aaaddd']を返します。
|
|
1419
|
|
1420 *タイプ*: 右辺値
|
|
1421
|
|
1422 #### `has_interface_with`
|
|
1423
|
|
1424 種類および値に基づきブーリアンを返します:
|
|
1425
|
|
1426 * macaddress
|
|
1427 * netmask
|
|
1428 * ipaddress
|
|
1429 * network
|
|
1430
|
|
1431 *例:*
|
|
1432
|
|
1433 ```puppet
|
|
1434 has_interface_with("macaddress", "x:x:x:x:x:x")
|
|
1435 has_interface_with("ipaddress", "127.0.0.1") => true
|
|
1436 ```
|
|
1437
|
|
1438 種類が提示されていない場合は、インターフェースの有無が確認されます:
|
|
1439
|
|
1440 ```puppet
|
|
1441 has_interface_with("lo") => true
|
|
1442 ```
|
|
1443
|
|
1444 *タイプ*: 右辺値
|
|
1445
|
|
1446 #### `has_ip_address`
|
|
1447
|
|
1448 一部のインターフェース上で、リクエストされたIPアドレスがクライアントに存在する場合は`true`を返します。この関数は`interfaces` factで反復され、`ipaddress_IFACE` factsをチェックし、簡単な文字列比較を実行します。
|
|
1449
|
|
1450 引数: IPアドレスを指定する文字列。
|
|
1451
|
|
1452 *タイプ*: 右辺値
|
|
1453
|
|
1454 #### `has_ip_network`
|
|
1455
|
|
1456 リクエストされたネットワーク内でIPアドレスがクライアントに存在する場合は`true`を返します。この関数は`interfaces` factで反復され、 `network_IFACE` factsをチェックし、簡単な文字列比較を実行します。
|
|
1457
|
|
1458 引数: IPアドレスを指定する文字列。
|
|
1459
|
|
1460 *タイプ*: 右辺値
|
|
1461
|
|
1462 #### `has_key`
|
|
1463
|
|
1464 ハッシュに特定のキー値があるかどうかを判定します。
|
|
1465
|
|
1466 *例*:
|
|
1467
|
|
1468 ```
|
|
1469 $my_hash = {'key_one' => 'value_one'}
|
|
1470 if has_key($my_hash, 'key_two') {
|
|
1471 notice('we will not reach here')
|
|
1472 }
|
|
1473 if has_key($my_hash, 'key_one') {
|
|
1474 notice('this will be printed')
|
|
1475 }
|
|
1476 ```
|
|
1477
|
|
1478 *タイプ*: 右辺値
|
|
1479
|
|
1480 #### `hash`
|
|
1481
|
|
1482 配列をハッシュに変換します。
|
|
1483
|
|
1484 たとえば、`hash(['a',1,'b',2,'c',3])`は{'a'=>1,'b'=>2,'c'=>3}を返します。
|
|
1485
|
|
1486 *タイプ*: 右辺値
|
|
1487
|
|
1488 #### `intersection`
|
|
1489
|
|
1490 2つの共通部分の配列を返します。
|
|
1491
|
|
1492 たとえば、`intersection(["a","b","c"],["b","c","d"])`は["b","c"]を返します。
|
|
1493
|
|
1494 *タイプ*: 右辺値
|
|
1495
|
|
1496 #### `is_a`
|
|
1497
|
|
1498 ブーリアンチェックにより、変数が任意のデータタイプのものかどうかを判定します。これは`=~`タイプチェックに相当します。この関数はPuppet 4と、"future"パーサーを備えたPuppet 3でのみ使用できます。
|
|
1499
|
|
1500 ```
|
|
1501 foo = 3
|
|
1502 $bar = [1,2,3]
|
|
1503 $baz = 'A string!'
|
|
1504
|
|
1505 if $foo.is_a(Integer) {
|
|
1506 notify { 'foo!': }
|
|
1507 }
|
|
1508 if $bar.is_a(Array) {
|
|
1509 notify { 'bar!': }
|
|
1510 }
|
|
1511 if $baz.is_a(String) {
|
|
1512 notify { 'baz!': }
|
|
1513 }
|
|
1514 ```
|
|
1515
|
|
1516 * タイプに関する詳細は、[Puppetタイプシステム](https://docs.puppetlabs.com/latest/type.html#about-resource-types)を参照してください。
|
|
1517 * 値のタイプを特定する各種の方法については、[`assert_type()`](https://docs.puppetlabs.com/latest/function.html#asserttype)関数を参照してください。
|
|
1518
|
|
1519 #### `is_absolute_path`
|
|
1520
|
|
1521 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
1522
|
|
1523 与えられたパスが絶対パスである場合に`true`を返します。
|
|
1524
|
|
1525 *タイプ*: 右辺値
|
|
1526
|
|
1527 #### `is_array`
|
|
1528
|
|
1529 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
1530
|
|
1531 この関数に渡された変数が配列である場合に`true`を返します。
|
|
1532
|
|
1533 *タイプ*: 右辺値
|
|
1534
|
|
1535 #### `is_bool`
|
|
1536
|
|
1537 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
1538
|
|
1539 この関数に渡された変数がブーリアンである場合に`true`を返します。
|
|
1540
|
|
1541 *タイプ*: 右辺値
|
|
1542
|
|
1543 #### `is_domain_name`
|
|
1544
|
|
1545 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
1546
|
|
1547 この関数に渡された文字列が構文的に正しいドメイン名である場合に`true`を返します。
|
|
1548
|
|
1549 *タイプ*: 右辺値
|
|
1550
|
|
1551 #### `is_email_address`
|
|
1552
|
|
1553 この関数に渡された文字列が有効なメールアドレスである場合にtrueを返します。
|
|
1554
|
|
1555 *タイプ*: 右辺値
|
|
1556
|
|
1557
|
|
1558 #### `is_float`
|
|
1559
|
|
1560 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
1561
|
|
1562 この関数に渡された変数がフロート型である場合に`true`を返します。
|
|
1563
|
|
1564 *タイプ*: 右辺値
|
|
1565
|
|
1566 #### `is_function_available`
|
|
1567
|
|
1568 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
1569
|
|
1570 文字列を引数として受け入れ、Puppetランタイムがその名前を用いて関数にアクセスできるかどうかを判定します。関数が存在する場合は`true`、存在しない場合は`false`を返します。
|
|
1571
|
|
1572 *タイプ*: 右辺値
|
|
1573
|
|
1574 #### `is_hash`
|
|
1575
|
|
1576 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
1577
|
|
1578 この関数に渡された変数がハッシュである場合に`true`を返します。
|
|
1579
|
|
1580 *タイプ*: 右辺値
|
|
1581
|
|
1582 #### `is_integer`
|
|
1583
|
|
1584 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
1585
|
|
1586 この文字列に返された変数が整数である場合に`true`を返します。
|
|
1587
|
|
1588 *タイプ*: 右辺値
|
|
1589
|
|
1590 #### `is_ip_address`
|
|
1591
|
|
1592 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
1593
|
|
1594 この関数に渡された文字列が有効なIPアドレスである場合に`true`を返します。
|
|
1595
|
|
1596 *タイプ*: 右辺値
|
|
1597
|
|
1598 #### `is_ipv6_address`
|
|
1599
|
|
1600 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
1601
|
|
1602 この関数に渡された文字列が有効なIPv6アドレスである場合に`true`を返します。
|
|
1603
|
|
1604 *タイプ*: 右辺値
|
|
1605
|
|
1606 #### `is_ipv4_address`
|
|
1607
|
|
1608 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
1609
|
|
1610 この関数に渡された文字列が有効なIPv4アドレスである場合に`true`を返します。
|
|
1611
|
|
1612 *タイプ*: 右辺値
|
|
1613
|
|
1614 #### `is_mac_address`
|
|
1615
|
|
1616 この関数に渡された文字列が有効なMACアドレスである場合に`true`を返します。
|
|
1617
|
|
1618 *タイプ*: 右辺値
|
|
1619
|
|
1620 #### `is_numeric`
|
|
1621
|
|
1622 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
1623
|
|
1624 この関数に渡された変数が数字である場合に`true`を返します。
|
|
1625
|
|
1626 *タイプ*: 右辺値
|
|
1627
|
|
1628 #### `is_string`
|
|
1629
|
|
1630 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
1631
|
|
1632 この関数に渡された変数が文字列である場合に`true`を返します。
|
|
1633
|
|
1634 *タイプ*: 右辺値
|
|
1635
|
|
1636 #### `join`
|
|
1637
|
|
1638 **非推奨:**この関数は、Puppet 5.5.0で、内蔵の[`join`](https://docs.puppet.com/puppet/latest/function.html#join)関数に置き換えられました。
|
|
1639
|
|
1640 区切り文字を用いて、配列を文字列に結合します。たとえば、`join(['a','b','c'], ",")`は"a,b,c"になります。
|
|
1641
|
|
1642 *タイプ*: 右辺値
|
|
1643
|
|
1644 #### `join_keys_to_values`
|
|
1645
|
|
1646 区切り文字を用いて、ハッシュの各キーをそのキーに対応する値と結合し、結果を文字列として返します。
|
|
1647
|
|
1648 値が配列の場合は、キーは各要素の前に置かれます。返される値は、平坦化した配列になります。
|
|
1649
|
|
1650 たとえば、`join_keys_to_values({'a'=>1,'b'=>[2,3]}, " is ")`は["a is 1","b is 2","b is 3"]になります。
|
|
1651
|
|
1652 *タイプ*: 右辺値
|
|
1653
|
|
1654 #### `keys`
|
|
1655
|
|
1656 **非推奨:**この関数は、Puppet 5.5.0で、内蔵の[`keys`](https://docs.puppet.com/puppet/latest/function.html#keys)関数に置き換えられました。
|
|
1657
|
|
1658 ハッシュのキーを配列として返します。
|
|
1659
|
|
1660 *タイプ*: 右辺値
|
|
1661
|
|
1662 #### `length`
|
|
1663
|
|
1664 **非推奨:**この関数は、Puppet 5.5.0で、内蔵の[`length`](https://docs.puppet.com/puppet/latest/function.html#length)関数に置き換えられました。
|
|
1665
|
|
1666 与えられた文字列、配列、ハッシュの長さを返します。廃止された`size()`関数に代わるものです。
|
|
1667
|
|
1668 *タイプ*: 右辺値
|
|
1669
|
|
1670 #### `loadyaml`
|
|
1671
|
|
1672 配列、文字列、ハッシュを含むYAMLファイルをロードし、対応するネイティブデータタイプでデータを返します。
|
|
1673
|
|
1674 例:
|
|
1675
|
|
1676 ```puppet
|
|
1677 $myhash = loadyaml('/etc/puppet/data/myhash.yaml')
|
|
1678 ```
|
|
1679
|
|
1680 第2のパラメータは、ファイルが見つからなかった場合、または構文解析できなかった場合に返されます。
|
|
1681
|
|
1682 例:
|
|
1683
|
|
1684 ```puppet
|
|
1685 $myhash = loadyaml('no-file.yaml', {'default'=>'value'})
|
|
1686 ```
|
|
1687
|
|
1688 *タイプ*: 右辺値
|
|
1689
|
|
1690 #### `loadjson`
|
|
1691
|
|
1692 配列、文字列、ハッシュを含むJSONファイルをロードし、対応するネイティブデータタイプでデータを返します。
|
|
1693
|
|
1694 例:
|
|
1695
|
|
1696 ```puppet
|
|
1697 $myhash = loadjson('/etc/puppet/data/myhash.json')
|
|
1698 ```
|
|
1699
|
|
1700 第2のパラメータは、ファイルが見つからなかった場合、または構文解析できなかった場合に返されます。
|
|
1701
|
|
1702 例:
|
|
1703
|
|
1704 ```puppet
|
|
1705 $myhash = loadjson('no-file.json', {'default'=>'value'})
|
|
1706 ```
|
|
1707
|
|
1708 *タイプ*: 右辺値
|
|
1709
|
|
1710 #### `load_module_metadata`
|
|
1711
|
|
1712 ターゲットモジュールのmetadata.jsonをロードします。モジュールのバージョンや、モジュールの動的サポートに関するオーサーシップの判定に使用できます。
|
|
1713
|
|
1714 ```puppet
|
|
1715 $metadata = load_module_metadata('archive')
|
|
1716 notify { $metadata['author']: }
|
|
1717 ```
|
|
1718
|
|
1719 モジュールのメタデータファイルが存在しない場合、カタログコンパイルに失敗します。これを避ける方法は、以下のとおりです:
|
|
1720
|
|
1721 ```
|
|
1722 $metadata = load_module_metadata('mysql', true)
|
|
1723 if empty($metadata) {
|
|
1724 notify { "This module does not have a metadata.json file.": }
|
|
1725 }
|
|
1726 ```
|
|
1727
|
|
1728 *タイプ*: 右辺値
|
|
1729
|
|
1730 #### `lstrip`
|
|
1731
|
|
1732 文字列の左側のスペースを取り除きます。
|
|
1733
|
|
1734 *タイプ*: 右辺値
|
|
1735
|
|
1736 #### `max`
|
|
1737
|
|
1738 すべての引数の最大値を返します。少なくとも1つの引数が必要です。
|
|
1739
|
|
1740 引数: 数字または数字を表す文字列。
|
|
1741
|
|
1742 *タイプ*: 右辺値
|
|
1743
|
|
1744 #### `member`
|
|
1745
|
|
1746 変数が配列の構成要素かどうかを判定します。変数には文字列、配列、fixnumが使用できます。
|
|
1747
|
|
1748 たとえば、`member(['a','b'], 'b')`および`member(['a','b','c'], ['b','c'])`は`true`を返し、`member(['a','b'], 'c')`および`member(['a','b','c'], ['c','d'])`は`false`を返します。
|
|
1749
|
|
1750 *注*: この関数は、ネスト化した配列には対応していません。最初の引数にネスト化した配列が含まれている場合は、再帰的処理は行われません。
|
|
1751
|
|
1752 *タイプ*: 右辺値
|
|
1753
|
|
1754 #### `merge`
|
|
1755
|
|
1756 2つ以上のハッシュを統合し、その結果得られたハッシュを返します。
|
|
1757
|
|
1758 *例*:
|
|
1759
|
|
1760 ```puppet
|
|
1761 $hash1 = {'one' => 1, 'two' => 2}
|
|
1762 $hash2 = {'two' => 'dos', 'three' => 'tres'}
|
|
1763 $merged_hash = merge($hash1, $hash2)
|
|
1764 # 得られるハッシュは、以下に相当します:
|
|
1765 # $merged_hash = {'one' => 1, 'two' => 'dos', 'three' => 'tres'}
|
|
1766 ```
|
|
1767
|
|
1768 重複キーが存在する場合は、最右のハッシュのキーが上位になります。
|
|
1769
|
|
1770 *タイプ*: 右辺値
|
|
1771
|
|
1772 #### `min`
|
|
1773
|
|
1774 すべての引数の最小値を返します。少なくとも1つの引数が必要です。
|
|
1775
|
|
1776 引数: 数字または数字を表す文字列。
|
|
1777
|
|
1778 *タイプ*: 右辺値
|
|
1779
|
|
1780 #### `num2bool`
|
|
1781
|
|
1782 数字または数字の文字列表現を正当なブーリアンに変換します。0または非数字は`false`になります。0より大きい数字は`true`になります。
|
|
1783
|
|
1784 *タイプ*: 右辺値
|
|
1785
|
|
1786 #### `parsejson`
|
|
1787
|
|
1788 JSONの文字列を正確なPuppet構造に変換します(ハッシュ、配列、文字列、整数、またはそれらの組み合わせとして)。
|
|
1789
|
|
1790 引数:
|
|
1791 * 第1の引数として、変換されるJSON文字列。
|
|
1792 * オプションで、第2のエラーとして、変換に失敗した場合に返される結果。
|
|
1793
|
|
1794 *タイプ*: 右辺値
|
|
1795
|
|
1796 #### `parseyaml`
|
|
1797
|
|
1798 YAMLの文字列を正確なPuppet構造に変換します。
|
|
1799
|
|
1800 引数:
|
|
1801 * 第1の引数として、変換されるYAML文字列。
|
|
1802 * オプションで、第2のエラーとして、変換に失敗した場合に返される結果。
|
|
1803
|
|
1804 *タイプ*: 右辺値
|
|
1805
|
|
1806 #### `pick`
|
|
1807
|
|
1808 値のリストから、未定義または空文字列ではない最初の値を返します。引数から任意の数字をとり、すべての値が未定義または空の場合はエラーが生じます。
|
|
1809
|
|
1810 ```puppet
|
|
1811 $real_jenkins_version = pick($::jenkins_version, '1.449')
|
|
1812 ```
|
|
1813
|
|
1814 *タイプ*: 右辺値
|
|
1815
|
|
1816 #### `pick_default`
|
|
1817
|
|
1818 値のリストにある最初の値を返します。`pick()`関数とは異なり、`pick_default()`は、すべての引数が空の場合も失敗にはなりません。そのため、デフォルトとして空の値を使用できます。
|
|
1819
|
|
1820 *タイプ*: 右辺値
|
|
1821
|
|
1822 #### `prefix`
|
|
1823
|
|
1824 配列のすべての要素、またはハッシュのキーに接頭辞を適用します。
|
|
1825
|
|
1826 例:
|
|
1827
|
|
1828 * `prefix(['a','b','c'], 'p')`は['pa','pb','pc']を返します。
|
|
1829 * `prefix({'a'=>'b','b'=>'c','c'=>'d'}, 'p')`は{'pa'=>'b','pb'=>'c','pc'=>'d'}を返します。
|
|
1830
|
|
1831 *タイプ*: 右辺値
|
|
1832
|
|
1833 #### `pry`
|
|
1834
|
|
1835 現在のスコープオブジェクトでpryデバッグセッションを起動します。コンパイル中の特定ポイントにおけるマニフェストコードのデバッグに役立ちます。`puppet apply`の実行中またはフォアグラウンドでPuppet masterを実行しているときにのみ使用する必要があります。PuppetのRubyGemsに`pry` gemがインストールされている必要があります。
|
|
1836
|
|
1837 *例:*
|
|
1838
|
|
1839 ```puppet
|
|
1840 pry()
|
|
1841 ```
|
|
1842
|
|
1843 pryセッションで役立つコマンドは以下のとおりです:
|
|
1844
|
|
1845 * `catalog`を実行すると、現在カタログをコンパイルしているコンテンツを見られます。
|
|
1846 * `cd catalog`および`ls`を実行すると、カタログメソッドおよびインスタンス変数を見られます。
|
|
1847 * `@resource_table`を実行すると、現在のカタログリソーステーブルを見られます。
|
|
1848
|
|
1849 #### `pw_hash`
|
|
1850
|
|
1851 crypt関数を用いてパスワードをハッシュします。ほとんどのPOSIXシステムで使えるハッシュを提供します。
|
|
1852
|
|
1853 この関数の最初の引数は、ハッシュするパスワードです。`undef`または空文字列の場合は、この関数により`undef`が返されます。
|
|
1854
|
|
1855 この関数の第2の引数は、使用するハッシュのタイプです。適切なcrypt(3)ハッシュ指定子に変換されます。有効なハッシュタイプは以下のとおりです:
|
|
1856
|
|
1857 |ハッシュタイプ |指定子|
|
|
1858 |---------------------|---------|
|
|
1859 |MD5 |1 |
|
|
1860 |SHA-256 |5 |
|
|
1861 |SHA-512 (推奨)|6 |
|
|
1862
|
|
1863 この関数の第3の引数は、使用するソルトです。
|
|
1864
|
|
1865 この関数は、Puppet masterのcrypt(3)実装を使用しています。お使いの環境に複数の異なるオペレーティングシステムが含まれている場合は、この関数を使用する前に、互換性があることを確認してください。
|
|
1866
|
|
1867 *タイプ*: 右辺値
|
|
1868
|
|
1869 *注:* この関数はRubyクラスの実装にあたり、UTF8との互換性がない可能性があります。互換性を確保するには、Ruby 2.4.0以降でこの関数を使用してください。
|
|
1870
|
|
1871 #### `range`
|
|
1872
|
|
1873 '(start, stop)'の形式で与えられた場合に、領域を配列として外挿します。たとえば、`range("0", "9")`は[0,1,2,3,4,5,6,7,8,9]を返します。ゼロパディングされた文字列は、自動的に整数に変換されます。したがって、`range("00", "09")`は[0,1,2,3,4,5,6,7,8,9]を返します。
|
|
1874
|
|
1875 非整数文字列を使用できます:
|
|
1876
|
|
1877 * `range("a", "c")`は["a","b","c"]を返します。
|
|
1878 * `range("host01", "host10")`は["host01", "host02", ..., "host09", "host10"]を返します。
|
|
1879
|
|
1880 末尾のゼロを明示的に含める必要があります。そうでないと、下層のRuby関数が適切に機能しません。
|
|
1881
|
|
1882 第3の引数を渡すと、生成された領域がその間隔で刻まれます。例:
|
|
1883
|
|
1884 * `range("0", "9", "2")`は["0","2","4","6","8"]を返します。
|
|
1885
|
|
1886 *タイプ*: 右辺値
|
|
1887
|
|
1888 #### `regexpescape`
|
|
1889
|
|
1890 文字列または文字列の配列を正規表現エスケープします。インプットとして、単一の文字列または配列のいずれかが必要です。
|
|
1891
|
|
1892 *タイプ*: 右辺値
|
|
1893
|
|
1894 #### `reject`
|
|
1895
|
|
1896 配列を検索し、提示された正規表現に一致する要素をすべてリジェクトします。
|
|
1897
|
|
1898 たとえば、`reject(['aaa','bbb','ccc','aaaddd'], 'aaa')`は['bbb','ccc']を返します。
|
|
1899
|
|
1900 *タイプ*: 右辺値
|
|
1901
|
|
1902 #### `reverse`
|
|
1903
|
|
1904 文字列または配列の順序を逆転します。
|
|
1905
|
|
1906 #### `round`
|
|
1907
|
|
1908 数値を最も近い整数に丸めます。
|
|
1909
|
|
1910 *タイプ*: 右辺値
|
|
1911
|
|
1912 #### `rstrip`
|
|
1913
|
|
1914 文字列の右側のスペースを取り除きます。
|
|
1915
|
|
1916 *タイプ*: 右辺値
|
|
1917
|
|
1918 #### `seeded_rand`
|
|
1919
|
|
1920 整数の最大値と文字列のシード値を取り、最大値よりも小さい反復可能かつランダムな整数を返します。`fqdn_rand`と同様ですが、シードにノード固有のデータが追加されません。
|
|
1921
|
|
1922 *タイプ*: 右辺値
|
|
1923
|
|
1924 #### `shell_escape`
|
|
1925
|
|
1926 文字列をエスケープし、Bourneシェルコマンドラインで安全に使用できるようにします。得られる文字列はクォートなしで使用する必要があり、ダブルクォートまたはシングルクォートでの使用は意図されていません。この関数は、Rubyの`Shellwords.shellescape()`関数と同様に挙動します。[Rubyドキュメント](http://ruby-doc.org/stdlib-2.3.0/libdoc/shellwords/rdoc/Shellwords.html#method-c-shellescape)を参照してください。
|
|
1927
|
|
1928 例:
|
|
1929
|
|
1930 ```puppet
|
|
1931 shell_escape('foo b"ar') => 'foo\ b\"ar'
|
|
1932 ```
|
|
1933
|
|
1934 *タイプ*: 右辺値
|
|
1935
|
|
1936 #### `shell_join`
|
|
1937
|
|
1938 与えられた文字列の配列からコマンドライン文字列を構築します。各配列アイテムが、Bourneシェルで使用できるようにエスケープされます。その後、すべてのアイテムがまとめられ、間にシングルスペースが配されます。この関数は、Rubyの`Shellwords.shelljoin()`関数と同様に挙動します。[Rubyドキュメント](http://ruby-doc.org/stdlib-2.3.0/libdoc/shellwords/rdoc/Shellwords.html#method-c-shelljoin)を参照してください。
|
|
1939
|
|
1940 例:
|
|
1941
|
|
1942 ```puppet
|
|
1943 shell_join(['foo bar', 'ba"z']) => 'foo\ bar ba\"z'
|
|
1944 ```
|
|
1945
|
|
1946 *タイプ*: 右辺値
|
|
1947
|
|
1948 #### `shell_split`
|
|
1949
|
|
1950 文字列をトークンの配列に分割します。この関数は、Rubyの`Shellwords.shellsplit()`関数と同様に挙動します。[Rubyドキュメント](http://ruby-doc.org/stdlib-2.3.0/libdoc/shellwords/rdoc/Shellwords.html#method-c-shellsplit)を参照してください。
|
|
1951
|
|
1952 *例:*
|
|
1953
|
|
1954 ```puppet
|
|
1955 shell_split('foo\ bar ba\"z') => ['foo bar', 'ba"z']
|
|
1956 ```
|
|
1957
|
|
1958 *タイプ*: 右辺値
|
|
1959
|
|
1960 #### `shuffle`
|
|
1961
|
|
1962 文字列または配列の順序をランダム化します。
|
|
1963
|
|
1964 *タイプ*: 右辺値
|
|
1965
|
|
1966 #### `size`
|
|
1967
|
|
1968 文字列、配列、ハッシュの要素数を返します。この関数は、今後のリリースでは廃止されます。Puppet 4では、`length`関数を使用してください。
|
|
1969
|
|
1970 *タイプ*: 右辺値
|
|
1971
|
|
1972 #### `sprintf_hash`
|
|
1973
|
|
1974 名前が指定されたテキストのリファレンスでprintfスタイルのフォーマットを実行します。
|
|
1975
|
|
1976 最初のパラメータは、ハッシュ内での残りのパラメータのフォーマット方法を記述するフォーマット文字列です。詳細については、Rubyの[`Kernel::sprintf`](https://ruby-doc.org/core-2.4.2/Kernel.html#method-i-sprintf)機能のマニュアルを参照してください。
|
|
1977
|
|
1978 例:
|
|
1979
|
|
1980 ```puppet
|
|
1981 $output = sprintf_hash('String: %<foo>s / number converted to binary: %<number>b',
|
|
1982 { 'foo' => 'a string', 'number' => 5 })
|
|
1983 # $output = 'String: a string / number converted to binary: 101'
|
|
1984 ```
|
|
1985
|
|
1986 *Type*: rvalue
|
|
1987
|
|
1988 #### `sort`
|
|
1989
|
|
1990 文字列と配列を語彙的に分類します。
|
|
1991
|
|
1992 *タイプ*: 右辺値
|
|
1993
|
|
1994 *注:* この関数はRubyクラスの実装にあたり、UTF8との互換性がない可能性があります。互換性を確保するには、Ruby 2.4.0以降でこの関数を使用してください。
|
|
1995
|
|
1996 #### `squeeze`
|
|
1997
|
|
1998 文字列内の連続した繰り返し('aaaa'など)を単一文字に置き換え、新たな文字列を返します。
|
|
1999
|
|
2000 *タイプ*: 右辺値
|
|
2001
|
|
2002 #### `str2bool`
|
|
2003
|
|
2004 特定の文字列をブーリアンに変換します。値'1'、'true'、't'、'y'、'yes'を含む文字列は`true`に変換されます。値'0'、'false'、'f'、'n'、'no'を含む文字列、および空文字列または未定義文字列は`false`に変換されます。その他の値の場合、エラーが生じます。このチェックでは、大文字と小文字は区別されません。
|
|
2005
|
|
2006 *タイプ*: 右辺値
|
|
2007
|
|
2008 #### `str2saltedsha512`
|
|
2009
|
|
2010 OS Xバージョン10.7以上で使用されるソルト付きSHA512パスワードハッシュに文字列を変換します。hexバージョンのソルト付きSHA512パスワードハッシュを返します。これは、有効なパスワード属性としてPuppetマニフェストに挿入することができます。
|
|
2011
|
|
2012 *タイプ*: 右辺値
|
|
2013
|
|
2014 *注:* この関数はRubyクラスの実装にあたり、UTF8との互換性がない可能性があります。互換性を確保するには、Ruby 2.4.0以降でこの関数を使用してください。
|
|
2015
|
|
2016 #### `strftime`
|
|
2017
|
|
2018 フォーマットされた時刻を返します。
|
|
2019
|
|
2020 たとえば、`strftime("%s")`はUnixエポックからの経過時間を返し、`strftime("%Y-%m-%d")`は日付を返します。
|
|
2021
|
|
2022 引数: `strftime`フォーマットで時間を指定する文字列。詳細については、Ruby [strftime](https://ruby-doc.org/core-2.1.9/Time.html#method-i-strftime)ドキュメントを参照してください。
|
|
2023
|
|
2024 *タイプ*: 右辺値
|
|
2025
|
|
2026 *注:* この関数はRubyクラスの実装にあたり、UTF8との互換性がない可能性があります。互換性を確保するには、Ruby 2.4.0以降でこの関数を使用してください。
|
|
2027
|
|
2028 *フォーマット:*
|
|
2029
|
|
2030 * `%a`: 曜日の名称の短縮形('Sun')
|
|
2031 * `%A`: 曜日の完全な名称('Sunday')
|
|
2032 * `%b`: 月の名称の短縮形('Jan')
|
|
2033 * `%B`: 月の完全な名称('January')
|
|
2034 * `%c`: 推奨される地域の日付および時刻の表現
|
|
2035 * `%C`: 世紀(2009年であれば20)
|
|
2036 * `%d`: その月の日(01..31)
|
|
2037 * `%D`: 日付(%m/%d/%y)
|
|
2038 * `%e`: その月の日、1桁の場合は半角空白で埋める( 1..31)
|
|
2039 * `%F`: %Y-%m-%d(ISO 8601の日付フォーマット)と同等
|
|
2040 * `%h`: %bと同等
|
|
2041 * `%H`: 24時間制の時(00..23)
|
|
2042 * `%I`: 12時間制の時(01..12)
|
|
2043 * `%j`: 年中の通算日(001..366)
|
|
2044 * `%k`: 24時間制の時、1桁の場合は半角空白で埋める( 0..23)
|
|
2045 * `%l`: 12時間制の時、1桁の場合は半角空白で埋める( 0..12)
|
|
2046 * `%L`: ミリ秒(000..999)
|
|
2047 * `%m`: その年の月(01..12)
|
|
2048 * `%M`: 分(00..59)
|
|
2049 * `%n`: 改行(\n)
|
|
2050 * `%N`: 秒の小数点以下の桁、デフォルトは9桁(ナノ秒)
|
|
2051 * `%3N`: ミリ秒(3桁)
|
|
2052 * `%6N`: マイクロ秒(6桁)
|
|
2053 * `%9N`: ナノ秒(9桁)
|
|
2054 * `%p`: 午前または午後('AM'または'PM')
|
|
2055 * `%P`: 午前または午後('am'または'pm')
|
|
2056 * `%r`: 12時間制の時刻(%I:%M:%S %pと同等)
|
|
2057 * `%R`: 24時間制の時刻(%H:%M)
|
|
2058 * `%s`: Unixエポック、1970-01-01 00:00:00 UTCからの経過秒
|
|
2059 * `%S`: 秒(00..60)
|
|
2060 * `%t`: タブ文字( )
|
|
2061 * `%T`: 24時間制の時刻(%H:%M:%S)
|
|
2062 * `%u`: 月曜日を1とした、曜日の数値表現(1..7)
|
|
2063 * `%U`: 最初の日曜日を第1週の始まりとした、現在の週を表す数(00..53)
|
|
2064 * `%v`: VMS形式の日付(%e-%b-%Y)
|
|
2065 * `%V`: ISO 8601形式の暦週(01..53)
|
|
2066 * `%W`: 最初の月曜日を第1週の始まりとした、現在の週を表す数(00..53)
|
|
2067 * `%w`: 曜日(日曜が0、0..6)
|
|
2068 * `%x`: 推奨される日付のみの表現、時刻はなし
|
|
2069 * `%X`: 推奨される時刻のみの表現、日付はなし
|
|
2070 * `%y`: 世紀なしの年(00..99)
|
|
2071 * `%Y`: 世紀ありの年
|
|
2072 * `%z`: タイムゾーン、UTCからのオフセット(+0900など)
|
|
2073 * `%Z`: タイムゾーンの名称
|
|
2074 * `%%`: '%'文字
|
|
2075
|
|
2076 #### `strip`
|
|
2077
|
|
2078 1つの文字列、または配列内のすべての文字列から、冒頭および末尾の空白を削除します。たとえば、`strip(" aaa ")`は"aaa"になります。
|
|
2079
|
|
2080 *タイプ*: 右辺値
|
|
2081
|
|
2082 #### `suffix`
|
|
2083
|
|
2084 配列のすべての要素、またはハッシュのすべてのキーに接尾辞を適用します。
|
|
2085
|
|
2086 例:
|
|
2087
|
|
2088 * `suffix(['a','b','c'], 'p')`は['ap','bp','cp']を返します。
|
|
2089 * `suffix({'a'=>'b','b'=>'c','c'=>'d'}, 'p')`は{'ap'=>'b','bp'=>'c','cp'=>'d'}を返します。
|
|
2090
|
|
2091 *タイプ*: 右辺値
|
|
2092
|
|
2093 #### `swapcase`
|
|
2094
|
|
2095 文字列の現在の大文字と小文字を入れ替えます。たとえば、`swapcase("aBcD")`は"AbCd"になります。
|
|
2096
|
|
2097 *タイプ*: 右辺値
|
|
2098
|
|
2099 *注:* この関数はRubyクラスの実装にあたり、UTF8との互換性がない可能性があります。互換性を確保するには、Ruby 2.4.0以降でこの関数を使用してください。
|
|
2100
|
|
2101 #### `time`
|
|
2102
|
|
2103 現在のUnixエポック時刻を整数として返します。
|
|
2104
|
|
2105 たとえば、`time()`は'1311972653'などを返します。
|
|
2106
|
|
2107 *タイプ*: 右辺値
|
|
2108
|
|
2109 #### `to_bytes`
|
|
2110
|
|
2111 引数をバイトに変換します。
|
|
2112
|
|
2113 たとえば、"4 kB"は"4096"になります。
|
|
2114
|
|
2115 引数: 単一の文字列。
|
|
2116
|
|
2117 *タイプ*: 右辺値
|
|
2118
|
|
2119 #### `to_json`
|
|
2120
|
|
2121 入力値をJSON形式の文字列に変換します。
|
|
2122
|
|
2123 例えば、`{ "key" => "value" }`は`{"key":"value"}`になります。
|
|
2124
|
|
2125 *タイプ*: 右辺値
|
|
2126
|
|
2127 #### `to_json_pretty`
|
|
2128
|
|
2129 入力値を整形されたJSON形式の文字列に変換します。
|
|
2130
|
|
2131 例えば、`{ "key" => "value" }`は`{\n \"key\": \"value\"\n}`になります。
|
|
2132
|
|
2133 *タイプ*: 右辺値
|
|
2134
|
|
2135 #### `to_yaml`
|
|
2136
|
|
2137 入力値をYAML形式の文字列に変換します。
|
|
2138
|
|
2139 例えば、`{ "key" => "value" }`は`"---\nkey: value\n"`になります。
|
|
2140
|
|
2141 *タイプ*: 右辺値
|
|
2142
|
|
2143 #### `try_get_value`
|
|
2144
|
|
2145 **非推奨:** `dig()`に置き換えられました。
|
|
2146
|
|
2147 ハッシュおよび配列の複数レイヤー内の値を取得します。
|
|
2148
|
|
2149 引数:
|
|
2150
|
|
2151 * 第1の引数として、パスを含む文字列。この引数は、ゼロではじまり、パス区切り文字(デフォルトは"/")で区切ったハッシュキーまたは配列インデックスの文字列として提示してください。この関数は各パスコンポーネントにより構造内を移動し、パスの最後で値を返すよう試みます。
|
|
2152
|
|
2153 *デフォルトの第2の引数。パスが正しくない場合や、値が見つからない場合、その他のエラーが生じた場合は、この引数が返されます。
|
|
2154 * 最後の引数として、パス区切り文字。
|
|
2155
|
|
2156 ```ruby
|
|
2157 $data = {
|
|
2158 'a' => {
|
|
2159 'b' => [
|
|
2160 'b1',
|
|
2161 'b2',
|
|
2162 'b3',
|
|
2163 ]
|
|
2164 }
|
|
2165 }
|
|
2166
|
|
2167 $value = try_get_value($data, 'a/b/2')
|
|
2168 # $value = 'b3'
|
|
2169
|
|
2170 # 可能なすべてのオプションを使用
|
|
2171 $value = try_get_value($data, 'a/b/2', 'not_found', '/')
|
|
2172 # $value = 'b3'
|
|
2173
|
|
2174 # デフォルト値を使用
|
|
2175 $value = try_get_value($data, 'a/b/c/d', 'not_found')
|
|
2176 # $value = 'not_found'
|
|
2177
|
|
2178 # カスタム区切りを使用
|
|
2179 $value = try_get_value($data, 'a|b', [], '|')
|
|
2180 # $value = ['b1','b2','b3']
|
|
2181 ```
|
|
2182
|
|
2183 1. **$data** 取り扱うデータ構造。
|
|
2184 2. **'a/b/2'** パス文字列。
|
|
2185 3. **'not_found'** デフォルト値。何も見つからない場合に返されます。
|
|
2186 (オプション、デフォルトは`undef`)
|
|
2187 4. **'/'** パス区切り文字。
|
|
2188 (オプション、デフォルトは*'/'*)
|
|
2189
|
|
2190 *タイプ*: 右辺値
|
|
2191
|
|
2192 #### `type3x`
|
|
2193
|
|
2194 **非推奨:**この関数は、今後のリリースで廃止されます。
|
|
2195
|
|
2196 与えられた値のタイプを説明する文字列を返します。タイプとしては、文字列、配列、ハッシュ、フロート、整数、ブーリアンが可能です。Puppet 4では、この代わりに新しいタイプシステムを使用してください。
|
|
2197
|
|
2198 引数:
|
|
2199
|
|
2200 * 文字列
|
|
2201 * 配列
|
|
2202 * ハッシュ
|
|
2203 * フロート
|
|
2204 * 整数
|
|
2205 * ブーリアン
|
|
2206
|
|
2207 *タイプ*: 右辺値
|
|
2208
|
|
2209 #### `type_of`
|
|
2210
|
|
2211 この関数は下位互換性を得るために提供されていますが、Puppetで提供されている内蔵の[type()関数](https://docs.puppet.com/puppet/latest/reference/function.html#type)の使用を推奨します。
|
|
2212
|
|
2213 与えられた値のリテラル型を返します。Puppet 4が必要です。`if type_of($some_value) <= Array[String] { ... }`のように(これは`if $some_value =~ Array[String] { ... }`に相当します)、`<=`を用いたタイプの比較に役立ちます。
|
|
2214
|
|
2215 *タイプ*: 右辺値
|
|
2216
|
|
2217 #### `union`
|
|
2218
|
|
2219 2つ以上の配列を重複なしで結合したものを返します。
|
|
2220
|
|
2221 たとえば、`union(["a","b","c"],["b","c","d"])`は["a","b","c","d"]を返します。
|
|
2222
|
|
2223 *タイプ*: 右辺値
|
|
2224
|
|
2225 #### `unique`
|
|
2226
|
|
2227 文字列および配列から重複を削除します。
|
|
2228
|
|
2229 たとえば、`unique("aabbcc")`は'abc'を、`unique(["a","a","b","b","c","c"])`は["a","b","c"]を返します。
|
|
2230
|
|
2231 *タイプ*: 右辺値
|
|
2232
|
|
2233 #### `unix2dos`
|
|
2234
|
|
2235 与えられた文字列のDOSバージョンを返します。クロスプラットフォームテンプレートでファイルリソースを使用する場合に役立ちます。
|
|
2236
|
|
2237 *タイプ*: 右辺値
|
|
2238
|
|
2239 ```puppet
|
|
2240 file { $config_file:
|
|
2241 ensure => file,
|
|
2242 content => unix2dos(template('my_module/settings.conf.erb')),
|
|
2243 }
|
|
2244 ```
|
|
2245
|
|
2246 [dos2unix](#dos2unix)も参照してください。
|
|
2247
|
|
2248 #### `upcase`
|
|
2249
|
|
2250 オブジェクト、配列、オブジェクトのハッシュを大文字に変換します。変換されるオブジェクトは、大文字化に対応するものでなければなりません。
|
|
2251
|
|
2252 たとえば、`upcase('abcd')`は'ABCD'を返します。
|
|
2253
|
|
2254 *タイプ*: 右辺値
|
|
2255
|
|
2256 *注:* この関数はRubyクラスの実装にあたり、UTF8との互換性がない可能性があります。互換性を確保するには、Ruby 2.4.0以降でこの関数を使用してください。
|
|
2257
|
|
2258 #### `uriescape`
|
|
2259
|
|
2260 文字列または文字列の配列をURLエンコードします。
|
|
2261
|
|
2262 引数: 単一の文字列または文字列の配列。
|
|
2263
|
|
2264 *タイプ*: 右辺値
|
|
2265
|
|
2266 *注:* この関数はRubyクラスの実装にあたり、UTF8との互換性がない可能性があります。互換性を確保するには、Ruby 2.4.0以降でこの関数を使用してください。
|
|
2267
|
|
2268 #### `validate_absolute_path`
|
|
2269
|
|
2270 ファイルシステムの絶対パスを表す任意の文字列の有効性を確認します。WindowsおよびUnix形式のパスで機能します。
|
|
2271
|
|
2272 以下の値が渡されます:
|
|
2273
|
|
2274 ```puppet
|
|
2275 $my_path = 'C:/Program Files (x86)/Puppet Labs/Puppet'
|
|
2276 validate_absolute_path($my_path)
|
|
2277 $my_path2 = '/var/lib/puppet'
|
|
2278 validate_absolute_path($my_path2)
|
|
2279 $my_path3 = ['C:/Program Files (x86)/Puppet Labs/Puppet','C:/Program Files/Puppet Labs/Puppet']
|
|
2280 validate_absolute_path($my_path3)
|
|
2281 $my_path4 = ['/var/lib/puppet','/usr/share/puppet']
|
|
2282 validate_absolute_path($my_path4)
|
|
2283 ```
|
|
2284
|
|
2285 以下の値は失敗になり、コンパイルが中止されます:
|
|
2286
|
|
2287 ```puppet
|
|
2288 validate_absolute_path(true)
|
|
2289 validate_absolute_path('../var/lib/puppet')
|
|
2290 validate_absolute_path('var/lib/puppet')
|
|
2291 validate_absolute_path([ 'var/lib/puppet', '/var/foo' ])
|
|
2292 validate_absolute_path([ '/var/lib/puppet', 'var/foo' ])
|
|
2293 $undefined = `undef`
|
|
2294 validate_absolute_path($undefined)
|
|
2295 ```
|
|
2296
|
|
2297 *タイプ*: ステートメント
|
|
2298
|
|
2299 #### `validate_array`
|
|
2300
|
|
2301 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
2302
|
|
2303 渡されたすべての値が配列データ構造であることを確認します。このチェックで不合格となった値がある場合は、カタログコンパイルが中止されます。
|
|
2304
|
|
2305 以下の値が渡されます:
|
|
2306
|
|
2307 ```puppet
|
|
2308 $my_array = [ 'one', 'two' ]
|
|
2309 validate_array($my_array)
|
|
2310 ```
|
|
2311
|
|
2312 以下の値は失敗になり、コンパイルが中止されます:
|
|
2313
|
|
2314 ```puppet
|
|
2315 validate_array(true)
|
|
2316 validate_array('some_string')
|
|
2317 $undefined = `undef`
|
|
2318 validate_array($undefined)
|
|
2319 ```
|
|
2320
|
|
2321 *タイプ*: ステートメント
|
|
2322
|
|
2323 #### `validate_augeas`
|
|
2324
|
|
2325 Augeasレンズを用いて文字列を確認します。
|
|
2326
|
|
2327 引数:
|
|
2328
|
|
2329 * 第1の引数として、テストする文字列。
|
|
2330 * 第2の引数として、使用するAugeasレンズの名前。
|
|
2331 * オプションの第3の文字列として、ファイル内で見つかるべき**ではない**パスのリスト。
|
|
2332 * オプションの第4の引数として、ユーザに表示するエラーメッセージ。
|
|
2333
|
|
2334 Augeasがレンズによる文字列の構文解析に失敗した場合は、構文エラーによりコンパイルが中止されます。
|
|
2335
|
|
2336 `$file`変数は、Augeasツリーでテストされる一時ファイルのロケーションを示します。
|
|
2337
|
|
2338 たとえば、$passwdcontentにユーザの`foo`が含まれないようにするには、第3の引数を以下のようにします:
|
|
2339
|
|
2340 ```puppet
|
|
2341 validate_augeas($passwdcontent, 'Passwd.lns', ['$file/foo'])
|
|
2342 ```
|
|
2343
|
|
2344 エラーメッセージを生成して表示するには、第4の引数を以下のようにします:
|
|
2345
|
|
2346 ```puppet
|
|
2347 validate_augeas($sudoerscontent, 'Sudoers.lns', [], 'Failed to validate sudoers content with Augeas')
|
|
2348 ```
|
|
2349
|
|
2350 *タイプ*: ステートメント
|
|
2351
|
|
2352 #### `validate_bool`
|
|
2353
|
|
2354 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
2355
|
|
2356 渡されたすべての値が`true`または`false`のいずれかであることを確認します。
|
|
2357 このチェックで不合格となった値がある場合は、カタログコンパイルが中止されます。
|
|
2358
|
|
2359 以下の値が渡されます:
|
|
2360
|
|
2361 ```puppet
|
|
2362 $iamtrue = true
|
|
2363 validate_bool(true)
|
|
2364 validate_bool(true, true, false, $iamtrue)
|
|
2365 ```
|
|
2366
|
|
2367 以下の値は失敗になり、コンパイルが中止されます:
|
|
2368
|
|
2369 ```puppet
|
|
2370 $some_array = [ true ]
|
|
2371 validate_bool("false")
|
|
2372 validate_bool("true")
|
|
2373 validate_bool($some_array)
|
|
2374 ```
|
|
2375
|
|
2376 *タイプ*: ステートメント
|
|
2377
|
|
2378 #### `validate_cmd`
|
|
2379
|
|
2380 外部コマンドにより文字列を確認します。
|
|
2381
|
|
2382 引数:
|
|
2383 * 第1の引数として、テストする文字列。
|
|
2384 * 第2の引数として、テストコマンドのパス。この引数は、ファイルパスのプレースホルダ―として%をとります(%プレースホルダーが与えられていない場合、デフォルトはコマンド末尾)。パスした文字列を含む一時ファイルに対してコマンドが起動した場合や、ゼロではない値が返された場合は、構文エラーによりコンパイルが中止されます。
|
|
2385 * オプションの第3の引数として、ユーザに表示するエラーメッセージ。
|
|
2386
|
|
2387 ```puppet
|
|
2388 # デフォルトのパス末尾
|
|
2389 validate_cmd($sudoerscontent, '/usr/sbin/visudo -c -f', 'Visudo failed to validate sudoers content')
|
|
2390 ```
|
|
2391
|
|
2392 ```puppet
|
|
2393 # ファイルロケーションとして%を使用
|
|
2394 validate_cmd($haproxycontent, '/usr/sbin/haproxy -f % -c', 'Haproxy failed to validate config content')
|
|
2395 ```
|
|
2396
|
|
2397 *タイプ*: ステートメント
|
|
2398
|
|
2399 #### `validate_domain_name`
|
|
2400
|
|
2401 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
2402
|
|
2403 渡されたすべての値が構文的に正しいドメイン名であることを確認します。このチェックで不合格となった値がある場合は、カタログコンパイルが中止されます。
|
|
2404
|
|
2405 以下の値が渡されます:
|
|
2406
|
|
2407 ~~~
|
|
2408 $my_domain_name = 'server.domain.tld'
|
|
2409 validate_domain_name($my_domain_name)
|
|
2410 validate_domain_name('domain.tld', 'puppet.com', $my_domain_name)
|
|
2411 ~~~
|
|
2412
|
|
2413 以下の値が不合格となり、コンパイルが中止されます:
|
|
2414
|
|
2415 ~~~
|
|
2416 validate_domain_name(1)
|
|
2417 validate_domain_name(true)
|
|
2418 validate_domain_name('invalid domain')
|
|
2419 validate_domain_name('-foo.example.com')
|
|
2420 validate_domain_name('www.example.2com')
|
|
2421 ~~~
|
|
2422
|
|
2423 *タイプ*: ステートメント
|
|
2424
|
|
2425 #### `validate_email_address`
|
|
2426
|
|
2427 渡されたすべての値が有効なメールアドレスであることを確認します。このチェックで不合格となった値がある場合、コンパイルが失敗します。
|
|
2428
|
|
2429 以下の値が渡されます:
|
|
2430
|
|
2431 ~~~
|
|
2432 $my_email = "waldo@gmail.com"
|
|
2433 validate_email_address($my_email)
|
|
2434 validate_email_address("bob@gmail.com", "alice@gmail.com", $my_email)
|
|
2435 ~~~
|
|
2436
|
|
2437 以下の値が不合格となり、コンパイルが中止されます:
|
|
2438
|
|
2439 ~~~
|
|
2440 $some_array = [ 'bad_email@/d/efdf.com' ]
|
|
2441 validate_email_address($some_array)
|
|
2442 ~~~
|
|
2443
|
|
2444 *タイプ*: ステートメント
|
|
2445
|
|
2446 #### `validate_hash`
|
|
2447
|
|
2448 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
2449
|
|
2450 渡されたすべての値がハッシュデータ構造であることを確認します。このチェックで不合格となった値がある場合は、カタログコンパイルが中止されます。
|
|
2451
|
|
2452 以下の値が渡されます:
|
|
2453
|
|
2454 ```puppet
|
|
2455 $my_hash = { 'one' => 'two' }
|
|
2456 validate_hash($my_hash)
|
|
2457 ```
|
|
2458
|
|
2459 以下の値は失敗になり、コンパイルが中止されます:
|
|
2460
|
|
2461 ```puppet
|
|
2462 validate_hash(true)
|
|
2463 validate_hash('some_string')
|
|
2464 $undefined = `undef`
|
|
2465 validate_hash($undefined)
|
|
2466 ```
|
|
2467
|
|
2468 *タイプ*: ステートメント
|
|
2469
|
|
2470 #### `validate_integer`
|
|
2471
|
|
2472 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
2473
|
|
2474 整数または整数の配列を確認します。いずれかがチェックで不合格になった場合には、カタログコンパイルが中止されます。
|
|
2475
|
|
2476 引数:
|
|
2477
|
|
2478 * 第1の引数として、整数または整数の配列。
|
|
2479 * オプションの第2の引数として、最大値。第1の引数(のすべての要素)は、この最大値以下でなければなりません。
|
|
2480 * オプションの第3の引数として、最小値。第1の引数(のすべての要素)は、この最小値以上でなければなりません。
|
|
2481
|
|
2482 第1の引数が整数または整数の配列でない場合や、第2または第3の引数が整数に変換できない場合は、この関数は失敗になります。ただし、最小値が与えられている場合は(この場合に限られます)、第2の引数を空文字列または`undef`にすることが可能です。これは、最小チェックを確実に行うためのプレースホルダーとして機能します。
|
|
2483
|
|
2484 以下の値が渡されます:
|
|
2485
|
|
2486 ```puppet
|
|
2487 validate_integer(1)
|
|
2488 validate_integer(1, 2)
|
|
2489 validate_integer(1, 1)
|
|
2490 validate_integer(1, 2, 0)
|
|
2491 validate_integer(2, 2, 2)
|
|
2492 validate_integer(2, '', 0)
|
|
2493 validate_integer(2, `undef`, 0)
|
|
2494 $foo = `undef`
|
|
2495 validate_integer(2, $foo, 0)
|
|
2496 validate_integer([1,2,3,4,5], 6)
|
|
2497 validate_integer([1,2,3,4,5], 6, 0)
|
|
2498 ```
|
|
2499
|
|
2500 * 加えて、上述のすべて。ただし、文字列として渡された値を任意に組み合わせたもの('1'または"1")。
|
|
2501 * 加えて、上述のすべて。ただし、負の整数値を(適切に)組み合わせたもの。
|
|
2502
|
|
2503 以下の値は失敗になり、コンパイルが中止されます:
|
|
2504
|
|
2505 ```puppet
|
|
2506 validate_integer(true)
|
|
2507 validate_integer(false)
|
|
2508 validate_integer(7.0)
|
|
2509 validate_integer({ 1 => 2 })
|
|
2510 $foo = `undef`
|
|
2511 validate_integer($foo)
|
|
2512 validate_integer($foobaridontexist)
|
|
2513
|
|
2514 validate_integer(1, 0)
|
|
2515 validate_integer(1, true)
|
|
2516 validate_integer(1, '')
|
|
2517 validate_integer(1, `undef`)
|
|
2518 validate_integer(1, , 0)
|
|
2519 validate_integer(1, 2, 3)
|
|
2520 validate_integer(1, 3, 2)
|
|
2521 validate_integer(1, 3, true)
|
|
2522 ```
|
|
2523
|
|
2524 * 加えて、上述のすべて。ただし、文字列として渡された値を任意に組み合わせたもの (`false`、または"false")。
|
|
2525 * 加えて、上述のすべて。ただし、負の整数値を不適切に組み合わせたもの。
|
|
2526 * 加えて、上述のすべて。ただし、配列内の非整数アイテムまたは最大/最小引数を用いたもの。
|
|
2527
|
|
2528 *タイプ*: ステートメント
|
|
2529
|
|
2530 #### `validate_ip_address`
|
|
2531
|
|
2532 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
2533
|
|
2534 IPv4アドレスかIPv6アドレスかにかかわらず、引数がIPアドレスであることを確認します。また、ネットマスクによりIPアドレスを確認します。
|
|
2535
|
|
2536 引数: IPアドレスを指定する文字列。
|
|
2537
|
|
2538 以下の値が渡されます:
|
|
2539
|
|
2540 ```puppet
|
|
2541 validate_ip_address('0.0.0.0')
|
|
2542 validate_ip_address('8.8.8.8')
|
|
2543 validate_ip_address('127.0.0.1')
|
|
2544 validate_ip_address('194.232.104.150')
|
|
2545 validate_ip_address('3ffe:0505:0002::')
|
|
2546 validate_ip_address('::1/64')
|
|
2547 validate_ip_address('fe80::a00:27ff:fe94:44d6/64')
|
|
2548 validate_ip_address('8.8.8.8/32')
|
|
2549 ```
|
|
2550
|
|
2551 以下の値は失敗になり、コンパイルが中止されます:
|
|
2552
|
|
2553 ```puppet
|
|
2554 validate_ip_address(1)
|
|
2555 validate_ip_address(true)
|
|
2556 validate_ip_address(0.0.0.256)
|
|
2557 validate_ip_address('::1', {})
|
|
2558 validate_ip_address('0.0.0.0.0')
|
|
2559 validate_ip_address('3.3.3')
|
|
2560 validate_ip_address('23.43.9.22/64')
|
|
2561 validate_ip_address('260.2.32.43')
|
|
2562 ```
|
|
2563
|
|
2564
|
|
2565 #### `validate_legacy`
|
|
2566
|
|
2567 指定したタイプおよび非推奨の確認関数の両方に照らして値を確認します。両方にパスした場合はそのままパスし、片方の確認のみにパスした場合はエラーが生じ、両方の確認でfalseが返された場合は失敗になります。
|
|
2568
|
|
2569 引数:
|
|
2570
|
|
2571 * 値のチェックに用いるタイプ。
|
|
2572 * 過去の確認関数のフルネーム。
|
|
2573 * チェックする値。
|
|
2574 * 過去の確認関数に必要な引数の不特定数。
|
|
2575
|
|
2576 例:
|
|
2577
|
|
2578 ```puppet
|
|
2579 validate_legacy('Optional[String]', 'validate_re', 'Value to be validated', ["."])
|
|
2580 ```
|
|
2581
|
|
2582 この関数は、Puppet 3形式の引数確認(stdlibの`validate_*`関数を使用)からPuppet 4データタイプへのモジュールのアップデートに対応しており、Puppet 3形式の確認に頼っている場合も機能性が中断することはありません。
|
|
2583
|
|
2584 > 注: この関数は、Puppet 4.4.0 (PE 2016.1)以降にのみ対応しています。
|
|
2585
|
|
2586 ##### モジュールユーザへ
|
|
2587
|
|
2588 Puppet 4を使用している場合、`validate_legacy`関数を使えば、非推奨のPuppet 3の`validate_*`関数を探し、分離することができます。これらの関数は、stdlibバージョン4.13時点で非推奨になっており、今後のstdlibバージョンでは削除されます。
|
|
2589
|
|
2590 Puppet 4では、[データタイプ](https://docs.puppet.com/puppet/latest/reference/lang_data.html)を用いた改良版の定義タイプチェックが可能です。データタイプでは、Puppet 3の`validate_*`関数で見られた、矛盾につながるいくつかの問題を回避できます。たとえば、[validate_numeric](#validate_numeric)では、数字だけでなく、数字の配列や数字のように見える文字列も意図せず許可されていました。
|
|
2591
|
|
2592 Puppet 4とともに、非推奨の `validate_*`関数を用いたモジュールを使用している場合は、非推奨メッセージが表示されることがあります。`validate_legacy`関数を使えば、そうした差異を可視化し、より明快なPuppet 4構文に簡単に移行することができます。
|
|
2593
|
|
2594 表示される非推奨メッセージは、使用しているモジュールやデータによって異なることがあります。以下の非推奨メッセージは、Puppet 4でのみデフォルトで表示されます:
|
|
2595
|
|
2596 * `Notice: Accepting previously invalid value for target type '<type>'`: このメッセージは、情報提供の目的のみで表示されるものです。使用している値は、新形式で許可されていますが、旧確認関数では無効となります。
|
|
2597 * `Warning: This method is deprecated, please use the stdlib validate_legacy function`: モジュールがまだ`validate_legacy`にアップグレードされていません。[deprecation](#deprecation)オプションを使用してさしあたり警告を解除するか、モジュールの開発者によりフィックスを提出してください。この問題の解決方法については、以下の[モジュール開発者へ](#モジュール開発者へ)を参照してください。
|
|
2598 * `Warning: validate_legacy(<function>) expected <type> value, got <actual type>_`: コードが渡す値は、Puppet 3形式の確認では認められますが、次バージョンのモジュールでは認められません。ほとんどの場合、数字またはブーリアンからクォートを削除すれば、この問題を解決することができます。
|
|
2599 * `Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Function Call, validate_legacy(<function>) expected <type> value, got <actual type>`: コードの渡す値は、新形式の確認でも旧形式の確認でも認められません。
|
|
2600
|
|
2601 ##### モジュール開発者へ
|
|
2602
|
|
2603 `validate_legacy`関数は、モジュールユーザの使用している機能を中断させずに、 Puppet 3形式の確認からPuppet 4形式の確認に移行するのに役立ちます。
|
|
2604
|
|
2605 Puppet 4形式の確認に移行すれば、[データタイプ](https://docs.puppet.com/puppet/latest/reference/lang_data.html)を用いた、より明確な定義タイプチェックが可能になります。Puppet 3の`validate_*` 関数の多くは、確認という点で驚くほど多くの穴があります。たとえば、[validate_numeric](#validate_numeric)では、細部をコントロールできないため、数字だけでなく、数字の配列や数字のように見える文字列も許可されます。
|
|
2606
|
|
2607 クラスおよび定義タイプの各パラメータについて、使用する新しいPuppet 4データタイプを選択してください。たいていの場合、新しいデータタイプにより、元の`validate_*`関数とは異なる値のセットを使用できるようになります。以下のような状況になります:
|
|
2608
|
|
2609 | | `validate_` pass | `validate_` fail |
|
|
2610 | ------------ | ---------------- | ---------------- |
|
|
2611 | マッチタイプ | パス | パス、通告 |
|
|
2612 | 失敗タイプ | パス、非推奨 | 失敗 |
|
|
2613
|
|
2614 現在のところ、確認後のコードでも、すべての可能な値に対処する必要がありますが、新形式にマッチする値のみを渡すように、コードのユーザがマニフェストを変更することができます。
|
|
2615
|
|
2616 stdlibの`validate_*`関数それぞれについて、マッチする`Stdlib::Compat::*`タイプがあり、適切な値のセットが許可されます。注意事項については、stdlibソースコードの `types/`ディレクトリにあるドキュメントを参照してください。
|
|
2617
|
|
2618 たとえば、数字のみが許可されるクラスを与えると、以下のようになります:
|
|
2619
|
|
2620 ```puppet
|
|
2621 class example($value) {
|
|
2622 validate_numeric($value)
|
|
2623 ```
|
|
2624
|
|
2625 得られる確認コードは、以下のようになります:
|
|
2626
|
|
2627 ```puppet
|
|
2628 class example(
|
|
2629 Variant[Stdlib::Compat::Numeric, Numeric] $value
|
|
2630 ) {
|
|
2631 validate_legacy(Numeric, 'validate_numeric', $value)
|
|
2632 ```
|
|
2633
|
|
2634 ここでは、`$value`のタイプが`Variant[Stdlib::Compat::Numeric, Numeric]`と定義されています。これにより、任意の`Numeric` (新形式)のほか、`validate_numeric`で(`Stdlib::Compat::Numeric`を通じて)これまで許可されていたすべての値を使用できます。
|
|
2635
|
|
2636 `validate_legacy`を呼び出すと、適切なログまたは失敗メッセージのトリガーが処理されます。これには、新形式、以前の確認関数の名称、およびその関数のすべての引数が必要です。
|
|
2637
|
|
2638 お使いのモジュールがまだPuppet 3をサポートしている場合は、これは互換性を破る変更になります。`metadata.json`要件セクションをアップデートしてモジュールがもうPuppet 3をサポートしていないことを示し、モジュールのメジャーバージョンを放棄してください。この変更を加えても、モジュールに関する既存のすべてのテストにパスするはずです。新たに可能になった値について、追加のテストを作成してください。
|
|
2639
|
|
2640 これは互換性を破る変更であることから、取り除きたいすべてのパラメータについて [`deprecation`](#deprecation)をコールしたり、パラメータにさらなる制約を追加したりする良い機会でもあります。
|
|
2641
|
|
2642 このバージョンのリリース後、互換性を破る変更を加えた別のリリースを公開し、すべての互換性タイプおよび `validate_legacy`のコールを削除することができます。その時点で、コードを実行し、過去に可能だった値に関する残余要素を取り除くこともできます。
|
|
2643
|
|
2644 そうした変更については、必ずCHANGELOGおよびREADMEで通告してください。
|
|
2645
|
|
2646 #### `validate_numeric`
|
|
2647
|
|
2648 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
2649
|
|
2650 数値または数値の配列や文字列を確認します。いずれかがチェックに失敗した場合には、カタログコンパイルが中止されます。
|
|
2651
|
|
2652 引数:
|
|
2653
|
|
2654 * 数値、または数値の配列か文字列。
|
|
2655 * オプションで、最大値。第1の引数(のすべての要素) は、この最大値以下でなければなりません。
|
|
2656 * オプションで、最小値。第1の引数(のすべての要素)は、この最小値以上でなければなりません。
|
|
2657
|
|
2658 第1の引数が数値(整数またはフロート)または数値の配列が文字列でない場合や、第2および第3の引数が数値に変換できない場合は、この関数は失敗になります。最小値が与えられている場合は(この場合に限られます)、第2の引数を空文字列または`undef`にすることが可能です。これは、最小チェックを確実に行うためのプレースホルダーとして機能します。
|
|
2659
|
|
2660 パスおよび失敗の使用については、[`validate_integer`](#validate-integer)を参照してください。同じ値がパスおよび失敗します。ただし、`validate_numeric`では、浮動小数点値も許可されます。
|
|
2661
|
|
2662 *タイプ*: ステートメント
|
|
2663
|
|
2664 #### `validate_re`
|
|
2665
|
|
2666 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
2667
|
|
2668 1つまたは複数の正規表現に照らして、文字列の簡単な確認を行います。
|
|
2669
|
|
2670 引数:
|
|
2671
|
|
2672 * 第1の引数として、テストする文字列。この引数が文字列でない場合、コンパイルが中止されます。クォートを用いて強制的に文字列化してください。
|
|
2673 * 第2の引数として、文字列化した正規表現(区切り文字//なし)または正規表現の配列。
|
|
2674 * オプションの第3の引数として、ユーザに表示するエラーメッセージ。
|
|
2675
|
|
2676 第2の引数の正規表現が第1の引数で渡した文字列にマッチしない場合は、構文エラーによりコンパイルが中止されます。
|
|
2677
|
|
2678 以下の文字列により、正規表現に照らして確認が行われます:
|
|
2679
|
|
2680 ```puppet
|
|
2681 validate_re('one', '^one$')
|
|
2682 validate_re('one', [ '^one', '^two' ])
|
|
2683 ```
|
|
2684
|
|
2685 以下の文字列では、確認に失敗し、コンパイルが中止されます:
|
|
2686
|
|
2687 ```puppet
|
|
2688 validate_re('one', [ '^two', '^three' ])
|
|
2689 ```
|
|
2690
|
|
2691 エラーメッセージの設定方法:
|
|
2692
|
|
2693 ```puppet
|
|
2694 validate_re($::puppetversion, '^2.7', 'The $puppetversion fact value does not match 2.7')
|
|
2695 ```
|
|
2696
|
|
2697 強制的に文字列化するには、クォートを使用してください:
|
|
2698
|
|
2699 ```
|
|
2700 validate_re("${::operatingsystemmajrelease}", '^[57]$')
|
|
2701 ```
|
|
2702
|
|
2703 *タイプ*: ステートメント
|
|
2704
|
|
2705 #### `validate_slength`
|
|
2706
|
|
2707 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
2708
|
|
2709 文字列(または文字列の配列)が指定した長さ以下であることを確認します。
|
|
2710
|
|
2711 引数:
|
|
2712
|
|
2713 * 第1の引数として、文字列または文字列の配列。
|
|
2714 * 第2の引数として、長さの最大値を示す数値。
|
|
2715 * オプションの第3の引数として、長さの最小値を示す数値。
|
|
2716
|
|
2717 以下の値が渡されます:
|
|
2718
|
|
2719 ```puppet
|
|
2720 validate_slength("discombobulate",17)
|
|
2721 validate_slength(["discombobulate","moo"],17)
|
|
2722 validate_slength(["discombobulate","moo"],17,3)
|
|
2723 ```
|
|
2724
|
|
2725 以下の値は失敗になります:
|
|
2726
|
|
2727 ```puppet
|
|
2728 validate_slength("discombobulate",1)
|
|
2729 validate_slength(["discombobulate","thermometer"],5)
|
|
2730 validate_slength(["discombobulate","moo"],17,10)
|
|
2731 ```
|
|
2732
|
|
2733 *タイプ*: ステートメント
|
|
2734
|
|
2735 #### `validate_string`
|
|
2736
|
|
2737 **非推奨:**今後のバージョンのstdlibでは削除されます。[`validate_legacy`](#validate_legacy)を参照してください。
|
|
2738
|
|
2739 渡したすべての値が文字列データ構造であることを確認します。このチェックに失敗した値がある場合は、カタログコンパイルが中止されます。
|
|
2740
|
|
2741 以下の値が渡されます:
|
|
2742
|
|
2743 ```puppet
|
|
2744 $my_string = "one two"
|
|
2745 validate_string($my_string, 'three')
|
|
2746 ```
|
|
2747
|
|
2748 以下の値は失敗になり、コンパイルが中止されます:
|
|
2749
|
|
2750 ```puppet
|
|
2751 validate_string(true)
|
|
2752 validate_string([ 'some', 'array' ])
|
|
2753 ```
|
|
2754
|
|
2755 *注:* validate_string(`undef`)は、このバージョンの関数APIでは失敗しません。
|
|
2756
|
|
2757 代わりに、以下を使用してください:
|
|
2758
|
|
2759 ```
|
|
2760 if $var == `undef` {
|
|
2761 fail('...')
|
|
2762 }
|
|
2763 ```
|
|
2764
|
|
2765 *タイプ*: ステートメント
|
|
2766
|
|
2767 #### `validate_x509_rsa_key_pair`
|
|
2768
|
|
2769 OpenSSLにより、PEMフォーマットされたX.509認証およびプライベートキーを確認します。
|
|
2770 認証の署名が提供されたキーから作成されたものであることを確認します。
|
|
2771
|
|
2772 このチェックに失敗した値がある場合は、カタログコンパイルが中止されます。
|
|
2773
|
|
2774 引数:
|
|
2775
|
|
2776 * 第1の引数として、X.509認証。
|
|
2777 * 第2の引数として、RSAプライベートキー。
|
|
2778
|
|
2779 ```puppet
|
|
2780 validate_x509_rsa_key_pair($cert, $key)
|
|
2781 ```
|
|
2782
|
|
2783 *タイプ*: ステートメント
|
|
2784
|
|
2785 #### `values`
|
|
2786
|
|
2787 **非推奨:**この関数は、Puppet 5.5.0で、内蔵の[`values`](https://docs.puppet.com/puppet/latest/function.html#values)関数に置き換えられました。
|
|
2788
|
|
2789 与えられたハッシュの値を返します。
|
|
2790
|
|
2791 たとえば、`$hash = {'a'=1, 'b'=2, 'c'=3} values($hash)`を与えると、[1,2,3]を返します。
|
|
2792
|
|
2793 *タイプ*: 右辺値
|
|
2794
|
|
2795 #### `values_at`
|
|
2796
|
|
2797 ロケーションをもとに、配列内の値を探します。
|
|
2798
|
|
2799 引数:
|
|
2800
|
|
2801 * 第1の引数として、解析したい配列。
|
|
2802 * 第2の引数として、以下の値の任意の組み合わせ:
|
|
2803 * 単一の数値インデックス。
|
|
2804 * 'start-stop'の形式での範囲(4-9など)。
|
|
2805 * 上記を組み合わせた配列。
|
|
2806
|
|
2807 例:
|
|
2808
|
|
2809 * `values_at(['a','b','c'], 2)`は['c']を返します。
|
|
2810 * `values_at(['a','b','c'], ["0-1"])`は['a','b']を返します。
|
|
2811 * `values_at(['a','b','c','d','e'], [0, "2-3"])`は['a','c','d']を返します。
|
|
2812
|
|
2813 *タイプ*: 右辺値
|
|
2814
|
|
2815 #### `zip`
|
|
2816
|
|
2817 与えられた第1の配列から1つの要素をとり、与えられた第2の配列の対応する要素と結合します。これにより、n-要素配列のシーケンスが生成されます。*n*は、引数の数より1大きくなります。たとえば、`zip(['1','2','3'],['4','5','6'])`は["1", "4"], ["2", "5"], ["3", "6"]を返します。*タイプ*: 右辺値。
|
|
2818
|
|
2819 ## 制約事項
|
|
2820
|
|
2821 Puppet Enterprise 3.7では、stdlibモジュールがPEに含まれていません。PEユーザは、Puppetと互換性のあるstdlibの最新リリースをインストールする必要があります。
|
|
2822
|
|
2823 ### バージョン互換性
|
|
2824
|
|
2825 バージョン | Puppet 2.6 | Puppet 2.7 | Puppet 3.x | Puppet 4.x |
|
|
2826 :---------------|:-----:|:---:|:---:|:----:
|
|
2827 **stdlib 2.x** | **あり** | **あり** | なし | なし
|
|
2828 **stdlib 3.x** | なし | **あり** | **あり** | なし
|
|
2829 **stdlib 4.x** | なし | **あり** | **あり** | なし
|
|
2830 **stdlib 4.6+** | なし | **あり** | **あり** | **あり**
|
|
2831 **stdlib 5.x** | なし | なし | **あり** | **あり**
|
|
2832
|
|
2833 **stdlib 5.x**: stdlib 5.xのリリース時には、Puppet 2.7.xのサポートが廃止されます。[この説明](https://github.com/puppetlabs/puppetlabs-stdlib/pull/176#issuecomment-30251414)を参照してください。
|
|
2834
|
|
2835 ## 開発
|
|
2836
|
|
2837 Puppet Forgeに公開されているPuppet Labsモジュールはオープンプロジェクトのため、維持するにはコミュニティの貢献が不可欠です。Puppetは、現在私たちがアクセスできない無数のプラットフォームやハードウェア、ソフトウェア、デプロイ構成にも利用されることを目的としています。私たちの目標は、できる限り簡単に変更に貢献し、みなさまの環境で私たちのモジュールが機能できるようにすることです。最高の状態を維持するため、コントリビュータにはいくつかのガイドラインを守っていただく必要があります。詳細については、[モジュールコントリビューションガイド](https://docs.puppetlabs.com/forge/contributing.html)を参照してください。
|
|
2838
|
|
2839 このモジュールのバグの報告または調査は、
|
|
2840 [http://tickets.puppetlabs.com/browse/MODULES](http://tickets.puppetlabs.com/browse/MODULES)からお願いします。
|
|
2841
|
|
2842 ## コントリビュータ
|
|
2843
|
|
2844 コントリビュータのリストは、[https://github.com/puppetlabs/puppetlabs-stdlib/graphs/contributors](https://github.com/puppetlabs/puppetlabs-stdlib/graphs/contributors)で見ることができます。 |