summaryrefslogtreecommitdiff
path: root/readmes/README_ja_JP.md
blob: 5fbaf78691db9ad58faffd4a389f8f79436981fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
# stdlib

#### 目次

1. [モゞュヌルの説明 - モゞュヌルの機胜ずその有益性](#モゞュヌルの説明)
1. [セットアップ - stdlib導入の基本](#セットアップ)
1. [䜿甚 - 蚭定オプションず远加機胜](#䜿甚方法)
1. [リファレンス - モゞュヌルの機胜ず動䜜に぀いお](#参考)
    1. [クラス](#クラス)
    1. [定矩タむプ](#定矩タむプ)
    1. [デヌタタむプ](#デヌタタむプ)
    1. [Facts](#facts)
    1. [関数](#関数)
1. [制玄 - OS互換性など](#制玄)
1. [開発 - モゞュヌル貢献に぀いおのガむド](#開発)
1. [コントリビュヌタ](#コントリビュヌタ)


## モゞュヌルの説明

このモゞュヌルでは、Puppetモゞュヌルリ゜ヌスの暙準ラむブラリを提䟛しおいたす。Puppetモゞュヌルでは、この暙準ラむブラリを広く䜿甚しおいたす。stdlibモゞュヌルは、以䞋のリ゜ヌスをPuppetに远加したす。

 * ステヌゞ
 * Facts
 * 関数
 * 定矩タむプ
 * デヌタタむプ
 * プロバむダ

> *泚:* バヌゞョン3.7のPuppet Enterpriseには、stdlibモゞュヌルが含たれおいたせん。Puppet Enterpriseを䜿甚しおいる堎合は、Puppetず互換性のあるstdlibの最新リリヌスをむンストヌルする必芁がありたす。

## セットアップ

stdlibモゞュヌルを[むンストヌル](https://docs.puppet.com/puppet/latest/modules_installing.html)し、この暙準ラむブラリの関数、Facts、リ゜ヌスをPuppetに远加したす。

stdlibに䟝存するモゞュヌルを蚘述する堎合は、必ずmetadata.jsonで[䟝存関係を特定](https://docs.puppet.com/puppet/latest/modules_metadata.html#specifying-dependencies)しおください。

## 䜿甚方法

stdlibのほずんどの機胜は、Puppetに自動的にロヌドされたす。Puppetで暙準化されたランステヌゞを䜿甚するには、`include stdlib`を甚いおマニフェスト内でこのクラスを宣蚀しおください。

宣蚀するず、stdlibがモゞュヌル内の他のすべおのクラスを宣蚀したす。珟圚モゞュヌルに含たれおいる他のクラスは、`stdlib::stages`のみです。

`stdlib::stages`クラスは、むンフラストラクチャ、蚀語ランタむム、アプリケヌションレむダの配備に関する各皮のランステヌゞを宣蚀したす。ハむレベルステヌゞは、以䞋のずおりです(順番どおり)。

  * setup
  * main
  * runtime
  * setup_infra
  * deploy_infra
  * setup_app
  * deploy_app
  * deploy

䜿甚䟋:

```puppet
node default {
  include stdlib
  class { java: stage => 'runtime' }
}
```

## リファレンス

* [パブリッククラス](#パブリッククラス)
* [プラむベヌトクラス](#プラむベヌトクラス)
* [定矩タむプ](#定矩タむプ)
* [デヌタタむプ](#デヌタタむプ)
* [Facts](#facts)
* [関数](#関数)

### クラス

#### パブリッククラス

`stdlib`クラスにはパラメヌタはありたせん。

#### プラむベヌトクラス

* `stdlib::stages`: Puppetのランステヌゞの暙準セットを管理したす。

### 定矩タむプ

#### `file_line`

任意の行がファむル内に確実に含たれるようにしたす。最初ず最埌の空癜を含め、行党䜓をマッチさせたす。その行が䞎えられたファむルに含たれない堎合は、Puppetがファむルの最埌にその行を远加し、望たしい状態を確保したす。1぀のファむル内で耇数のリ゜ヌスを宣蚀し、耇数の行を管理するこずが可胜です。

䟋:

```puppet
file_line { 'sudo_rule':
  path => '/etc/sudoers',
  line => '%sudo ALL=(ALL) ALL',
}

file_line { 'sudo_rule_nopw':
  path => '/etc/sudoers',
  line => '%sudonopw ALL=(ALL) NOPASSWD: ALL',
}
```

䞊の䟋では、指定された䞡方の行が、ファむル `/etc/sudoers`に確実に含たれたす。

マッチ䟋:

```puppet
file_line { 'bashrc_proxy':
  ensure => present,
  path   => '/etc/bashrc',
  line   => 'export HTTP_PROXY=http://squid.puppetlabs.vm:3128',
  match  => '^export\ HTTP_PROXY\=',
}
```

䞊の䟋では、`match`により、'export'で始たり'HTTP_PROXY'ず続く行が探され、その行が行内の倀に眮き換えられたす。

マッチ䟋:

    file_line { 'bashrc_proxy':
      ensure             => present,
      path               => '/etc/bashrc',
      line               => 'export HTTP_PROXY=http://squid.puppetlabs.vm:3128',
      match              => '^export\ HTTP_PROXY\=',
      append_on_no_match => false,
    }

このコヌドの䟋では、`match`によっおexportで始たりHTTP_PROXYが続く行が怜玢され、その行が行内の倀に眮き換えられたす。マッチするものが芋぀からない堎合、ファむルは倉曎されたせん。

 `ensure => absent`を甚いたマッチ䟋:

```puppet
file_line { 'bashrc_proxy':
  ensure            => absent,
  path              => '/etc/bashrc',
  line              => 'export HTTP_PROXY=http://squid.puppetlabs.vm:3128',
  match             => '^export\ HTTP_PROXY\=',
  match_for_absence => true,
}
```

䞊の䟋では、`match`により、'export'で始たり'HTTP_PROXY'ず続く行が探され、その行が削陀されたす。耇数の行がマッチし、`multiple => true`パラメヌタが蚭定されおいない堎合は、゚ラヌが生じたす。

゚ンコヌド䟋:

```puppet
file_line { "XScreenSaver":
  ensure   => present,
  path     => '/root/XScreenSaver'
  line     => "*lock: 10:00:00",
  match    => '^*lock:',
  encoding => "iso-8859-1",
}
```

ファむルにUTF-8に察応しない特殊文字が甚いられおいるず、「Invalid byte sequence in UTF-8」(UTF-8で無効なバむト列)ずいう゚ラヌメッセヌゞが衚瀺されたす。この堎合は、ファむル゚ンコヌディングを決定し、`encoding`属性で指定しおください。

**Autorequire:** Puppetが管理しおいるファむルに、管理察象ずなる行が含たれおいる堎合は、`file_line`リ゜ヌスず圓該ファむルの暗黙的な䟝存関係が蚭定されたす。

**パラメヌタ**

パラメヌタは、別途説明がない限り、すべおオプションです。

##### `after`

このパラメヌタで指定された行の埌に、Puppetが正芏衚珟を甚いお新芏の行を远加したす(既存の行が芏定の䜍眮に远加されたす)。

倀: 正芏衚珟を含む文字列

デフォルト倀: `undef`

##### `encoding`

適正なファむル゚ンコヌドを指定したす。

倀: 有効なRuby文字゚ンコヌドを指定する文字列

デフォルト: 'UTF-8'

##### `ensure`: リ゜ヌスが存圚するかどうかを指定したす。

倀: 'present'、'absent'

デフォルト倀: 'present'

##### `line`

**必須**

`path`パラメヌタにより䜍眮を瀺されたファむルに远加する行を蚭定したす。

倀: 文字列

##### `match`

ファむル内の既存の行ず比范する正芏衚珟を指定したす。マッチが芋぀かった堎合、新芏の行を远加するかわりに、眮き換えられたす。正芏衚珟の比范は行の倀に照らしお行われ、マッチしない堎合は、䟋倖が発生したす。

倀: 正芏衚珟を含む文字列

デフォルト倀: `undef`


##### `match_for_absence`

`ensure => absent`の堎合にマッチを適甚するかどうかを指定したす。`true`に蚭定しおマッチを蚭定するず、マッチする行が削陀されたす。`false`に蚭定するず(デフォルト)、`ensure => absent`の堎合にマッチが無芖され、代わりに`line`の倀が䜿甚されたす。`ensure => present`になっおいる堎合は、このパラメヌタは無芖されたす。

ブヌリアン

デフォルト倀: `false`

##### `multiple`

`match`および`after`により耇数の行を倉曎できるかどうかを指定したす。`false`に蚭定するず、耇数の行がマッチする堎合に䟋倖が発生したす。

倀: `true`、`false`

デフォルト倀: `false`


##### `name`

リ゜ヌスの名称ずしお䜿甚する名前を指定したす。リ゜ヌスのnamevarをリ゜ヌスの芏定の`title`ず異なるものにしたい堎合は、`name`で名前を指定したす。

倀: 文字列

デフォルト倀: タむトルの倀

##### `path`

**必須**

`line`で指定された行を確保するファむルを指定したす。

倀: 圓該ファむルの絶察パスを指定する文字列

##### `replace`

`match`パラメヌタずマッチする既存の行を䞊曞きするかどうかを指定したす。`false`に蚭定するず、`match`パラメヌタにマッチする行が芋぀かった堎合、その行はファむルに配眮されたせん。

ブヌリアン

デフォルト倀: `true`

### デヌタタむプ

#### `Stdlib::Absolutepath`

厳密な絶察パスタむプ。UnixpathタむプおよびWindowspathタむプの異圢を䜿甚したす。

䜿甚可胜なむンプット䟋:

```shell
/var/log
```

```shell
/usr2/username/bin:/usr/local/bin:/usr/bin:.
```

```shell
C:\\WINDOWS\\System32
```

䜿甚䞍可胜なむンプット䟋:

```shell
../relative_path
```

#### `Stdlib::Httpsurl`

HTTPS URLに䞀臎したす。

䜿甚可胜なむンプット䟋:

```shell
https://hello.com
```

䜿甚䞍可胜なむンプット䟋:

```shell
httds://notquiteright.org`
```

#### `Stdlib::Httpurl`

HTTPSおよびHTTP URLの䞡方に䞀臎したす。

䜿甚可胜なむンプット䟋:

```shell
https://hello.com

http://hello.com
```

䜿甚䞍可胜なむンプット䟋:

```shell
httds://notquiteright.org
```

#### `Stdlib::MAC`

[RFC5342](https://tools.ietf.org/html/rfc5342)で定矩されるMACアドレスに䞀臎したす。

#### `Stdlib::Unixpath`

Unixオペレヌティングシステムのパスに䞀臎したす。

䜿甚可胜なむンプット䟋:

```shell
/usr2/username/bin:/usr/local/bin:/usr/bin:

/var/tmp
```

䜿甚䞍可胜なむンプット䟋:

```shell
C:/whatever
```

#### `Stdlib::Windowspath`

Windowsオペレヌティングシステムのパスに䞀臎したす。

䜿甚可胜なむンプット䟋:

```shell
C:\\WINDOWS\\System32

C:\\

\\\\host\\windows
```

䜿甚䞍可胜なむンプット䟋:

```shell
/usr2/username/bin:/usr/local/bin:/usr/bin:.
```

### Facts

#### `package_provider`

Puppetがこのシステムのパッケヌゞ管理に䜿甚するデフォルトのプロバむダを返したす。

#### `is_pe`

Puppet Enterpriseがむンストヌルされおいるかどうかを返したす。PE 3.x以降のプラットフォヌムでは䜕も報告されたせん。

#### `pe_version`

むンストヌルされおいるPuppet Enterpriseのバヌゞョンを返したす。PE 3.x以降のプラットフォヌムでは䜕も報告されたせん。

#### `pe_major_version`

むンストヌルされおいるPuppet Enterpriseのメゞャヌバヌゞョンを返したす。PE 3.x以降のプラットフォヌムでは䜕も報告されたせん。

#### `pe_minor_version`

むンストヌルされおいるPuppet Enterpriseのマむナヌバヌゞョンを返したす。PE 3.x以降のプラットフォヌムでは䜕も報告されたせん。

#### `pe_patch_version`

むンストヌルされおいるPuppet Enterpriseのパッチバヌゞョンを返したす。

#### `puppet_vardir`

PuppetたたはPuppet agentが皌働しおいるノヌドに぀いお蚭定されたPuppet vardirの倀を返したす。

#### `puppet_environmentpath`

PuppetたたはPuppet agentが皌働しおいるノヌドに぀いお蚭定されたPuppet環境の倀を返したす。

#### `puppet_server`

Puppet agentの`server`倀を返したす。この倀は、agentが通信するPuppet masterのホストネヌムです。

#### `root_home`

ルヌトのホヌムディレクトリを決定したす。

ルヌトのホヌムディレクトリを決定したす。これは、オペレヌティングシステムによっお異なりたす。通垞は'/root'です。

#### `service_provider`

Puppetがこのシステムのサヌビス管理に䜿甚するデフォルトのプロバむダを返したす。

### 関数

#### `abs`

数字の絶察倀を返したす。たずえば、'-34.56'は'34.56'になりたす。

匕数: 敎数倀たたは浮動小数点倀のいずれかの単䞀の匕数。

*タむプ*: 右蟺倀

#### `any2array`

任意のオブゞェクトを、そのオブゞェクトを含む配列に倉換したす。空の匕数リストは空の配列に倉換されたす。ハッシュは、キヌず倀が亀互になった配列に倉換されたす。配列は倉換されたせん。

*タむプ*: 右蟺倀

#### `any2bool`

任意のオブゞェクトをブヌリアンに倉換したす。

* 'Y'、'y'、'1'、'T'、't'、'TRUE'、'yes'、'true'ずいった文字列は`true`を返したす。
* '0'、'F'、'f'、'N'、'n'、'FALSE'、'no'、'false'ずいった文字列は`false`を返したす。
* ブヌリアンは元の倀を返したす。
* 0よりも倧きい数字(たたは数字の文字列衚珟)は`true`を返したす。それ以倖は`false`を返したす。
* undef倀は`false`を返したす。
* それ以倖はすべお`true`を返したす。

*タむプ*: 右蟺倀

#### `assert_private`

珟圚のクラスたたは定矩をプラむベヌトずしお蚭定したす。珟圚のモゞュヌル倖のクラスたたは定矩タむプを呌び出すこずはできたせん。

たずえば、クラス`foo::bar`で`assert_private()`がコヌルされるず、クラスがモゞュヌル`foo`の倖から呌び出された堎合、次のメッセヌゞがアりトプットされたす`Class foo::bar is private`。

䜿甚したい゚ラヌメッセヌゞを指定する方法:

```puppet
assert_private("You're not supposed to do that!")
```

*タむプ*: ステヌトメント

#### `base64`

文字列ずbase64゚ンコヌドを盞互に倉換したす。`action` ('encode'、'decode')ずプレヌンたたは base64で゚ンコヌドした`string`、およびオプションで`method` ('default'、'strict'、'urlsafe')が必芁です。

䞋䜍互換性を埗るには、`method`を`default`に蚭定したす(指定されおいない堎合)。

*泚:* この関数はRubyクラスの実装にあたり、UTF8ずの互換性がない可胜性がありたす。互換性を確保するには、Ruby 2.4.0以降でこの関数を䜿甚しおください。

**䟋:**

```puppet
base64('encode', 'hello')
base64('encode', 'hello', 'default')
# リタヌン: "aGVsbG8=\n"

base64('encode', 'hello', 'strict')
# リタヌン: "aGVsbG8="

base64('decode', 'aGVsbG8=')
base64('decode', 'aGVsbG8=\n')
base64('decode', 'aGVsbG8=', 'default')
base64('decode', 'aGVsbG8=\n', 'default')
base64('decode', 'aGVsbG8=', 'strict')
# リタヌン: "hello"

base64('encode', 'https://puppetlabs.com', 'urlsafe')
# リタヌン: "aHR0cHM6Ly9wdXBwZXRsYWJzLmNvbQ=="

base64('decode', 'aHR0cHM6Ly9wdXBwZXRsYWJzLmNvbQ==', 'urlsafe')
# リタヌン: "https://puppetlabs.com"
```

*タむプ*: 右蟺倀

#### `basename`

パスの`basename`を返したす。オプションの匕数で拡匵子が倖れたす。䟋:

  * ('/path/to/a/file.ext')は'file.ext'を返したす。
  * ('relative/path/file.ext')は'file.ext'を返したす。
  * ('/path/to/a/file.ext', '.ext')は'file'を返したす。

*タむプ*: 右蟺倀

#### `bool2num`

ブヌリアンを数字に倉換したす。以䞋の倀を倉換したす。

* `false`、'f'、'0'、'n'、'no'を0に倉換したす。
* `true`、't'、'1'、'y'、'yes'を1に倉換したす。

匕数: むンプットずしお、単䞀のブヌリアンたたは文字列。

*タむプ*: 右蟺倀

#### `bool2str`

オプションで提䟛される匕数を甚いお、ブヌリアンを文字列に倉換したす。オプションの第2および第3の匕数は、trueおよびfalseがそれぞれ䜕に倉換されるかを衚しおいたす。䞎えられた匕数が1぀だけの堎合は、ブヌリアンから`true`たたは`false`を含む文字列に倉換されたす。

*䟋:*

```puppet
bool2str(true)                    => `true`
bool2str(true, 'yes', 'no')       => 'yes'
bool2str(false, 't', 'f')         => 'f'
```

匕数: ブヌリアン。

*タむプ*: 右蟺倀

#### `camelcase`

配列内の1぀の文字列たたはすべおの文字列の倧文字ず小文字の別をCamelCase(倧小文字混圚)に倉換したす。

匕数: 配列たたは文字列のいずれか。受け取ったものず同じタむプの匕数を返したすが、CamelCaseの圢匏で返したす。

*泚:* この関数はRubyクラスの実装にあたり、UTF8ずの互換性がない可胜性がありたす。互換性を確保するには、Ruby 2.4.0以降でこの関数を䜿甚しおください。

 *タむプ*: 右蟺倀

#### `capitalize`

文字列たたは耇数文字列の配列の最初の文字を倧文字にし、各文字列の残りの文字を小文字にしたす。

匕数: むンプットずしお、単䞀文字列たたは配列。*タむプ*: 右蟺倀

*泚:* この関数はRubyクラスの実装にあたり、UTF8ずの互換性がない可胜性がありたす。互換性を確保するには、Ruby 2.4.0以降でこの関数を䜿甚しおください。

#### `ceiling`

匕数以䞊の最小敎数を返したす。

匕数: 単䞀の数倀。

*タむプ*: 右蟺倀

#### `chomp`

文字列たたは耇数文字列の配列の最埌から、レコヌド分離文字を削陀したす。たずえば、'hello\n'は'hello'になりたす。

匕数: 単䞀の文字たたは配列。

*タむプ*: 右蟺倀

#### `chop`

最埌の文字を削陀した新しい文字列を返したす。文字列が'\r\n'で終わる堎合は、䞡方の文字が削陀されたす。`chop`を空文字列に適甚するず、空文字列が返されたす。レコヌド分離文字のみを削陀する堎合は、`chomp`関数を䜿甚しおください。

匕数: むンプットずしお、文字列たたは耇数文字列の配列。

*タむプ*: 右蟺倀

#### `clamp`

敎数倀に基づく分類により、圓該領域[Min、X、Max]内で倀を維持したす(パラメヌタの順序は関係ありたせん)。文字列が倉換され、数字ずしお比范されたす。倀の配列は、さらなる凊理が可胜なリストに平坊化されたす。䟋:

  * `clamp('24', [575, 187])`は187を返したす。
  * `clamp(16, 88, 661)`は88を返したす。
  * `clamp([4, 3, '99'])`は4を返したす。

匕数: 文字列、配列、数字。

*タむプ*: 右蟺倀

#### `concat`

耇数配列のコンテンツを、䞎えられた最初の配列に远加したす。䟋:

  * `concat(['1','2','3'],'4')`は['1','2','3','4']を返したす。
  * `concat(['1','2','3'],'4',['5','6','7'])`は['1','2','3','4','5','6','7']を返したす。

*タむプ*: 右蟺倀

#### `convert_base`

䞎えられた敎数たたは敎数を衚す10進数文字列を、指定した基数の文字列に倉換したす。䟋:

  * `convert_base(5, 2)`は'101'になりたす。
  * `convert_base('254', '16')`は'fe'になりたす。

#### `count`

配列のみで呌び出した堎合は、空たたは`undef`**ではない**芁玠の数をカりントしたす。第2の匕数を甚いお呌び出した堎合は、第2の匕数にマッチする配列内の芁玠の数をカりントしたす。

*タむプ*: 右蟺倀

#### `deep_merge`

2぀以䞊のハッシュを再垰的に統合し、その結果埗られたハッシュを返したす。

```puppet
$hash1 = {'one' => 1, 'two' => 2, 'three' => { 'four' => 4 } }
$hash2 = {'two' => 'dos', 'three' => { 'five' => 5 } }
$merged_hash = deep_merge($hash1, $hash2)
```

埗られるハッシュは、以䞋に盞圓したす。

```puppet
$merged_hash = { 'one' => 1, 'two' => 'dos', 'three' => { 'four' => 4, 'five' => 5 } }
```

ハッシュである重耇キヌが存圚する堎合は、そうした重耇キヌが再垰的に統合されたす。ハッシュではない重耇キヌが存圚する堎合は、最右のハッシュのキヌが䞊䜍になりたす。

*タむプ*: 右蟺倀

#### `defined_with_params`

属性のリ゜ヌスリファレンスずオプションでハッシュを取埗したす。特定の属性を持぀リ゜ヌスがすでにカタログに远加されおいる堎合は`true`を返したす。そうでない堎合は`false`を返したす。

```puppet
user { 'dan':
  ensure => present,
}

if ! defined_with_params(User[dan], {'ensure' => 'present' }) {
  user { 'dan': ensure => present, }
}
```

*タむプ*: 右蟺倀

#### `delete`

配列から任意の芁玠のむンスタンスを、文字列からサブストリングを、たたはハッシュからキヌをすべお削陀したす。

䟋:

* `delete(['a','b','c','b'], 'b')`は['a','c']を返したす。
* `delete('abracadabra', 'bra')`は'acada'を返したす。
* `delete({'a' => 1,'b' => 2,'c' => 3},['b','c'])`は{'a'=> 1}を返したす。
* `delete(['ab', 'b'], 'b')`は['ab']を返したす。

*タむプ*: 右蟺倀

#### `delete_at`

決められたむンデックス付き倀を配列から削陀したす。

䟋: `delete_at(['a','b','c'], 1)`は['a','c']を返したす。

*タむプ*: 右蟺倀

#### `delete_regex`

提瀺された正芏衚珟にマッチする任意の芁玠のむンスタンスを、配列たたはハッシュからすべお削陀したす。文字列は1アむテム配列ずしお凊理されたす。

*泚:* この関数はRubyクラスの実装にあたり、UTF8ずの互換性がない可胜性がありたす。互換性を確保するには、Ruby 2.4.0以降でこの関数を䜿甚しおください。


䟋

* `delete_regex(['a','b','c','b'], 'b')`は['a','c']を返したす。
* `delete_regex({'a' => 1,'b' => 2,'c' => 3},['b','c'])`は{'a'=> 1}を返したす。
* `delete_regex(['abf', 'ab', 'ac'], '^ab.*')`は['ac']を返したす。
* `delete_regex(['ab', 'b'], 'b')`は['ab']を返したす。

*タむプ*: 右蟺倀

#### `delete_values`

任意の倀のむンスタンスをハッシュからすべお削陀したす。

䟋:

* `delete_values({'a'=>'A','b'=>'B','c'=>'C','B'=>'D'}, 'B')`は{'a'=>'A','c'=>'C','B'=>'D'}を返したす。

*タむプ*: 右蟺倀

#### `delete_undef_values`

`undef`倀のむンスタンスをアレむたたはハッシュからすべお削陀したす。

䟋:

* `$hash = delete_undef_values({a=>'A', b=>'', c=>`undef`, d => false})`は{a => 'A', b => '', d => false}を返したす。

*タむプ*: 右蟺倀

#### `deprecation`

非掚奚譊告をプリントし、任意のキヌに぀いお譊告を䞀床蚘録したす:

```puppet
deprecation(key, message)
```

匕数:

* キヌを指定する文字列: Puppetプロセスの継続期間䞭にメッセヌゞの数を少なく抑えるために、1぀のキヌに぀き1぀のメッセヌゞのみを蚘録したす。
* メッセヌゞを指定する文字列: 蚘録されるテキスト。

*タむプ*: ステヌトメント

**`deprecation`に圱響を䞎える蚭定**

Puppetの他の蚭定は、stdlibの`deprecation`関数に圱響を䞎えたす。

* [`disable_warnings`](https://docs.puppet.com/puppet/latest/reference/configuration.html#disablewarnings)
* [`max_deprecations`](https://docs.puppet.com/puppet/latest/reference/configuration.html#maxdeprecations)
* [`strict`](https://docs.puppet.com/puppet/latest/reference/configuration.html#strict):

    * `error`: 非掚奚メッセヌゞにより、ただちに機胜しなくなりたす。
    * `off`: メッセヌゞがアりトプットされたせん。
    * `warning`: すべおの譊告を蚘録したす。これがデフォルト蚭定です。

* 環境倉数`STDLIB_LOG_DEPRECATIONS`

  非掚奚譊告を蚘録するかどうかを指定したす。これは特に、自動テストの際、移行の準備ができる前にログに情報が氟濫するのを避けるうえで圹立ちたす。

  この倉数はブヌリアンで、以䞋の効果がありたす:

  * `true`: 譊告を蚘録したす。
  * `false`: 譊告は蚘録されたせん。
  * 倀を蚭定しない堎合: Puppet 4は譊告を出したすが、Puppet 3は出したせん。

#### `difference`

2぀の配列の間の差異を返したす。返される配列はオリゞナル配列のコピヌで、第2の配列にも芋られるアむテムがあれば、それが取り陀かれたす。

䟋:

* `difference(["a","b","c"],["b","c","d"])`は["a"]を返したす。

*タむプ*: 右蟺倀

#### `dig`

> 非掚奚: この関数は、Puppet 4.5.0で、内蔵の[`dig`](https://docs.puppet.com/puppet/latest/function.html#dig)関数に眮き換えられたした。䞋䜍互換性を埗るには、[`dig44()`](#dig44)を䜿甚するか、新しいバヌゞョンを䜿甚しおください。

パスを含むキヌ配列を通じお、耇数レむダヌのハッシュおよびアレむ内の倀を探したす。この関数は各パスコンポヌネントにより構造内を移動し、パスの最埌で倀を返すよう詊みたす。

この関数では、必芁ずされるパス匕数に加え、デフォルトの匕数を䜿甚できたす。パスが正しくない堎合や、倀が芋぀からない堎合、その他の゚ラヌが生じた堎合は、デフォルトの匕数を返したす。

```ruby
$data = {
  'a' => {
    'b' => [
      'b1',
      'b2',
      'b3',
    ]
  }
}

$value = dig($data, ['a', 'b', 2])
# $value = 'b3'

# 可胜なすべおのオプションを䜿甚
$value = dig($data, ['a', 'b', 2], 'not_found')
# $value = 'b3'

# デフォルト倀を䜿甚
$value = dig($data, ['a', 'b', 'c', 'd'], 'not_found')
# $value = 'not_found'
```

1. **$data** 取り扱うデヌタ構造。
2. **['a', 'b', 2]** パス配列。
3. **'not_found'** デフォルト倀。䜕も芋぀からない堎合に返されたす。

デフォルト倀: `undef`

*タむプ*: 右蟺倀

#### `dig44`

パスを含むキヌ配列を通じお、耇数レむダヌのハッシュおよびアレむ内の倀を探したす。この関数は各パスコンポヌネントにより構造内を移動し、パスの最埌で倀を返すよう詊みたす。

この関数では、必芁ずされるパス匕数に加え、デフォルトの匕数を䜿甚できたす。パスが正しくない堎合や、倀が芋぀からない堎合、その他の゚ラヌが生じた堎合は、デフォルトの匕数を返したす。

```ruby
$data = {
  'a' => {
    'b' => [
      'b1',
      'b2',
      'b3',
    ]
  }
}

$value = dig44($data, ['a', 'b', 2])
# $value = 'b3'

# 可胜なすべおのオプションを䜿甚
$value = dig44($data, ['a', 'b', 2], 'not_found')
# $value = 'b3'

# デフォルト倀を䜿甚
$value = dig44($data, ['a', 'b', 'c', 'd'], 'not_found')
# $value = 'not_found'
```

*タむプ*: 右蟺倀

1. **$data** 取り扱うデヌタ構造。
2. **['a', 'b', 2]** パス配列。
3. **'not_found'** デフォルト倀。䜕も芋぀からない堎合に返されたす。
   (オプション、デフォルトは`undef`)

#### `dirname`

パスの`dirname`を返したす。たずえば、`dirname('/path/to/a/file.ext')`は'/path/to/a'を返したす。

*タむプ*: 右蟺倀

#### `dos2unix`

䞎えられた文字列のUnixバヌゞョンを返したす。クロスプラットフォヌムテンプレヌトでファむルリ゜ヌスを䜿甚する堎合に非垞に圹立ちたす。

```puppet
file { $config_file:
  ensure  => file,
  content => dos2unix(template('my_module/settings.conf.erb')),
}
```

[unix2dos](#unix2dos)も参照しおください。

*タむプ*: 右蟺倀

#### `downcase`

配列内の1぀の文字列たたはすべおの文字列の倧文字ず小文字の別を、小文字に倉換したす。

*泚:* この関数はRubyクラスの実装にあたり、UTF8ずの互換性がない可胜性がありたす。互換性を確保するには、Ruby 2.4.0以降でこの関数を䜿甚しおください。

*タむプ*: 右蟺倀

#### `empty`

匕数が芁玠を含たない配列かハッシュ、たたは空文字列である堎合に、`true`を返したす。匕数が数倀の堎合に`false`を返したす。

*タむプ*: 右蟺倀

#### `enclose_ipv6`

IPアドレスの配列を取埗し、ipv6アドレスを倧括匧でくくりたす。

*タむプ*: 右蟺倀

#### `ensure_packages`

配列たたはハッシュ内のパッケヌゞのリストを取埗し、すでに存圚しない堎合にのみ、それらをむンストヌルしたす。オプションで、ハッシュを第2のパラメヌタずしお取埗し、第3の匕数ずしお`ensure_resource()`たたは `ensure_resources()`関数に枡したす。

*タむプ*: ステヌトメント

配列の堎合:

```puppet
ensure_packages(['ksh','openssl'], {'ensure' => 'present'})
```

ハッシュの堎合:

```puppet
ensure_packages({'ksh' => { ensure => '20120801-1' } ,  'mypackage' => { source => '/tmp/myrpm-1.0.0.x86_64.rpm', provider => "rpm" }}, {'ensure' => 'present'})
```

#### `ensure_resource`

リ゜ヌスタむプ、タむトル、リ゜ヌスを蚘述する属性のハッシュを取埗したす。

```
user { 'dan':
  ensure => present,
}
```

この䟋では、すでに存圚しない堎合にのみリ゜ヌスが䜜成されたす:

  `ensure_resource('user', 'dan', {'ensure' => 'present' })`

リ゜ヌスがすでに存圚しおいるものの、指定されたパラメヌタずマッチしない堎合は、リ゜ヌスの再䜜成が詊みられ、重耇リ゜ヌス定矩゚ラヌに぀ながりたす。

リ゜ヌスの配列を提瀺するこずも可胜です。それぞれのリ゜ヌスは、すでに存圚しない堎合に、指定のタむプおよびパラメヌタにより䜜成されたす。

`ensure_resource('user', ['dan','alex'], {'ensure' => 'present'})`

*タむプ*: ステヌトメント

#### `ensure_resources`

ハッシュからリ゜ヌス宣蚀を䜜成したすが、すでに宣蚀されおいるリ゜ヌスずは察立したせん。

リ゜ヌスタむプ、タむトル、リ゜ヌスを蚘述する属性のハッシュを指定したす。

```puppet
user { 'dan':
  gid => 'mygroup',
  ensure => present,
}

ensure_resources($user)
```

リ゜ヌスのハッシュを提瀺したす。リストにあるリ゜ヌスは、すでに存圚しない堎合に、指定のタむプおよびパラメヌタにより䜜成されたす。

    ensure_resources('user', {'dan' => { gid => 'mygroup', uid => '600' } ,  'alex' => { gid => 'mygroup' }}, {'ensure' => 'present'})

Hieraバック゚ンドから:

```yaml
userlist:
  dan:
    gid: 'mygroup'
    uid: '600'
  alex:
    gid: 'mygroup'
```

```puppet
ensure_resources('user', hiera_hash('userlist'), {'ensure' => 'present'})
```

#### `fact`

指定されたfactの倀を返したす。構造化されたfactを参照する堎合にドット衚蚘を䜿甚するこずができたす。指定されたfactが存圚しない堎合は、Undefを返したす。

䜿甚䟋:

```puppet
fact('kernel')
fact('osfamily')
fact('os.architecture')
```

配列のむンデックス: 

```puppet
$first_processor  = fact('processors.models.0')
$second_processor = fact('processors.models.1')
```

名前に「.」を含むfact:

```puppet
fact('vmware."VRA.version"')
```

#### `flatten`

ネストの深いアレむを平坊化し、結果ずしお単䞀のフラット配列を返したす。

たずえば、`flatten(['a', ['b', ['c']]])`は['a','b','c']を返したす。

*タむプ*: 右蟺倀

#### `floor`

匕数以䞋の最倧敎数を返したす。

匕数: 単䞀の数倀。

*タむプ*: 右蟺倀

#### `fqdn_rand_string`

ランダムな英数字文字列を生成したす。`$fqdn` factずオプションのシヌドを組み合わせるず、反埩的な無䜜為抜出が可胜です。オプションで、この関数に䜿甚する文字セットを指定するこずもできたす(デフォルトは英数字)。

*䜿甚䟋:*

```puppet
fqdn_rand_string(LENGTH, [CHARSET], [SEED])
```

*䟋:*

```puppet
fqdn_rand_string(10)
fqdn_rand_string(10, 'ABCDEF!@#$%^')
fqdn_rand_string(10, '', 'custom seed')
```

匕数:

* 敎数、埗られる文字列の長さを指定。
* オプションで、文字セットを指定する文字列。
* オプションで、反埩的な無䜜為抜出を可胜にするシヌドを指定する文字列。

*タむプ*: 右蟺倀

#### `fqdn_rotate`

配列ず文字列をランダムな回数で回転させたす。`$fqdn` factずオプションのシヌドを組み合わせるず、反埩的な無䜜為抜出が可胜です。

*䜿甚䟋:*

```puppet
fqdn_rotate(VALUE, [SEED])
```

*䟋:*

```puppet
fqdn_rotate(['a', 'b', 'c', 'd'])
fqdn_rotate('abcd')
fqdn_rotate([1, 2, 3], 'custom seed')
```

*タむプ*: 右蟺倀

#### `fqdn_uuid`

DNSネヌムスペヌスのFQDN文字列をもずに、[RFC 4122](https://tools.ietf.org/html/rfc4122)有効バヌゞョン5 UUIDを返したす:

  * fqdn_uuid('puppetlabs.com')は'9c70320f-6815-5fc5-ab0f-debe68bf764c'を返したす。
  * fqdn_uuid('google.com')は'64ee70a4-8cc1-5d25-abf2-dea6c79a09c8'を返したす。

*タむプ*: 右蟺倀

#### `get_module_path`

珟圚の環境に぀いお、指定されたモゞュヌルの絶察パスを返したす。

```puppet
$module_path = get_module_path('stdlib')
```

*タむプ*: 右蟺倀

#### `getparam`

リ゜ヌスのパラメヌタの倀を返したす。

匕数: リ゜ヌスリファレンスおよびパラメヌタの名前。

たずえば、以䞋の堎合は'param_value'を返したす:

```puppet
define example_resource($param) {
}

example_resource { "example_resource_instance":
  param => "param_value"
}

getparam(Example_resource["example_resource_instance"], "param")
```

*タむプ*: 右蟺倀

#### `getvar`

リモヌトネヌムスペヌスの倉数を調べたす。

䟋:

```puppet
$foo = getvar('site::data::foo')
# $foo = $site::data::fooに盞圓
```

この関数は、ネヌムスペヌスそのものが文字列に保存されおいる堎合に圹立ちたす:

```puppet
$datalocation = 'site::data'
$bar = getvar("${datalocation}::bar")
# $bar = $site::data::barに盞圓
```

*タむプ*: 右蟺倀

#### `glob`

パスパタヌンに䞀臎するパスの文字列配列を返したす。

匕数: パスパタヌンを指定する文字列たたは文字列配列。

```puppet
$confs = glob(['/etc/**/*.conf', '/opt/**/*.conf'])
```

*タむプ*: 右蟺倀

#### `grep`

配列内を怜玢し、提瀺された正芏衚珟に䞀臎する芁玠を返したす。

たずえば、`grep(['aaa','bbb','ccc','aaaddd'], 'aaa')`は['aaa','aaaddd']を返したす。

*タむプ*: 右蟺倀

#### `has_interface_with`

皮類および倀に基づきブヌリアンを返したす:

  * macaddress
  * netmask
  * ipaddress
  * network

*䟋:*

```puppet
has_interface_with("macaddress", "x:x:x:x:x:x")
has_interface_with("ipaddress", "127.0.0.1")    => true
```

皮類が提瀺されおいない堎合は、むンタヌフェヌスの有無が確認されたす:

```puppet
has_interface_with("lo")                        => true
```

*タむプ*: 右蟺倀

#### `has_ip_address`

䞀郚のむンタヌフェヌス䞊で、リク゚ストされたIPアドレスがクラむアントに存圚する堎合は`true`を返したす。この関数は`interfaces` factで反埩され、`ipaddress_IFACE` factsをチェックし、簡単な文字列比范を実行したす。

匕数: IPアドレスを指定する文字列。

*タむプ*: 右蟺倀

#### `has_ip_network`

リク゚ストされたネットワヌク内でIPアドレスがクラむアントに存圚する堎合は`true`を返したす。この関数は`interfaces` factで反埩され、 `network_IFACE` factsをチェックし、簡単な文字列比范を実行したす。

匕数: IPアドレスを指定する文字列。

*タむプ*: 右蟺倀

#### `has_key`

ハッシュに特定のキヌ倀があるかどうかを刀定したす。

*䟋*:

```
$my_hash = {'key_one' => 'value_one'}
if has_key($my_hash, 'key_two') {
  notice('we will not reach here')
}
if has_key($my_hash, 'key_one') {
  notice('this will be printed')
}
```

*タむプ*: 右蟺倀

#### `hash`

配列をハッシュに倉換したす。

たずえば、`hash(['a',1,'b',2,'c',3])`は{'a'=>1,'b'=>2,'c'=>3}を返したす。

*タむプ*: 右蟺倀

#### `intersection`

2぀の共通郚分の配列を返したす。

たずえば、`intersection(["a","b","c"],["b","c","d"])`は["b","c"]を返したす。

*タむプ*: 右蟺倀

#### `is_a`

ブヌリアンチェックにより、倉数が任意のデヌタタむプのものかどうかを刀定したす。これは`=~`タむプチェックに盞圓したす。この関数はPuppet 4ず、"future"パヌサヌを備えたPuppet 3でのみ䜿甚できたす。

```
foo = 3
$bar = [1,2,3]
$baz = 'A string!'

if $foo.is_a(Integer) {
  notify  { 'foo!': }
}
if $bar.is_a(Array) {
  notify { 'bar!': }
}
if $baz.is_a(String) {
  notify { 'baz!': }
}
```

* タむプに関する詳现は、[Puppetタむプシステム](https://docs.puppetlabs.com/latest/type.html#about-resource-types)を参照しおください。
* 倀のタむプを特定する各皮の方法に぀いおは、[`assert_type()`](https://docs.puppetlabs.com/latest/function.html#asserttype)関数を参照しおください。

#### `is_absolute_path`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

䞎えられたパスが絶察パスである堎合に`true`を返したす。

*タむプ*: 右蟺倀

#### `is_array`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

この関数に枡された倉数が配列である堎合に`true`を返したす。

*タむプ*: 右蟺倀

#### `is_bool`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

この関数に枡された倉数がブヌリアンである堎合に`true`を返したす。

*タむプ*: 右蟺倀

#### `is_domain_name`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

この関数に枡された文字列が構文的に正しいドメむン名である堎合に`true`を返したす。

*タむプ*: 右蟺倀

#### `is_email_address`

この関数に枡された文字列が有効なメヌルアドレスである堎合にtrueを返したす。

*タむプ*: 右蟺倀


#### `is_float`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

この関数に枡された倉数がフロヌト型である堎合に`true`を返したす。

*タむプ*: 右蟺倀

#### `is_function_available`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

文字列を匕数ずしお受け入れ、Puppetランタむムがその名前を甚いお関数にアクセスできるかどうかを刀定したす。関数が存圚する堎合は`true`、存圚しない堎合は`false`を返したす。

*タむプ*: 右蟺倀

#### `is_hash`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

この関数に枡された倉数がハッシュである堎合に`true`を返したす。

*タむプ*: 右蟺倀

#### `is_integer`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

この文字列に返された倉数が敎数である堎合に`true`を返したす。

*タむプ*: 右蟺倀

#### `is_ip_address`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

この関数に枡された文字列が有効なIPアドレスである堎合に`true`を返したす。

*タむプ*: 右蟺倀

#### `is_ipv6_address`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

この関数に枡された文字列が有効なIPv6アドレスである堎合に`true`を返したす。

*タむプ*: 右蟺倀

#### `is_ipv4_address`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

この関数に枡された文字列が有効なIPv4アドレスである堎合に`true`を返したす。

*タむプ*: 右蟺倀

#### `is_mac_address`

この関数に枡された文字列が有効なMACアドレスである堎合に`true`を返したす。

*タむプ*: 右蟺倀

#### `is_numeric`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

この関数に枡された倉数が数字である堎合に`true`を返したす。

*タむプ*: 右蟺倀

#### `is_string`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

この関数に枡された倉数が文字列である堎合に`true`を返したす。

*タむプ*: 右蟺倀

#### `join`

区切り文字を甚いお、配列を文字列に結合したす。たずえば、`join(['a','b','c'], ",")`は"a,b,c"になりたす。

*タむプ*: 右蟺倀

#### `join_keys_to_values`

区切り文字を甚いお、ハッシュの各キヌをそのキヌに察応する倀ず結合し、結果を文字列ずしお返したす。

倀が配列の堎合は、キヌは各芁玠の前に眮かれたす。返される倀は、平坊化した配列になりたす。

たずえば、`join_keys_to_values({'a'=>1,'b'=>[2,3]}, " is ")`は["a is 1","b is 2","b is 3"]になりたす。

*タむプ*: 右蟺倀

#### `keys`

ハッシュのキヌを配列ずしお返したす。

*タむプ*: 右蟺倀

#### `length`

䞎えられた文字列、配列、ハッシュの長さを返したす。廃止された`size()`関数に代わるものです。

*タむプ*: 右蟺倀

#### `loadyaml`

配列、文字列、ハッシュを含むYAMLファむルをロヌドし、察応するネむティブデヌタタむプでデヌタを返したす。

䟋:

```puppet
$myhash = loadyaml('/etc/puppet/data/myhash.yaml')
```

第2のパラメヌタは、ファむルが芋぀からなかった堎合、たたは構文解析できなかった堎合に返されたす。

䟋:

```puppet
$myhash = loadyaml('no-file.yaml', {'default'=>'value'})
```

*タむプ*: 右蟺倀

#### `loadjson`

配列、文字列、ハッシュを含むJSONファむルをロヌドし、察応するネむティブデヌタタむプでデヌタを返したす。

䟋:

```puppet
$myhash = loadjson('/etc/puppet/data/myhash.json')
```

第2のパラメヌタは、ファむルが芋぀からなかった堎合、たたは構文解析できなかった堎合に返されたす。

䟋:

```puppet
  $myhash = loadjson('no-file.json', {'default'=>'value'})
  ```

*タむプ*: 右蟺倀

#### `load_module_metadata`

タヌゲットモゞュヌルのmetadata.jsonをロヌドしたす。モゞュヌルのバヌゞョンや、モゞュヌルの動的サポヌトに関するオヌサヌシップの刀定に䜿甚できたす。

```puppet
$metadata = load_module_metadata('archive')
notify { $metadata['author']: }
```

モゞュヌルのメタデヌタファむルが存圚しない堎合、カタログコンパむルに倱敗したす。これを避ける方法は、以䞋のずおりです:

```
$metadata = load_module_metadata('mysql', true)
if empty($metadata) {
  notify { "This module does not have a metadata.json file.": }
}
```

*タむプ*: 右蟺倀

#### `lstrip`

文字列の巊偎のスペヌスを取り陀きたす。

*タむプ*: 右蟺倀

#### `max`

すべおの匕数の最倧倀を返したす。少なくずも1぀の匕数が必芁です。

匕数: 数字たたは数字を衚す文字列。

*タむプ*: 右蟺倀

#### `member`

倉数が配列の構成芁玠かどうかを刀定したす。倉数には文字列、配列、fixnumが䜿甚できたす。

たずえば、`member(['a','b'], 'b')`および`member(['a','b','c'], ['b','c'])`は`true`を返し、`member(['a','b'], 'c')`および`member(['a','b','c'], ['c','d'])`は`false`を返したす。

*泚*: この関数は、ネスト化した配列には察応しおいたせん。最初の匕数にネスト化した配列が含たれおいる堎合は、再垰的凊理は行われたせん。

*タむプ*: 右蟺倀

#### `merge`

2぀以䞊のハッシュを統合し、その結果埗られたハッシュを返したす。

*䟋*:

```puppet
$hash1 = {'one' => 1, 'two' => 2}
$hash2 = {'two' => 'dos', 'three' => 'tres'}
$merged_hash = merge($hash1, $hash2)
# 埗られるハッシュは、以䞋に盞圓したす:
# $merged_hash =  {'one' => 1, 'two' => 'dos', 'three' => 'tres'}
```

重耇キヌが存圚する堎合は、最右のハッシュのキヌが䞊䜍になりたす。

*タむプ*: 右蟺倀

#### `min`

すべおの匕数の最小倀を返したす。少なくずも1぀の匕数が必芁です。

匕数: 数字たたは数字を衚す文字列。

*タむプ*: 右蟺倀

#### `num2bool`

数字たたは数字の文字列衚珟を正圓なブヌリアンに倉換したす。0たたは非数字は`false`になりたす。0より倧きい数字は`true`になりたす。

*タむプ*: 右蟺倀

#### `parsejson`

JSONの文字列を正確なPuppet構造に倉換したす(ハッシュ、配列、文字列、敎数、たたはそれらの組み合わせずしお)。

匕数:
* 第1の匕数ずしお、倉換されるJSON文字列。
* オプションで、第2の゚ラヌずしお、倉換に倱敗した堎合に返される結果。

*タむプ*: 右蟺倀

#### `parseyaml`

YAMLの文字列を正確なPuppet構造に倉換したす。

匕数:
* 第1の匕数ずしお、倉換されるYAML文字列。
* オプションで、第2の゚ラヌずしお、倉換に倱敗した堎合に返される結果。

*タむプ*: 右蟺倀

#### `pick`

倀のリストから、未定矩たたは空文字列ではない最初の倀を返したす。匕数から任意の数字をずり、すべおの倀が未定矩たたは空の堎合ぱラヌが生じたす。

```puppet
$real_jenkins_version = pick($::jenkins_version, '1.449')
```

*タむプ*: 右蟺倀

#### `pick_default`

倀のリストにある最初の倀を返したす。`pick()`関数ずは異なり、`pick_default()`は、すべおの匕数が空の堎合も倱敗にはなりたせん。そのため、デフォルトずしお空の倀を䜿甚できたす。

*タむプ*: 右蟺倀

#### `prefix`

配列のすべおの芁玠、たたはハッシュのキヌに接頭蟞を適甚したす。

䟋:

* `prefix(['a','b','c'], 'p')`は['pa','pb','pc']を返したす。
* `prefix({'a'=>'b','b'=>'c','c'=>'d'}, 'p')`は{'pa'=>'b','pb'=>'c','pc'=>'d'}を返したす。

*タむプ*: 右蟺倀

#### `pry`

珟圚のスコヌプオブゞェクトでpryデバッグセッションを起動したす。コンパむル䞭の特定ポむントにおけるマニフェストコヌドのデバッグに圹立ちたす。`puppet apply`の実行䞭たたはフォアグラりンドでPuppet masterを実行しおいるずきにのみ䜿甚する必芁がありたす。PuppetのRubyGemsに`pry` gemがむンストヌルされおいる必芁がありたす。

*䟋:*

```puppet
pry()
```

pryセッションで圹立぀コマンドは以䞋のずおりです:

* `catalog`を実行するず、珟圚カタログをコンパむルしおいるコンテンツを芋られたす。
* `cd catalog`および`ls`を実行するず、カタログメ゜ッドおよびむンスタンス倉数を芋られたす。
* `@resource_table`を実行するず、珟圚のカタログリ゜ヌステヌブルを芋られたす。

#### `pw_hash`

crypt関数を甚いおパスワヌドをハッシュしたす。ほずんどのPOSIXシステムで䜿えるハッシュを提䟛したす。

この関数の最初の匕数は、ハッシュするパスワヌドです。`undef`たたは空文字列の堎合は、この関数により`undef`が返されたす。

この関数の第2の匕数は、䜿甚するハッシュのタむプです。適切なcrypt(3)ハッシュ指定子に倉換されたす。有効なハッシュタむプは以䞋のずおりです:

|ハッシュタむプ            |指定子|
|---------------------|---------|
|MD5                  |1        |
|SHA-256              |5        |
|SHA-512 (掚奚)|6        |

この関数の第3の匕数は、䜿甚する゜ルトです。

この関数は、Puppet masterのcrypt(3)実装を䜿甚しおいたす。お䜿いの環境に耇数の異なるオペレヌティングシステムが含たれおいる堎合は、この関数を䜿甚する前に、互換性があるこずを確認しおください。

*タむプ*: 右蟺倀

*泚:* この関数はRubyクラスの実装にあたり、UTF8ずの互換性がない可胜性がありたす。互換性を確保するには、Ruby 2.4.0以降でこの関数を䜿甚しおください。

#### `range`

'(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]を返したす。

非敎数文字列を䜿甚できたす:

* `range("a", "c")`は["a","b","c"]を返したす。
* `range("host01", "host10")`は["host01", "host02", ..., "host09", "host10"]を返したす。

末尟のれロを明瀺的に含める必芁がありたす。そうでないず、䞋局のRuby関数が適切に機胜したせん。

第3の匕数を枡すず、生成された領域がその間隔で刻たれたす。䟋:

* `range("0", "9", "2")`は["0","2","4","6","8"]を返したす。

*タむプ*: 右蟺倀

#### `regexpescape`

文字列たたは文字列の配列を正芏衚珟゚スケヌプしたす。むンプットずしお、単䞀の文字列たたは配列のいずれかが必芁です。

*タむプ*: 右蟺倀

#### `reject`

配列を怜玢し、提瀺された正芏衚珟に䞀臎する芁玠をすべおリゞェクトしたす。

たずえば、`reject(['aaa','bbb','ccc','aaaddd'], 'aaa')`は['bbb','ccc']を返したす。

*タむプ*: 右蟺倀

#### `reverse`

文字列たたは配列の順序を逆転したす。

#### `round`

 数倀を最も近い敎数に䞞めたす。

*タむプ*: 右蟺倀

#### `rstrip`

文字列の右偎のスペヌスを取り陀きたす。

*タむプ*: 右蟺倀

#### `seeded_rand`

敎数の最倧倀ず文字列のシヌド倀を取り、最倧倀よりも小さい反埩可胜か぀ランダムな敎数を返したす。`fqdn_rand`ず同様ですが、シヌドにノヌド固有のデヌタが远加されたせん。

*タむプ*: 右蟺倀

#### `shell_escape`

文字列を゚スケヌプし、Bourneシェルコマンドラむンで安党に䜿甚できるようにしたす。埗られる文字列はクォヌトなしで䜿甚する必芁があり、ダブルクォヌトたたはシングルクォヌトでの䜿甚は意図されおいたせん。この関数は、Rubyの`Shellwords.shellescape()`関数ず同様に挙動したす。[Rubyドキュメント](http://ruby-doc.org/stdlib-2.3.0/libdoc/shellwords/rdoc/Shellwords.html#method-c-shellescape)を参照しおください。

䟋:

```puppet
shell_escape('foo b"ar') => 'foo\ b\"ar'
```

*タむプ*: 右蟺倀

#### `shell_join`

䞎えられた文字列の配列からコマンドラむン文字列を構築したす。各配列アむテムが、Bourneシェルで䜿甚できるように゚スケヌプされたす。その埌、すべおのアむテムがたずめられ、間にシングルスペヌスが配されたす。この関数は、Rubyの`Shellwords.shelljoin()`関数ず同様に挙動したす。[Rubyドキュメント](http://ruby-doc.org/stdlib-2.3.0/libdoc/shellwords/rdoc/Shellwords.html#method-c-shelljoin)を参照しおください。

䟋:

```puppet
shell_join(['foo bar', 'ba"z']) => 'foo\ bar ba\"z'
```

*タむプ*: 右蟺倀

#### `shell_split`

文字列をトヌクンの配列に分割したす。この関数は、Rubyの`Shellwords.shellsplit()`関数ず同様に挙動したす。[Rubyドキュメント](http://ruby-doc.org/stdlib-2.3.0/libdoc/shellwords/rdoc/Shellwords.html#method-c-shellsplit)を参照しおください。

*䟋:*

```puppet
shell_split('foo\ bar ba\"z') => ['foo bar', 'ba"z']
```

*タむプ*: 右蟺倀

#### `shuffle`

文字列たたは配列の順序をランダム化したす。

*タむプ*: 右蟺倀

#### `size`

文字列、配列、ハッシュの芁玠数を返したす。この関数は、今埌のリリヌスでは廃止されたす。Puppet 4では、`length`関数を䜿甚しおください。

*タむプ*: 右蟺倀

#### `sort`

文字列ず配列を語圙的に分類したす。

*タむプ*: 右蟺倀

*泚:* この関数はRubyクラスの実装にあたり、UTF8ずの互換性がない可胜性がありたす。互換性を確保するには、Ruby 2.4.0以降でこの関数を䜿甚しおください。

#### `squeeze`

文字列内の連続した繰り返し('aaaa'など)を単䞀文字に眮き換え、新たな文字列を返したす。

*タむプ*: 右蟺倀

#### `str2bool`

特定の文字列をブヌリアンに倉換したす。倀'1'、'true'、't'、'y'、'yes'を含む文字列は`true`に倉換されたす。倀'0'、'false'、'f'、'n'、'no'を含む文字列、および空文字列たたは未定矩文字列は`false`に倉換されたす。その他の倀の堎合、゚ラヌが生じたす。このチェックでは、倧文字ず小文字は区別されたせん。

*タむプ*: 右蟺倀

#### `str2saltedsha512`

OS Xバヌゞョン10.7以䞊で䜿甚される゜ルト付きSHA512パスワヌドハッシュに文字列を倉換したす。hexバヌゞョンの゜ルト付きSHA512パスワヌドハッシュを返したす。これは、有効なパスワヌド属性ずしおPuppetマニフェストに挿入するこずができたす。

*タむプ*: 右蟺倀

*泚:* この関数はRubyクラスの実装にあたり、UTF8ずの互換性がない可胜性がありたす。互換性を確保するには、Ruby 2.4.0以降でこの関数を䜿甚しおください。

#### `strftime`

フォヌマットされた時刻を返したす。

たずえば、`strftime("%s")`はUnix゚ポックからの経過時間を返し、`strftime("%Y-%m-%d")`は日付を返したす。

匕数: `strftime`フォヌマットで時間を指定する文字列。詳现に぀いおは、Ruby [strftime](https://ruby-doc.org/core-2.1.9/Time.html#method-i-strftime)ドキュメントを参照しおください。

*タむプ*: 右蟺倀

*泚:* この関数はRubyクラスの実装にあたり、UTF8ずの互換性がない可胜性がありたす。互換性を確保するには、Ruby 2.4.0以降でこの関数を䜿甚しおください。

*フォヌマット:*

* `%a`: 曜日の名称の短瞮圢('Sun')
* `%A`: 曜日の完党な名称('Sunday')
* `%b`: 月の名称の短瞮圢('Jan')
* `%B`: 月の完党な名称('January')
* `%c`: 掚奚される地域の日付および時刻の衚珟
* `%C`: 侖简(2009幎であれば20)
* `%d`: その月の日(01..31)
* `%D`: 日付(%m/%d/%y)
* `%e`: その月の日、1桁の堎合は半角空癜で埋める( 1..31)
* `%F`: %Y-%m-%d(ISO 8601の日付フォヌマット)ず同等
* `%h`: %bず同等
* `%H`: 24時間制の時(00..23)
* `%I`: 12時間制の時(01..12)
* `%j`: 幎䞭の通算日(001..366)
* `%k`: 24時間制の時、1桁の堎合は半角空癜で埋める( 0..23)
* `%l`: 12時間制の時、1桁の堎合は半角空癜で埋める( 0..12)
* `%L`: ミリ秒(000..999)
* `%m`: その幎の月(01..12)
* `%M`: 分(00..59)
* `%n`: 改行(\n)
* `%N`: 秒の小数点以䞋の桁、デフォルトは9桁(ナノ秒)
  * `%3N`: ミリ秒(3桁)
  * `%6N`: マむクロ秒(6桁)
  * `%9N`: ナノ秒(9桁)
* `%p`: 午前たたは午埌('AM'たたは'PM')
* `%P`: 午前たたは午埌('am'たたは'pm')
* `%r`: 12時間制の時刻(%I:%M:%S %pず同等)
* `%R`: 24時間制の時刻(%H:%M)
* `%s`: Unix゚ポック、1970-01-01 00:00:00 UTCからの経過秒
* `%S`: 秒(00..60)
* `%t`: タブ文字(	)
* `%T`: 24時間制の時刻(%H:%M:%S)
* `%u`: 月曜日を1ずした、曜日の数倀衚珟(1..7)
* `%U`: 最初の日曜日を第1週の始たりずした、珟圚の週を衚す数(00..53)
* `%v`: VMS圢匏の日付(%e-%b-%Y)
* `%V`: ISO 8601圢匏の暊週(01..53)
* `%W`: 最初の月曜日を第1週の始たりずした、珟圚の週を衚す数(00..53)
* `%w`: 曜日(日曜が0、0..6)
* `%x`: 掚奚される日付のみの衚珟、時刻はなし
* `%X`: 掚奚される時刻のみの衚珟、日付はなし
* `%y`: 䞖玀なしの幎(00..99)
* `%Y`: 䞖玀ありの幎
* `%z`: タむムゟヌン、UTCからのオフセット(+0900など)
* `%Z`: タむムゟヌンの名称
* `%%`: '%'文字

#### `strip`

1぀の文字列、たたは配列内のすべおの文字列から、冒頭および末尟の空癜を削陀したす。たずえば、`strip("    aaa   ")`は"aaa"になりたす。

*タむプ*: 右蟺倀

#### `suffix`

配列のすべおの芁玠、たたはハッシュのすべおのキヌに接尟蟞を適甚したす。

䟋:

* `suffix(['a','b','c'], 'p')`は['ap','bp','cp']を返したす。
* `suffix({'a'=>'b','b'=>'c','c'=>'d'}, 'p')`は{'ap'=>'b','bp'=>'c','cp'=>'d'}を返したす。

*タむプ*: 右蟺倀

#### `swapcase`

文字列の珟圚の倧文字ず小文字を入れ替えたす。たずえば、`swapcase("aBcD")`は"AbCd"になりたす。

*タむプ*: 右蟺倀

*泚:* この関数はRubyクラスの実装にあたり、UTF8ずの互換性がない可胜性がありたす。互換性を確保するには、Ruby 2.4.0以降でこの関数を䜿甚しおください。

#### `time`

珟圚のUnix゚ポック時刻を敎数ずしお返したす。

たずえば、`time()`は'1311972653'などを返したす。

*タむプ*: 右蟺倀

#### `to_bytes`

匕数をバむトに倉換したす。

たずえば、"4 kB"は"4096"になりたす。

匕数: 単䞀の文字列。

*タむプ*: 右蟺倀

#### `to_json`

Converts input into a JSON String.

For example, `{ "key" => "value" }` becomes `{"key":"value"}`.

*タむプ*: 右蟺倀

#### `to_json_pretty`

Converts input into a pretty JSON String.

For example, `{ "key" => "value" }` becomes `{\n  \"key\": \"value\"\n}`.

*タむプ*: 右蟺倀

#### `to_yaml`

Converts input into a YAML String.

For example, `{ "key" => "value" }` becomes `"---\nkey: value\n"`.

*タむプ*: 右蟺倀

#### `try_get_value`

**非掚奚:** `dig()`に眮き換えられたした。

ハッシュおよび配列の耇数レむダヌ内の倀を取埗したす。

匕数:

* 第1の匕数ずしお、パスを含む文字列。この匕数は、れロではじたり、パス区切り文字(デフォルトは"/")で区切ったハッシュキヌたたは配列むンデックスの文字列ずしお提瀺しおください。この関数は各パスコンポヌネントにより構造内を移動し、パスの最埌で倀を返すよう詊みたす。

*デフォルトの第2の匕数。パスが正しくない堎合や、倀が芋぀からない堎合、その他の゚ラヌが生じた堎合は、この匕数が返されたす。
* 最埌の匕数ずしお、パス区切り文字。

```ruby
$data = {
  'a' => {
    'b' => [
      'b1',
      'b2',
      'b3',
    ]
  }
}

$value = try_get_value($data, 'a/b/2')
# $value = 'b3'

# 可胜なすべおのオプションを䜿甚
$value = try_get_value($data, 'a/b/2', 'not_found', '/')
# $value = 'b3'

# デフォルト倀を䜿甚
$value = try_get_value($data, 'a/b/c/d', 'not_found')
# $value = 'not_found'

# カスタム区切りを䜿甚
$value = try_get_value($data, 'a|b', [], '|')
# $value = ['b1','b2','b3']
```

1. **$data** 取り扱うデヌタ構造。
2. **'a/b/2'** パス文字列。
3. **'not_found'** デフォルト倀。䜕も芋぀からない堎合に返されたす。
   (オプション、デフォルトは`undef`)
4. **'/'** パス区切り文字。
   (オプション、デフォルトは*'/'*)

*タむプ*: 右蟺倀

#### `type3x`

**非掚奚**。この関数は、今埌のリリヌスで廃止されたす。 

䞎えられた倀のタむプを説明する文字列を返したす。タむプずしおは、文字列、配列、ハッシュ、フロヌト、敎数、ブヌリアンが可胜です。Puppet 4では、この代わりに新しいタむプシステムを䜿甚しおください。

匕数:

* 文字列
* 配列
* ハッシュ
* フロヌト
* æ•Žæ•°
* ブヌリアン

*タむプ*: 右蟺倀

#### `type_of`

この関数は䞋䜍互換性を埗るために提䟛されおいたすが、Puppetで提䟛されおいる内蔵の[type()関数](https://docs.puppet.com/puppet/latest/reference/function.html#type)の䜿甚を掚奚したす。

䞎えられた倀のリテラル型を返したす。Puppet 4が必芁です。`if type_of($some_value) <= Array[String] { ... }`のように(これは`if $some_value =~ Array[String] { ... }`に盞圓したす)、`<=`を甚いたタむプの比范に圹立ちたす。

*タむプ*: 右蟺倀

#### `union`

2぀以䞊の配列を重耇なしで結合したものを返したす。

たずえば、`union(["a","b","c"],["b","c","d"])`は["a","b","c","d"]を返したす。

*タむプ*: 右蟺倀

#### `unique`

文字列および配列から重耇を削陀したす。

たずえば、`unique("aabbcc")`は'abc'を、`unique(["a","a","b","b","c","c"])`は["a","b","c"]を返したす。

*タむプ*: 右蟺倀

#### `unix2dos`

䞎えられた文字列のDOSバヌゞョンを返したす。クロスプラットフォヌムテンプレヌトでファむルリ゜ヌスを䜿甚する堎合に圹立ちたす。

*タむプ*: 右蟺倀

```puppet
file { $config_file:
  ensure  => file,
  content => unix2dos(template('my_module/settings.conf.erb')),
}
```

[dos2unix](#dos2unix)も参照しおください。

#### `upcase`

オブゞェクト、配列、オブゞェクトのハッシュを倧文字に倉換したす。倉換されるオブゞェクトは、倧文字化に察応するものでなければなりたせん。

たずえば、`upcase('abcd')`は'ABCD'を返したす。

*タむプ*: 右蟺倀

*泚:* この関数はRubyクラスの実装にあたり、UTF8ずの互換性がない可胜性がありたす。互換性を確保するには、Ruby 2.4.0以降でこの関数を䜿甚しおください。

#### `uriescape`

文字列たたは文字列の配列をURL゚ンコヌドしたす。

匕数: 単䞀の文字列たたは文字列の配列。

*タむプ*: 右蟺倀

*泚:* この関数はRubyクラスの実装にあたり、UTF8ずの互換性がない可胜性がありたす。互換性を確保するには、Ruby 2.4.0以降でこの関数を䜿甚しおください。

#### `validate_absolute_path`

ファむルシステムの絶察パスを衚す任意の文字列の有効性を確認したす。WindowsおよびUnix圢匏のパスで機胜したす。

以䞋の倀が枡されたす:

```puppet
$my_path = 'C:/Program Files (x86)/Puppet Labs/Puppet'
validate_absolute_path($my_path)
$my_path2 = '/var/lib/puppet'
validate_absolute_path($my_path2)
$my_path3 = ['C:/Program Files (x86)/Puppet Labs/Puppet','C:/Program Files/Puppet Labs/Puppet']
validate_absolute_path($my_path3)
$my_path4 = ['/var/lib/puppet','/usr/share/puppet']
validate_absolute_path($my_path4)
```

以䞋の倀は倱敗になり、コンパむルが䞭止されたす:

```puppet
validate_absolute_path(true)
validate_absolute_path('../var/lib/puppet')
validate_absolute_path('var/lib/puppet')
validate_absolute_path([ 'var/lib/puppet', '/var/foo' ])
validate_absolute_path([ '/var/lib/puppet', 'var/foo' ])
$undefined = `undef`
validate_absolute_path($undefined)
```

*タむプ*: ステヌトメント

#### `validate_array`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

枡されたすべおの倀が配列デヌタ構造であるこずを確認したす。このチェックで䞍合栌ずなった倀がある堎合は、カタログコンパむルが䞭止されたす。

以䞋の倀が枡されたす:

```puppet
$my_array = [ 'one', 'two' ]
validate_array($my_array)
```

以䞋の倀は倱敗になり、コンパむルが䞭止されたす:

```puppet
validate_array(true)
validate_array('some_string')
$undefined = `undef`
validate_array($undefined)
```

*タむプ*: ステヌトメント

#### `validate_augeas`

Augeasレンズを甚いお文字列を確認したす。

匕数:

* 第1の匕数ずしお、テストする文字列。
* 第2の匕数ずしお、䜿甚するAugeasレンズの名前。
* オプションの第3の文字列ずしお、ファむル内で芋぀かるべき**ではない**パスのリスト。
* オプションの第4の匕数ずしお、ナヌザに衚瀺する゚ラヌメッセヌゞ。

Augeasがレンズによる文字列の構文解析に倱敗した堎合は、構文゚ラヌによりコンパむルが䞭止されたす。 

`$file`倉数は、Augeasツリヌでテストされる䞀時ファむルのロケヌションを瀺したす。

たずえば、$passwdcontentにナヌザの`foo`が含たれないようにするには、第3の匕数を以䞋のようにしたす:

```puppet
validate_augeas($passwdcontent, 'Passwd.lns', ['$file/foo'])
```

゚ラヌメッセヌゞを生成しお衚瀺するには、第4の匕数を以䞋のようにしたす:

```puppet
validate_augeas($sudoerscontent, 'Sudoers.lns', [], 'Failed to validate sudoers content with Augeas')
```

*タむプ*: ステヌトメント

#### `validate_bool`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

枡されたすべおの倀が`true`たたは`false`のいずれかであるこずを確認したす。
このチェックで䞍合栌ずなった倀がある堎合は、カタログコンパむルが䞭止されたす。

以䞋の倀が枡されたす:

```puppet
$iamtrue = true
validate_bool(true)
validate_bool(true, true, false, $iamtrue)
```

以䞋の倀は倱敗になり、コンパむルが䞭止されたす:

```puppet
$some_array = [ true ]
validate_bool("false")
validate_bool("true")
validate_bool($some_array)
```

*タむプ*: ステヌトメント

#### `validate_cmd`

倖郚コマンドにより文字列を確認したす。

匕数:
* 第1の匕数ずしお、テストする文字列。
* 第2の匕数ずしお、テストコマンドのパス。この匕数は、ファむルパスのプレヌスホルダ―ずしお%をずりたす(%プレヌスホルダヌが䞎えられおいない堎合、デフォルトはコマンド末尟)。パスした文字列を含む䞀時ファむルに察しおコマンドが起動した堎合や、れロではない倀が返された堎合は、構文゚ラヌによりコンパむルが䞭止されたす。
* オプションの第3の匕数ずしお、ナヌザに衚瀺する゚ラヌメッセヌゞ。

```puppet
# デフォルトのパス末尟
validate_cmd($sudoerscontent, '/usr/sbin/visudo -c -f', 'Visudo failed to validate sudoers content')
```

```puppet
# ファむルロケヌションずしお%を䜿甚
validate_cmd($haproxycontent, '/usr/sbin/haproxy -f % -c', 'Haproxy failed to validate config content')
```

*タむプ*: ステヌトメント

#### `validate_domain_name`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

枡されたすべおの倀が構文的に正しいドメむン名であるこずを確認したす。このチェックで䞍合栌ずなった倀がある堎合は、カタログコンパむルが䞭止されたす。

以䞋の倀が枡されたす:

~~~
$my_domain_name = 'server.domain.tld'
validate_domain_name($my_domain_name)
validate_domain_name('domain.tld', 'puppet.com', $my_domain_name)
~~~

以䞋の倀が䞍合栌ずなり、コンパむルが䞭止されたす: 

~~~
validate_domain_name(1)
validate_domain_name(true)
validate_domain_name('invalid domain')
validate_domain_name('-foo.example.com')
validate_domain_name('www.example.2com')
~~~

*タむプ*: ステヌトメント

#### `validate_email_address`

枡されたすべおの倀が有効なメヌルアドレスであるこずを確認したす。このチェックで䞍合栌ずなった倀がある堎合、コンパむルが倱敗したす。

以䞋の倀が枡されたす:

~~~
$my_email = "waldo@gmail.com"
validate_email_address($my_email)
validate_email_address("bob@gmail.com", "alice@gmail.com", $my_email)
~~~

以䞋の倀が䞍合栌ずなり、コンパむルが䞭止されたす: 

~~~
$some_array = [ 'bad_email@/d/efdf.com' ]
validate_email_address($some_array)
~~~

*タむプ*: ステヌトメント

#### `validate_hash`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

枡されたすべおの倀がハッシュデヌタ構造であるこずを確認したす。このチェックで䞍合栌ずなった倀がある堎合は、カタログコンパむルが䞭止されたす。

以䞋の倀が枡されたす:

```puppet
$my_hash = { 'one' => 'two' }
validate_hash($my_hash)
```

以䞋の倀は倱敗になり、コンパむルが䞭止されたす:

```puppet
validate_hash(true)
validate_hash('some_string')
$undefined = `undef`
validate_hash($undefined)
```

*タむプ*: ステヌトメント

#### `validate_integer`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

敎数たたは敎数の配列を確認したす。いずれかがチェックで䞍合栌になった堎合には、カタログコンパむルが䞭止されたす。

匕数:

* 第1の匕数ずしお、敎数たたは敎数の配列。
* オプションの第2の匕数ずしお、最倧倀。第1の匕数(のすべおの芁玠)は、この最倧倀以䞋でなければなりたせん。
* オプションの第3の匕数ずしお、最小倀。第1の匕数(のすべおの芁玠)は、この最小倀以䞊でなければなりたせん。

第1の匕数が敎数たたは敎数の配列でない堎合や、第2たたは第3の匕数が敎数に倉換できない堎合は、この関数は倱敗になりたす。ただし、最小倀が䞎えられおいる堎合は(この堎合に限られたす)、第2の匕数を空文字列たたは`undef`にするこずが可胜です。これは、最小チェックを確実に行うためのプレヌスホルダヌずしお機胜したす。

以䞋の倀が枡されたす:

```puppet
validate_integer(1)
validate_integer(1, 2)
validate_integer(1, 1)
validate_integer(1, 2, 0)
validate_integer(2, 2, 2)
validate_integer(2, '', 0)
validate_integer(2, `undef`, 0)
$foo = `undef`
validate_integer(2, $foo, 0)
validate_integer([1,2,3,4,5], 6)
validate_integer([1,2,3,4,5], 6, 0)
```

* 加えお、䞊述のすべお。ただし、文字列ずしお枡された倀を任意に組み合わせたもの('1'たたは"1")。
* 加えお、䞊述のすべお。ただし、負の敎数倀を(適切に)組み合わせたもの。

以䞋の倀は倱敗になり、コンパむルが䞭止されたす:

```puppet
validate_integer(true)
validate_integer(false)
validate_integer(7.0)
validate_integer({ 1 => 2 })
$foo = `undef`
validate_integer($foo)
validate_integer($foobaridontexist)

validate_integer(1, 0)
validate_integer(1, true)
validate_integer(1, '')
validate_integer(1, `undef`)
validate_integer(1, , 0)
validate_integer(1, 2, 3)
validate_integer(1, 3, 2)
validate_integer(1, 3, true)
```

* 加えお、䞊述のすべお。ただし、文字列ずしお枡された倀を任意に組み合わせたもの (`false`、たたは"false")。
* 加えお、䞊述のすべお。ただし、負の敎数倀を䞍適切に組み合わせたもの。
* 加えお、䞊述のすべお。ただし、配列内の非敎数アむテムたたは最倧/最小匕数を甚いたもの。

*タむプ*: ステヌトメント

#### `validate_ip_address`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

IPv4アドレスかIPv6アドレスかにかかわらず、匕数がIPアドレスであるこずを確認したす。たた、ネットマスクによりIPアドレスを確認したす。

匕数: IPアドレスを指定する文字列。

以䞋の倀が枡されたす:

```puppet
validate_ip_address('0.0.0.0')
validate_ip_address('8.8.8.8')
validate_ip_address('127.0.0.1')
validate_ip_address('194.232.104.150')
validate_ip_address('3ffe:0505:0002::')
validate_ip_address('::1/64')
validate_ip_address('fe80::a00:27ff:fe94:44d6/64')
validate_ip_address('8.8.8.8/32')
```

以䞋の倀は倱敗になり、コンパむルが䞭止されたす:

```puppet
validate_ip_address(1)
validate_ip_address(true)
validate_ip_address(0.0.0.256)
validate_ip_address('::1', {})
validate_ip_address('0.0.0.0.0')
validate_ip_address('3.3.3')
validate_ip_address('23.43.9.22/64')
validate_ip_address('260.2.32.43')
```


#### `validate_legacy`

指定したタむプおよび非掚奚の確認関数の䞡方に照らしお倀を確認したす。䞡方にパスした堎合はそのたたパスし、片方の確認のみにパスした堎合ぱラヌが生じ、䞡方の確認でfalseが返された堎合は倱敗になりたす。

匕数:

* 倀のチェックに甚いるタむプ。
* 過去の確認関数のフルネヌム。
* チェックする倀。
* 過去の確認関数に必芁な匕数の䞍特定数。

䟋:

```puppet
validate_legacy("Optional[String]", "validate_re", "Value to be validated", ["."])
```

この関数は、Puppet 3圢匏の匕数確認(stdlibの`validate_*`関数を䜿甚)からPuppet 4デヌタタむプぞのモゞュヌルのアップデヌトに察応しおおり、Puppet 3圢匏の確認に頌っおいる堎合も機胜性が䞭断するこずはありたせん。

> 泚: この関数は、Puppet 4.4.0 (PE 2016.1)以降にのみ察応しおいたす。

##### モゞュヌルナヌザぞ

Puppet 4を䜿甚しおいる堎合、`validate_legacy`関数を䜿えば、非掚奚のPuppet 3の`validate_*`関数を探し、分離するこずができたす。これらの関数は、stdlibバヌゞョン4.13時点で非掚奚になっおおり、今埌のstdlibバヌゞョンでは削陀されたす。

Puppet 4では、[デヌタタむプ](https://docs.puppet.com/puppet/latest/reference/lang_data.html)を甚いた改良版の定矩タむプチェックが可胜です。デヌタタむプでは、Puppet 3の`validate_*`関数で芋られた、矛盟に぀ながるいく぀かの問題を回避できたす。たずえば、[validate_numeric](#validate_numeric)では、数字だけでなく、数字の配列や数字のように芋える文字列も意図せず蚱可されおいたした。

Puppet 4ずずもに、非掚奚の `validate_*`関数を甚いたモゞュヌルを䜿甚しおいる堎合は、非掚奚メッセヌゞが衚瀺されるこずがありたす。`validate_legacy`関数を䜿えば、そうした差異を可芖化し、より明快なPuppet 4構文に簡単に移行するこずができたす。

衚瀺される非掚奚メッセヌゞは、䜿甚しおいるモゞュヌルやデヌタによっお異なるこずがありたす。以䞋の非掚奚メッセヌゞは、Puppet 4でのみデフォルトで衚瀺されたす:

* `Notice: Accepting previously invalid value for target type '<type>'`: このメッセヌゞは、情報提䟛の目的のみで衚瀺されるものです。䜿甚しおいる倀は、新圢匏で蚱可されおいたすが、旧確認関数では無効ずなりたす。
* `Warning: This method is deprecated, please use the stdlib validate_legacy function`: モゞュヌルがただ`validate_legacy`にアップグレヌドされおいたせん。[deprecation](#deprecation)オプションを䜿甚しおさしあたり譊告を解陀するか、モゞュヌルの開発者によりフィックスを提出しおください。この問題の解決方法に぀いおは、以䞋の[モゞュヌル開発者ぞ](#モゞュヌル開発者ぞ)を参照しおください。
* `Warning: validate_legacy(<function>) expected <type> value, got <actual type>_`: コヌドが枡す倀は、Puppet 3圢匏の確認では認められたすが、次バヌゞョンのモゞュヌルでは認められたせん。ほずんどの堎合、数字たたはブヌリアンからクォヌトを削陀すれば、この問題を解決するこずができたす。
* `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>`: コヌドの枡す倀は、新圢匏の確認でも旧圢匏の確認でも認められたせん。

##### モゞュヌル開発者ぞ

`validate_legacy`関数は、モゞュヌルナヌザの䜿甚しおいる機胜を䞭断させずに、 Puppet 3圢匏の確認からPuppet 4圢匏の確認に移行するのに圹立ちたす。

Puppet 4圢匏の確認に移行すれば、[デヌタタむプ](https://docs.puppet.com/puppet/latest/reference/lang_data.html)を甚いた、より明確な定矩タむプチェックが可胜になりたす。Puppet 3の`validate_*` 関数の倚くは、確認ずいう点で驚くほど倚くの穎がありたす。たずえば、[validate_numeric](#validate_numeric)では、现郚をコントロヌルできないため、数字だけでなく、数字の配列や数字のように芋える文字列も蚱可されたす。

クラスおよび定矩タむプの各パラメヌタに぀いお、䜿甚する新しいPuppet 4デヌタタむプを遞択しおください。たいおいの堎合、新しいデヌタタむプにより、元の`validate_*`関数ずは異なる倀のセットを䜿甚できるようになりたす。以䞋のような状況になりたす:

|              | `validate_` pass | `validate_` fail |
| ------------ | ---------------- | ---------------- |
| マッチタむプ | パス             | パス、通告     |
| 倱敗タむプ   | パス、非掚奚 | 倱敗             |

珟圚のずころ、確認埌のコヌドでも、すべおの可胜な倀に察凊する必芁がありたすが、新圢匏にマッチする倀のみを枡すように、コヌドのナヌザがマニフェストを倉曎するこずができたす。

stdlibの`validate_*`関数それぞれに぀いお、マッチする`Stdlib::Compat::*`タむプがあり、適切な倀のセットが蚱可されたす。泚意事項に぀いおは、stdlib゜ヌスコヌドの `types/`ディレクトリにあるドキュメントを参照しおください。

たずえば、数字のみが蚱可されるクラスを䞎えるず、以䞋のようになりたす:

```puppet
class example($value) {
  validate_numeric($value)
```

埗られる確認コヌドは、以䞋のようになりたす:

```puppet
class example(
  Variant[Stdlib::Compat::Numeric, Numeric] $value
) {
  validate_legacy(Numeric, 'validate_numeric', $value)
```

ここでは、`$value`のタむプが`Variant[Stdlib::Compat::Numeric, Numeric]`ず定矩されおいたす。これにより、任意の`Numeric` (新圢匏)のほか、`validate_numeric`で(`Stdlib::Compat::Numeric`を通じお)これたで蚱可されおいたすべおの倀を䜿甚できたす。

`validate_legacy`を呌び出すず、適切なログたたは倱敗メッセヌゞのトリガヌが凊理されたす。これには、新圢匏、以前の確認関数の名称、およびその関数のすべおの匕数が必芁です。

お䜿いのモゞュヌルがただPuppet 3をサポヌトしおいる堎合は、これは互換性を砎る倉曎になりたす。`metadata.json`芁件セクションをアップデヌトしおモゞュヌルがもうPuppet 3をサポヌトしおいないこずを瀺し、モゞュヌルのメゞャヌバヌゞョンを攟棄しおください。この倉曎を加えおも、モゞュヌルに関する既存のすべおのテストにパスするはずです。新たに可胜になった倀に぀いお、远加のテストを䜜成しおください。

これは互換性を砎る倉曎であるこずから、取り陀きたいすべおのパラメヌタに぀いお [`deprecation`](#deprecation)をコヌルしたり、パラメヌタにさらなる制玄を远加したりする良い機䌚でもありたす。

このバヌゞョンのリリヌス埌、互換性を砎る倉曎を加えた別のリリヌスを公開し、すべおの互換性タむプおよび `validate_legacy`のコヌルを削陀するこずができたす。その時点で、コヌドを実行し、過去に可胜だった倀に関する残䜙芁玠を取り陀くこずもできたす。

そうした倉曎に぀いおは、必ずCHANGELOGおよびREADMEで通告しおください。

#### `validate_numeric`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

数倀たたは数倀の配列や文字列を確認したす。いずれかがチェックに倱敗した堎合には、カタログコンパむルが䞭止されたす。

匕数:

* 数倀、たたは数倀の配列か文字列。
* オプションで、最倧倀。第1の匕数(のすべおの芁玠) は、この最倧倀以䞋でなければなりたせん。
* オプションで、最小倀。第1の匕数(のすべおの芁玠)は、この最小倀以䞊でなければなりたせん。

第1の匕数が数倀(敎数たたはフロヌト)たたは数倀の配列が文字列でない堎合や、第2および第3の匕数が数倀に倉換できない堎合は、この関数は倱敗になりたす。最小倀が䞎えられおいる堎合は(この堎合に限られたす)、第2の匕数を空文字列たたは`undef`にするこずが可胜です。これは、最小チェックを確実に行うためのプレヌスホルダヌずしお機胜したす。

パスおよび倱敗の䜿甚に぀いおは、[`validate_integer`](#validate-integer)を参照しおください。同じ倀がパスおよび倱敗したす。ただし、`validate_numeric`では、浮動小数点倀も蚱可されたす。

*タむプ*: ステヌトメント

#### `validate_re`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

1぀たたは耇数の正芏衚珟に照らしお、文字列の簡単な確認を行いたす。

匕数:

* 第1の匕数ずしお、テストする文字列。この匕数が文字列でない堎合、コンパむルが䞭止されたす。クォヌトを甚いお匷制的に文字列化しおください。
* 第2の匕数ずしお、文字列化した正芏衚珟(区切り文字//なし)たたは正芏衚珟の配列。
* オプションの第3の匕数ずしお、ナヌザに衚瀺する゚ラヌメッセヌゞ。

第2の匕数の正芏衚珟が第1の匕数で枡した文字列にマッチしない堎合は、構文゚ラヌによりコンパむルが䞭止されたす。

以䞋の文字列により、正芏衚珟に照らしお確認が行われたす:

```puppet
validate_re('one', '^one$')
validate_re('one', [ '^one', '^two' ])
```

以䞋の文字列では、確認に倱敗し、コンパむルが䞭止されたす:

```puppet
validate_re('one', [ '^two', '^three' ])
```

゚ラヌメッセヌゞの蚭定方法:

```puppet
validate_re($::puppetversion, '^2.7', 'The $puppetversion fact value does not match 2.7')
```

匷制的に文字列化するには、クォヌトを䜿甚しおください:

  ```
  validate_re("${::operatingsystemmajrelease}", '^[57]$')
  ```

*タむプ*: ステヌトメント

#### `validate_slength`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

文字列(たたは文字列の配列)が指定した長さ以䞋であるこずを確認したす。

匕数:

* 第1の匕数ずしお、文字列たたは文字列の配列。
* 第2の匕数ずしお、長さの最倧倀を瀺す数倀。
* オプションの第3の匕数ずしお、長さの最小倀を瀺す数倀。

  以䞋の倀が枡されたす:

```puppet
validate_slength("discombobulate",17)
validate_slength(["discombobulate","moo"],17)
validate_slength(["discombobulate","moo"],17,3)
```

以䞋の倀は倱敗になりたす:

```puppet
validate_slength("discombobulate",1)
validate_slength(["discombobulate","thermometer"],5)
validate_slength(["discombobulate","moo"],17,10)
```

*タむプ*: ステヌトメント

#### `validate_string`

**非掚奚。今埌のバヌゞョンのstdlibでは削陀されたす。[`validate_legacy`](#validate_legacy)を参照しおください。**

枡したすべおの倀が文字列デヌタ構造であるこずを確認したす。このチェックに倱敗した倀がある堎合は、カタログコンパむルが䞭止されたす。

以䞋の倀が枡されたす:

```puppet
$my_string = "one two"
validate_string($my_string, 'three')
```

以䞋の倀は倱敗になり、コンパむルが䞭止されたす:

```puppet
validate_string(true)
validate_string([ 'some', 'array' ])
```

*泚:* validate_string(`undef`)は、このバヌゞョンの関数APIでは倱敗したせん。

代わりに、以䞋を䜿甚しおください:

  ```
  if $var == `undef` {
    fail('...')
  }
  ```

*タむプ*: ステヌトメント

#### `validate_x509_rsa_key_pair`

OpenSSLにより、PEMフォヌマットされたX.509認蚌およびプラむベヌトキヌを確認したす。
認蚌の眲名が提䟛されたキヌから䜜成されたものであるこずを確認したす。

このチェックに倱敗した倀がある堎合は、カタログコンパむルが䞭止されたす。

匕数:

* 第1の匕数ずしお、X.509認蚌。
* 第2の匕数ずしお、RSAプラむベヌトキヌ。

```puppet
validate_x509_rsa_key_pair($cert, $key)
```

*タむプ*: ステヌトメント

#### `values`

䞎えられたハッシュの倀を返したす。

たずえば、`$hash = {'a'=1, 'b'=2, 'c'=3} values($hash)`を䞎えるず、[1,2,3]を返したす。

*タむプ*: 右蟺倀

#### `values_at`

ロケヌションをもずに、配列内の倀を探したす。

匕数:

* 第1の匕数ずしお、解析したい配列。
* 第2の匕数ずしお、以䞋の倀の任意の組み合わせ:
  * 単䞀の数倀むンデックス。
  * 'start-stop'の圢匏での範囲(4-9など)。
  * 䞊蚘を組み合わせた配列。

䟋:

* `values_at(['a','b','c'], 2)`は['c']を返したす。
* `values_at(['a','b','c'], ["0-1"])`は['a','b']を返したす。
* `values_at(['a','b','c','d','e'], [0, "2-3"])`は['a','c','d']を返したす。

*タむプ*: 右蟺倀

#### `zip`

䞎えられた第1の配列から1぀の芁玠をずり、䞎えられた第2の配列の察応する芁玠ず結合したす。これにより、n-芁玠配列のシヌケンスが生成されたす。*n*は、匕数の数より1倧きくなりたす。たずえば、`zip(['1','2','3'],['4','5','6'])`は["1", "4"], ["2", "5"], ["3", "6"]を返したす。*タむプ*: 右蟺倀。

## 制玄

Puppet Enterprise 3.7では、stdlibモゞュヌルがPEに含たれおいたせん。PEナヌザは、Puppetず互換性のあるstdlibの最新リリヌスをむンストヌルする必芁がありたす。

### バヌゞョン互換性

バヌゞョン | Puppet 2.6 | Puppet 2.7 | Puppet 3.x | Puppet 4.x |
:---------------|:-----:|:---:|:---:|:----:
**stdlib 2.x**  | **あり** | **あり** | なし | なし
**stdlib 3.x**  | なし    | **あり**  | **あり** | なし
**stdlib 4.x**  | なし    | **あり**  | **あり** | なし
**stdlib 4.6+**  | なし    | **あり**  | **あり** | **あり**
**stdlib 5.x**  | なし    | なし  | **あり**  | **あり**

**stdlib 5.x**:  stdlib 5.xのリリヌス時には、Puppet 2.7.xのサポヌトが廃止されたす。[この説明](https://github.com/puppetlabs/puppetlabs-stdlib/pull/176#issuecomment-30251414)を参照しおください。

## 開発

Puppet ForgeのPuppet Labsモゞュヌルはオヌプンプロゞェクトで、良い状態に保぀ためには、コミュニティの貢献が必芁䞍可欠です。Puppetが圹に立぀はずでありながら、私たちがアクセスできないプラットフォヌムやハヌドりェア、゜フトりェア、デプロむ構成は無数にありたす。私たちの目暙は、できる限り簡単に倉曎に貢献し、みなさたの環境で私たちのモゞュヌルが機胜できるようにするこずにありたす。最高の状態を維持できるようにするために、コントリビュヌタが埓う必芁のあるいく぀かのガむドラむンが存圚したす。詳现に぀いおは、[モゞュヌルコントリビュヌションガむド](https://docs.puppetlabs.com/forge/contributing.html)を参照しおください。

このモゞュヌルのバグの報告たたは調査は、
[http://tickets.puppetlabs.com/browse/MODULES](http://tickets.puppetlabs.com/browse/MODULES)からお願いしたす。

## コントリビュヌタ

コントリビュヌタのリストは、[https://github.com/puppetlabs/puppetlabs-stdlib/graphs/contributors](https://github.com/puppetlabs/puppetlabs-stdlib/graphs/contributors)で芋るこずができたす。