newer pg module
[mirror/dsa-puppet.git] / 3rdparty / modules / postgresql / readmes / README_ja_JP.md
1 # postgresql
2
3 #### 目次
4
5 1. [モジュールの概要 - モジュールの機能](#module-description)
6 2. [セットアップ - postgresqlモジュール導入の基本](#setup)
7     * [postgresqlの影響](#what-postgresql-affects)
8     * [postgresqlの導入](#getting-started-with-postgresql)
9 3. [使用方法 - 設定オプションと追加機能](#usage)
10     * [サーバーの設定](#configure-a-server)
11     * [データベースの作成](#create-a-database)
12     * [ユーザ、ロール、パーミッションの管理](#manage-users-roles-and-permissions)
13     * [デフォルトのオーバーライド](#override-defaults)
14     * [pg_hba.confのアクセスルールの作成](#create-an-access-rule-for-pg_hbaconf)
15     * [pg_ident.confのユーザ名マップの作成](#create-user-name-maps-for-pg_identconf)
16     * [接続の検証](#validate-connectivity)
17 4. [参考 - モジュールの機能と動作について](#reference)
18     * [クラス](#classes)
19     * [定義できるタイプ](#defined-types)
20     * [タイプ](#types)
21     * [関数](#functions)
22 5. [制約事項 - OSの互換性など](#limitations)
23 6. [開発 - モジュール貢献についてのガイド](#development)
24     * [コントリビュータ - モジュール貢献者の一覧](#contributors)
25 7. [テスト](#tests)
26 8. [コントリビュータ - モジュール貢献者のリスト](#contributors)
27
28 ## モジュールの概要
29
30 postgresqlモジュールを使用すると、PuppetでPostgreSQLを管理できます。
31
32 PostgreSQLは、高性能な無償のオープンソースリレーショナルデータベースサーバーです。postgresqlモジュールを使用すると、PostgreSQLのパッケージ、サービス、データベース、ユーザ、一般的なセキュリティ設定を管理できるようになります。
33
34 ## セットアップ
35
36 ### postgresqlの影響
37
38 * PostgreSQLのパッケージ、サービス、設定ファイル
39 * リッスンするポート
40 * IPおよびマスク(オプション)
41
42 ### postgresqlの導入
43
44 基本的なデフォルトのPostgreSQLサーバーを設定するには、`postgresql::server`クラスを宣言します。
45
46 ```puppet
47 class { 'postgresql::server':
48 }
49 ```
50
51 ## 使用方法
52
53 ### サーバーの設定
54
55 デフォルト設定を使用する場合は、上記のように`postgresql::server`クラスを宣言します。PostgreSQLサーバーの設定をカスタマイズするには、次のように、変更する[パラメータ](#postgresqlserver)を指定します。
56
57 ```puppet
58 class { 'postgresql::server':
59   ip_mask_deny_postgres_user => '0.0.0.0/32',
60   ip_mask_allow_all_users    => '0.0.0.0/0',
61   ipv4acls                   => ['hostssl all johndoe 192.168.0.0/24 cert'],
62   postgres_password          => 'TPSrep0rt!',
63 }
64 ```
65
66 設定後、コマンドラインで設定をテストします。
67
68 ```shell
69 psql -h localhost -U postgres
70 psql -h my.postgres.server -U
71 ```
72
73 上記のコマンドでエラーメッセージが返ってくる場合は、パーミッションの設定によって現在の接続元からのアクセスが制限されています。その場所からの接続を許可するかどうかに応じて、パーミッション設定の変更が必要な場合があります。
74
75 サーバー設定パラメータの詳細については、[PostgreSQLランタイム設定マニュアル](http://www.postgresql.org/docs/current/static/runtime-config.html)を参照してください。
76
77 ### データベースの作成
78
79 さまざまなPostgreSQLデータベースを定義タイプ`postgresql::server::db`を使用してセットアップできます。例えば、PuppetDBのデータベースをセットアップするには、次のように記述します。
80
81 ```puppet
82 class { 'postgresql::server':
83 }
84
85 postgresql::server::db { 'mydatabasename':
86   user     => 'mydatabaseuser',
87   password => postgresql_password('mydatabaseuser', 'mypassword'),
88 }
89 ```
90
91 ### ユーザ、ロール、パーミッションの管理
92
93 ユーザ、ロール、パーミッションを管理するには、次のようにします。
94
95 ```puppet
96 class { 'postgresql::server':
97 }
98
99 postgresql::server::role { 'marmot':
100   password_hash => postgresql_password('marmot', 'mypasswd'),
101 }
102
103 postgresql::server::database_grant { 'test1':
104   privilege => 'ALL',
105   db        => 'test1',
106   role      => 'marmot',
107 }
108
109 postgresql::server::table_grant { 'my_table of test2':
110   privilege => 'ALL',
111   table     => 'my_table',
112   db        => 'test2',
113   role      => 'marmot',
114 }
115 ```
116
117 この例では、test1データベース上とtest2データベースの`my_table`テーブル上の**すべての**権限を、指定したユーザまたはグループに付与します。値がPuppetDB設定ファイルに追加されると、このデータベースは使用可能になります。
118
119 ### デフォルトのオーバーライド
120
121 `postgresql::globals`クラスを使用すると、このモジュールの主な設定をグローバルに構成できます。この設定は、他のクラスや定義済みリソースから使用できます。単独では機能しません。
122
123 例えば、すべてのクラスのデフォルトの`locale`と`encoding`をオーバーライドするには、次のように記述します。
124
125 ```puppet
126 class { 'postgresql::globals':
127   encoding => 'UTF-8',
128   locale   => 'en_US.UTF-8',
129 }
130
131 class { 'postgresql::server':
132 }
133 ```
134
135 特定のバージョンのPostgreSQLパッケージを使用するには、次のように記述します。
136
137 ```puppet
138 class { 'postgresql::globals':
139   manage_package_repo => true,
140   version             => '9.2',
141 }
142
143 class { 'postgresql::server':
144 }
145 ```
146
147 ### リモートのユーザ、ロール、パーミッションの管理
148
149 リモートのSQLオブジェクトは、ローカルのSQLオブジェクトと同じPuppetリソースと、[`connect_settings`](#connect_settings)ハッシュを使用して管理します。これは、PuppetがリモートのPostgresインスタンスに接続する方法と、SQLコマンドの生成に使用されるバージョンを制御します。
150
151 `connect_settings`ハッシュには、'PGHOST'、'PGPORT'、'PGPASSWORD'、'PGSSLKEY'など、Postgresクライアント接続を制御する環境変数を含めることができます。変数の全リストについては、[PostgreSQL環境変数](http://www.postgresql.org/docs/9.4/static/libpq-envars.html)マニュアルを参照してください。
152
153 さらに、特殊値の'DBVERSION'により、ターゲットデータベースのバージョンを指定できます。`connect_settings`ハッシュが省略されているか空の場合、PuppetはローカルのPostgreSQLインスタンスに接続します。
154
155 Puppetリソースごとに`connect_settings`ハッシュを設定するか、`postgresql::globals`にデフォルトの`connect_settings`ハッシュを設定できます。リソースごとに`connect_settings`を設定すると、SQLオブジェクトが複数のユーザによって複数のデータベース上に作成できるようになります。
156
157 ```puppet
158 $connection_settings_super2 = {
159   'PGUSER'     => 'super2',
160   'PGPASSWORD' => 'foobar2',
161   'PGHOST'     => '127.0.0.1',
162   'PGPORT'     => '5432',
163   'PGDATABASE' => 'postgres',
164 }
165
166 include postgresql::server
167
168 # Connect with no special settings, i.e domain sockets, user postgres
169 postgresql::server::role { 'super2':
170   password_hash    => 'foobar2',
171   superuser        => true,
172
173   connect_settings => {},
174 }
175
176 # Now using this new user connect via TCP
177 postgresql::server::database { 'db1':
178   connect_settings => $connection_settings_super2,
179   require          => Postgresql::Server::Role['super2'],
180 }
181 ```
182
183 ### pg_hba.confのアクセスルールの作成
184
185 `pg_hba.conf`のアクセスルールを作成するには、次のように記述します。
186
187 ```puppet
188 postgresql::server::pg_hba_rule { 'allow application network to access app database':
189   description => 'Open up PostgreSQL for access from 200.1.2.0/24',
190   type        => 'host',
191   database    => 'app',
192   user        => 'app',
193   address     => '200.1.2.0/24',
194   auth_method => 'md5',
195 }
196 ```
197
198 これにより、以下のようなルールセットが`pg_hba.conf`内に作成されます。
199
200 ```
201 # Rule Name: allow application network to access app database
202 # Description: Open up PostgreSQL for access from 200.1.2.0/24
203 # Order: 150
204 host  app  app  200.1.2.0/24  md5
205 ```
206
207 デフォルトでは、`pg_hba_rule`に`postgresql::server`を含める必要がありますが、ルールを宣言する際にtargetおよびpostgresql_versionを設定することで、その動作をオーバーライドできます。例えば次のようになります。
208
209 ```puppet
210 postgresql::server::pg_hba_rule { 'allow application network to access app database':
211   description        => 'Open up postgresql for access from 200.1.2.0/24',
212   type               => 'host',
213   database           => 'app',
214   user               => 'app',
215   address            => '200.1.2.0/24',
216   auth_method        => 'md5',
217   target             => '/path/to/pg_hba.conf',
218   postgresql_version => '9.4',
219 }
220 ```
221
222 ### pg_ident.confのユーザ名マップの作成
223
224 pg_ident.confのユーザ名マップを作成するには、次のように記述します。
225
226 ```puppet
227 postgresql::server::pg_ident_rule { 'Map the SSL certificate of the backup server as a replication user':
228   map_name          => 'sslrepli',
229   system_username   => 'repli1.example.com',
230   database_username => 'replication',
231 }
232 ```
233
234 これにより、次のようなユーザ名マップが`pg_ident.conf`に作成されます。
235
236 ```
237 #Rule Name: Map the SSL certificate of the backup server as a replication user
238 #Description: none
239 #Order: 150
240 sslrepli  repli1.example.com  replication
241 ```
242
243 ### リカバリ設定の作成
244
245 リカバリ設定ファイル(`recovery.conf`)を作成するには、次のように記述します。
246
247 ```puppet
248 postgresql::server::recovery { 'Create a recovery.conf file with the following defined parameters':
249   restore_command           => 'cp /mnt/server/archivedir/%f %p',
250   archive_cleanup_command   => undef,
251   recovery_end_command      => undef,
252   recovery_target_name      => 'daily backup 2015-01-26',
253   recovery_target_time      => '2015-02-08 22:39:00 EST',
254   recovery_target_xid       => undef,
255   recovery_target_inclusive => true,
256   recovery_target           => 'immediate',
257   recovery_target_timeline  => 'latest',
258   pause_at_recovery_target  => true,
259   standby_mode              => 'on',
260   primary_conninfo          => 'host=localhost port=5432',
261   primary_slot_name         => undef,
262   trigger_file              => undef,
263   recovery_min_apply_delay  => 0,
264 }
265 ```
266
267 これにより、次の`recovery.conf`設定ファイルが作成されます。
268
269 ```
270 restore_command = 'cp /mnt/server/archivedir/%f %p'
271 recovery_target_name = 'daily backup 2015-01-26'
272 recovery_target_time = '2015-02-08 22:39:00 EST'
273 recovery_target_inclusive = true
274 recovery_target = 'immediate'
275 recovery_target_timeline = 'latest'
276 pause_at_recovery_target = true
277 standby_mode = 'on'
278 primary_conninfo = 'host=localhost port=5432'
279 recovery_min_apply_delay = 0
280 ```
281
282 テンプレートでは、指定されたパラメータのみが認識されます。`recovery.conf`は、少なくとも1つのパラメータが設定済みで、**かつ**、[manage_recovery_conf](#manage_recovery_conf)がtrueの場合のみ作成されます。
283
284 ### 接続の検証
285
286 従属タスクを開始する前に、リモートのPostgreSQLデータベースへのクライアント接続を検証するには、`postgresql_conn_validator`リソースを使用します。このリソースは、PostgreSQLクライアントソフトウェアがインストールされている任意のノード上で使用できます。アプリケーションサーバーの起動や、データベース移行の実行など、他のタスクと結合されることがよくあります。
287
288 使用例:
289
290 ```puppet
291 postgresql_conn_validator { 'validate my postgres connection':
292   host              => 'my.postgres.host',
293   db_username       => 'mydbuser',
294   db_password       => 'mydbpassword',
295   db_name           => 'mydbname',
296 }->
297 exec { 'rake db:migrate':
298   cwd => '/opt/myrubyapp',
299 }
300 ```
301
302 ## 参考
303
304 postgresqlモジュールには、サーバー設定用に多数のオプションがあります。以下の設定をすべて使うことはないかもしれませんが、これらを使用することで、セキュリティ設定をかなり制御することができます。
305
306 **クラス:**
307
308 * [postgresql::client](#postgresqlclient)
309 * [postgresql::globals](#postgresqlglobals)
310 * [postgresql::lib::devel](#postgresqllibdevel)
311 * [postgresql::lib::java](#postgresqllibjava)
312 * [postgresql::lib::perl](#postgresqllibperl)
313 * [postgresql::lib::python](#postgresqllibpython)
314 * [postgresql::server](#postgresqlserver)
315 * [postgresql::server::plperl](#postgresqlserverplperl)
316 * [postgresql::server::contrib](#postgresqlservercontrib)
317 * [postgresql::server::postgis](#postgresqlserverpostgis)
318
319 **定義できるタイプ:**
320
321 * [postgresql::server::config_entry](#postgresqlserverconfig_entry)
322 * [postgresql::server::database](#postgresqlserverdatabase)
323 * [postgresql::server::database_grant](#postgresqlserverdatabase_grant)
324 * [postgresql::server::db](#postgresqlserverdb)
325 * [postgresql::server::extension](#postgresqlserverextension)
326 * [postgresql::server::grant](#postgresqlservergrant)
327 * [postgresql::server::grant_role](#postgresqlservergrant_role)
328 * [postgresql::server::pg_hba_rule](#postgresqlserverpg_hba_rule)
329 * [postgresql::server::pg_ident_rule](#postgresqlserverpg_ident_rule)
330 * [postgresql::server::recovery](#postgresqlserverrecovery)
331 * [postgresql::server::role](#postgresqlserverrole)
332 * [postgresql::server::schema](#postgresqlserverschema)
333 * [postgresql::server::table_grant](#postgresqlservertable_grant)
334 * [postgresql::server::tablespace](#postgresqlservertablespace)
335
336 **タイプ:**
337
338 * [postgresql_psql](#custom-resource-postgresql_psql)
339 * [postgresql_replication_slot](#custom-resource-postgresql_replication_slot)
340 * [postgresql_conf](#custom-resource-postgresql_conf)
341 * [postgresql_conn_validator](#custom-resource-postgresql_conn_validator)
342
343 **関数:**
344
345 * [postgresql_password](#function-postgresql_password)
346 * [postgresql_acls_to_resources_hash](#function-postgresql_acls_to_resources_hashacl_array-id-order_offset)
347
348 ### クラス
349
350 #### postgresql::client
351
352 PostgreSQLクライアントソフトウェアをインストールします。カスタムのバージョンをインストールするには、次のパラメータを設定します。
353
354 >**注意:** カスタムのバージョンを指定する場合、必要なyumまたはaptリポジトリを忘れずに追加してください。
355
356 ##### `package_ensure`
357
358 PostgreSQLクライアントパッケージリソースが存在する必要があるかどうかを指定します。
359
360 有効な値: 'present'、'absent'。
361
362 デフォルト値: 'present'。
363
364 ##### `package_name`
365
366 PostgreSQLクライアントパッケージの名前を設定します。
367
368 デフォルト値: 'file'。
369
370 #### postgresql::lib::docs
371
372 Postgres-Docs向けのPostgreSQLバインディングをインストールします。カスタムのバージョンをインストールするには、次のパラメータを設定します。
373
374 **注意:** カスタムのバージョンを指定する場合、必要なyumまたはaptリポジトリを忘れずに追加してください。
375
376 ##### `package_name`
377
378 PostgreSQL docsパッケージの名前を指定します。
379
380 ##### `package_ensure`
381
382 PostgreSQL docsパッケージリソースが存在する必要があるかどうかを指定します。
383
384 有効な値: 'present'、'absent'。
385
386 デフォルト値: 'present'。
387
388 #### postgresql::globals
389
390 **注意:** ほとんどのサーバー固有のデフォルト値は、`postgresql::server`クラスでオーバーライドする必要があります。このクラスは、標準以外のOSを使用している場合か、ここでしか変更できない要素(`version`や`manage_package_repo`)を変更する場合のみ使用します。
391
392 ##### `bindir`
393
394 ターゲットプラットフォームのデフォルトのPostgreSQLバイナリディレクトリをオーバーライドします。
395
396 デフォルト値: OSによって異なります。
397
398 ##### `client_package_name`
399
400 デフォルトのPostgreSQLクライアントパッケージ名をオーバーライドします。
401
402 デフォルト値: OSによって異なります。
403
404 ##### `confdir`
405
406 ターゲットプラットフォームのデフォルトのPostgreSQL設定ディレクトリをオーバーライドします。
407
408 デフォルト値: OSによって異なります。
409
410 ##### `contrib_package_name`
411
412 デフォルトのPostgreSQL contribパッケージ名をオーバーライドします。
413
414 デフォルト値: OSによって異なります。
415
416 ##### `createdb_path`
417
418 **非推奨** `createdb`コマンドへのパス。
419
420 デフォルト値: '${bindir}/createdb'。
421
422 ##### `datadir`
423
424 ターゲットプラットフォームのデフォルトのPostgreSQLデータディレクトリをオーバーライドします。
425
426 デフォルト値: OSによって異なります。
427
428 **注意:** インストール後にdatadirを変更すると、変更が実行される前にサーバーが完全に停止します。Red Hatシステムでは、データディレクトリはSELinuxに適切にラベル付けする必要があります。Ubuntuでは、明示的に`needs_initdb = true`に設定して、Puppetが新しいdatadir内のデータベースを初期化できるようにする必要があります(他のシステムでは、`needs_initdb`はデフォルトでtrueになっています)。
429
430 **警告:** datadirがデフォルトから変更された場合、Puppetは元のデータディレクトリのパージを管理しません。そのため、データディレクトリが元のディレクトリに戻ったときにエラーが発生します。
431
432 ##### `default_database`
433
434 接続するデフォルトのデータベースの名前を指定します。
435
436 デフォルト値: (ほとんどのシステムにおいて) 'postgres'。
437
438 ##### `devel_package_name`
439
440 デフォルトのPostgreSQL develパッケージ名をオーバーライドします。
441
442 デフォルト値: OSによって異なります。
443
444 ##### `docs_package_name`
445
446 オプションです。
447
448 デフォルトのPostgreSQL docsパッケージ名をオーバーライドします。
449
450 デフォルト値: OSによって異なります。
451
452 ##### `encoding`
453
454 このモジュールで作成されるすべてのデータベースのデフォルトエンコーディングを設定します。オペレーティングシステムによっては、`template1` の初期化にも使用されます。その場合、モジュール外部のデフォルトにもなります。
455
456 デフォルト値: オペレーティングシステムのデフォルトエンコーディングによって決まります。
457
458 ##### `group`
459
460 ファイルシステムの関連ファイルに使用されるデフォルトのpostgresユーザグループをオーバーライドします。
461
462 デフォルト値: 'postgres'。
463
464 ##### `initdb_path`
465
466 `initdb`コマンドへのパス。
467
468 ##### `java_package_name`
469
470 デフォルトのPostgreSQL javaパッケージ名をオーバーライドします。
471
472 デフォルト値: OSによって異なります。
473
474 ##### `locale`
475
476 このモジュールで作成されるすべてのデータベースのデフォルトのデータベースロケールを設定します。オペレーティングシステムによっては、`template1` の初期化にも使用されます。その場合、モジュール外部のデフォルトにもなります。
477
478 デフォルト値: `undef`、実質的には'C'。
479
480 **Debianでは、PostgreSQLのフル機能が使用できるように'locales-all'パッケージがインストールされていることを確認する必要があります。**
481
482 ##### `timezone`
483
484 postgresqlサーバーのデフォルトタイムゾーンを設定します。postgresqlのビルトインのデフォルト値は、システムのタイムゾーン情報を取得しています。
485
486 ##### `logdir`
487
488 デフォルトのPostgreSQL logディレクトリをオーバーライドします。
489
490 デフォルト値: initdbのデフォルトパス。
491
492 ##### `manage_package_repo`
493
494 `true`に設定されている場合、お使いのホスト上に公式なPostgreSQLリポジトリをセットアップします。
495
496 デフォルト値: `false`。
497
498 ##### `module_workdir`
499
500 psqlコマンドを実行する作業ディレクトリを指定します。'/tmp'がnoexecオプションでマウントされたボリューム上にあるときに、指定が必要になる場合があります。
501
502 デフォルト値: '/tmp'。
503
504 ##### `needs_initdb`
505
506 サーバーパッケージをインストール後、PostgreSQLサービスを開始する前に、initdb動作を明示的に呼び出します。
507
508 デフォルト値: OSによって異なります。
509
510 ##### `perl_package_name`
511
512 デフォルトのPostgreSQL Perlパッケージ名をオーバーライドします。
513
514 デフォルト値: OSによって異なります。
515
516 ##### `pg_hba_conf_defaults`
517
518 `false`に設定すると、`pg_hba.conf`についてモジュールに設定されたデフォルト値を無効にします。デフォルト値をオーバーライドするときに役立ちます。ただし、基本的な`psql`動作など、一定の動作を行うためには一定のアクセスが要求されるので、ここでの変更内容がその他のモジュールと矛盾しないように注意してください。
519
520 デフォルト値: `postgresql::globals::manage_pg_hba_conf`に設定されたグローバル値。デフォルトは`true`。
521
522 ##### `pg_hba_conf_path`
523
524 `pg_hba.conf`ファイルへのパスを指定します。
525
526 デフォルト値: '${confdir}/pg_hba.conf'。
527
528 ##### `pg_ident_conf_path`
529
530 `pg_ident.conf`ファイルへのパスを指定します。
531
532 デフォルト値: '${confdir}/pg_ident.conf'。
533
534 ##### `plperl_package_name`
535
536 デフォルトのPostgreSQL PL/Perlパッケージ名をオーバーライドします。
537
538 デフォルト値: OSによって異なります。
539
540 ##### `plpython_package_name`
541
542 デフォルトのPostgreSQL PL/Pythonパッケージ名をオーバーライドします。
543
544 デフォルト値: OSによって異なります。
545
546 ##### `postgis_version`
547
548 PostGISをインストールする場合に、インストールするPostGISのバージョンを定義します。
549
550 デフォルト値: インストールするPostgreSQLで利用可能な最下位のバージョン。
551
552 ##### `postgresql_conf_path`
553
554 `postgresql.conf`ファイルへのパスを設定します。
555
556 デフォルト値: '${confdir}/postgresql.conf'。
557
558 ##### `psql_path`
559
560 `psql`コマンドへのパスを設定します。
561
562 ##### `python_package_name`
563
564 デフォルトのPostgreSQL Pythonパッケージ名をオーバーライドします。
565
566 デフォルト値: OSによって異なります。
567
568 ##### `recovery_conf_path`
569
570 `recovery.conf`ファイルへのパス。
571
572 ##### `repo_proxy`
573
574 公式のPostgreSQL yumリポジトリのみのプロキシオプションを設定します。これは、サーバーが企業のファイアウォール内にあり、外部への接続にプロキシを使用する必要がある場合に役立ちます。
575
576 Debianは現在サポートされていません。
577
578 ##### `repo_baseurl`
579
580 PostgreSQLリポジトリのbaseurlを設定します。リポジトリのミラーを所有している場合に便利です。
581
582 デフォルト値: 公式なPostgreSQLリポジトリ。
583
584 ##### `server_package_name`
585
586 デフォルトのPostgreSQLサーバーパッケージ名をオーバーライドします。
587
588 デフォルト値: OSによって異なります。
589
590 ##### `service_name`
591
592 デフォルトのPostgreSQLサービス名をオーバーライドします。
593
594 デフォルト値: OSによって異なります。
595
596 ##### `service_provider`
597
598 デフォルトのPostgreSQLサービスプロバイダをオーバーライドします。
599
600 デフォルト値: OSによって異なります。
601
602 ##### `service_status`
603
604 PostgreSQLサービスのデフォルトのステータスチェックコマンドをオーバーライドします。
605
606 デフォルト値: OSによって異なります。
607
608 ##### `user`
609
610 ファイルシステム内のPostgreSQL関連ファイルのデフォルトのPostgreSQLスーパーユーザおよび所有者をオーバーライドします。
611
612 デフォルト値: 'postgres'。
613
614 ##### `version`
615
616 インストールおよび管理するPostgreSQLのバージョン。
617
618 デフォルト値: OSシステムのデフォルト値。
619
620 ##### `xlogdir`
621
622 デフォルトのPostgreSQL xlogディレクトリをオーバーライドします。
623
624 デフォルト値: initdbのデフォルトパス。
625
626 #### postgresql::lib::devel
627
628 PostgreSQLの開発ライブラリとシンボリックリンク`pg_config`を含むパッケージを`/usr/bin`にインストールします(`/usr/bin`または`/usr/local/bin`に存在しない場合)。
629
630 ##### `link_pg_config`
631
632 PostgreSQLページが使用するbinディレクトリが`/usr/bin`でも`/usr/local/bin`でもない場合、パッケージのbinディレクトリから`usr/bin`に`pg_config`をシンボリックリンクします(Debianシステムには適用されません)。この動作を無効にするには、`false`に設定します。
633
634 有効な値: `true`、`false`。
635
636 デフォルト値: `true`。
637
638 ##### `package_ensure`
639
640 パッケージのインストール中に'ensure'パラメータをオーバーライドします。
641
642 デフォルト値: 'present'。
643
644 ##### `package_name`
645
646 インストール先のディストリビューションのデフォルトパッケージ名をオーバーライドします。
647
648 デフォルト値: ディストリビューションに応じて、'postgresql-devel'または'postgresql<version>-devel'。
649
650 #### postgresql::lib::java
651
652 Java (JDBC)向けのPostgreSQLバインディングをインストールします。カスタムのバージョンをインストールするには、次のパラメータを設定します。
653
654 **注意:** カスタムのバージョンを指定する場合、必要なyumまたはaptリポジトリを忘れずに追加してください。
655
656 ##### `package_ensure`
657
658 パッケージが存在するかどうかを指定します。
659
660 有効な値: 'present'、'absent'。
661
662 デフォルト値: 'present'。
663
664 ##### `package_name`
665
666 PostgreSQL javaパッケージの名前を指定します。
667
668 #### postgresql::lib::perl
669
670 PostgreSQL Perlライブラリをインストールします。
671
672 ##### `package_ensure`
673
674 パッケージが存在するかどうかを指定します。
675
676 有効な値: 'present'、'absent'。
677
678 デフォルト値: 'present'。
679
680 ##### `package_name`
681
682 インストールするPostgreSQL perlパッケージの名前を指定します。
683
684 #### postgresql::server::plpython
685
686 PostgreSQLのPL/Python手続き型言語をインストールします。
687
688 ##### `package_name`
689
690 postgresql PL/Pythonパッケージの名前を指定します。
691
692 ##### `package_ensure`
693
694 パッケージが存在するかどうかを指定します。
695
696 有効な値: 'present'、'absent'。
697
698 デフォルト値: 'present'。
699
700 #### postgresql::lib::python
701
702 PostgreSQL Pythonライブラリをインストールします。
703
704 ##### `package_ensure`
705
706 パッケージが存在するかどうかを指定します。
707
708 有効な値: 'present'、'absent'。
709
710 デフォルト値: 'present'。
711
712 ##### `package_name`
713
714 PostgreSQL Pythonパッケージの名前。
715
716 #### postgresql::server
717
718 ##### `createdb_path`
719
720 **非推奨** `createdb`コマンドへのパスを指定します。
721
722 デフォルト値: '${bindir}/createdb'。
723
724 ##### `default_database`
725
726 接続するデフォルトのデータベースの名前を指定します。ほとんどのシステムで、'postgres'になります。
727
728 ##### `default_connect_settings`
729
730 リモートサーバーに接続する際に使用される環境変数のハッシュを指定します。他の定義タイプのデフォルトとして使用されます(`postgresql::server::role`など)。
731
732 ##### `encoding`
733
734 このモジュールで作成されるすべてのデータベースのデフォルトエンコーディングを設定します。オペレーティングシステムによっては、`template1` の初期化にも使用されます。その場合、モジュール外部のデフォルトにもなります。
735
736 デフォルト値: `undef`。
737
738 ##### `group`
739
740 ファイルシステムの関連ファイルに使用されるデフォルトのpostgresユーグループをオーバーライドします。
741
742 デフォルト値: OSによって異なります。
743
744 ##### `initdb_path`
745
746 `initdb`コマンドへのパスを指定します。
747
748 デフォルト値: '${bindir}/initdb'。
749
750 ##### `ipv4acls`
751
752 接続方法、ユーザ、データベース、IPv4アドレスのアクセス制御のための文字列を一覧表示します。
753
754 詳細については、[PostgreSQLマニュアル](http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html)の`pg_hba.conf`の項を参照してください。
755
756 ##### `ipv6acls`
757
758 接続方法、ユーザ、データベース、IPv6アドレスのアクセス制御のための文字列を一覧表示します。
759
760 詳細については、[PostgreSQLマニュアル](http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html)の`pg_hba.conf`の項を参照してください。
761
762 ##### `ip_mask_allow_all_users`
763
764 リモート接続に関するPostgreSQLのデフォルト動作をオーバーライドします。デフォルトでは、PostgreSQLは、データベースユーザアカウントがリモートマシンからTCP経由で接続することを許可しません。許可するには、この設定をオーバーライドします。
765
766 データベースユーザによる任意のリモートマシンからの接続を許可するには、'0.0.0.0/0'に設定します。ローカルの'192.168'サブネット内の任意のマシンからの接続を許可するには、'192.168.0.0/1'に設定します。
767
768 デフォルト値: '127.0.0.1/32'。
769
770 ##### `ip_mask_deny_postgres_user`
771
772 postgresスーパーユーザについて、リモート接続を拒否するためのIPマスクを指定します。
773
774 デフォルト値: '0.0.0.0/0'。デフォルト値ではリモート接続はすべて拒否されます。
775
776 ##### `locale`
777
778 このモジュールで作成されるすべてのデータベースのデフォルトのデータベースロケールを設定します。オペレーティングシステムによっては、`template1` の初期化にも使用されます。その場合、モジュール外部のデフォルトになります。
779
780 デフォルト値: `undef`、実質的には'C'。
781
782 **Debianでは、PostgreSQLの全機能を使用できるよう、'locales-all'パッケージがインストールされていることを確認してください。**
783
784 ##### `manage_pg_hba_conf`
785
786 `pg_hba.conf`を管理するかどうかを指定します。
787
788 `true`に設定すると、Puppetはこのファイルを上書きします。
789
790 `false`に設定すると、Puppetはこのファイルに変更を加えません。
791
792 有効な値: `true`、`false`。
793
794 デフォルト値: `true`
795
796 ##### `manage_pg_ident_conf`
797
798 pg_ident.confファイルを上書きします。
799
800 `true`に設定すると、Puppetはこのファイルを上書きします。
801
802 `false`に設定すると、Puppetはこのファイルに変更を加えません。
803
804 有効な値: `true`、`false`。
805
806 デフォルト値: `true`。
807
808 ##### `manage_recovery_conf`
809
810 `recovery.conf`を管理するかどうかを指定します。
811
812 `true`に設定すると、Puppetはこのファイルを上書きします。
813
814 有効な値: `true`、`false`。
815
816 デフォルト値: `false`。
817
818 ##### `needs_initdb`
819
820 サーバーパッケージをインストール後、PostgreSQLサービスを開始する前に、`initdb`動作を明示的に呼び出します。
821
822 デフォルト値: OSによって異なります。
823
824 ##### `package_ensure`
825
826 サーバーインスタンスを作成するときに、`package`リソースに値を受け渡します。
827
828 デフォルト値: `undef`。
829
830 ##### `package_name`
831
832 サーバーソフトウェアをインストールするときに使用するパッケージの名前を指定します。
833
834 デフォルト値: OSによって異なります。
835
836 ##### `pg_hba_conf_defaults`
837
838 `false`に設定すると、`pg_hba.conf`についてモジュールに設定されたデフォルト値を無効にします。これは、デフォルト値を使用せずにオーバーライドするときに役立ちます。だし、基本的な`psql`動作などを実行するには一定のアクセスが要求されるので、ここでの変更内容がその他のモジュールと矛盾しないように注意してください。
839
840 ##### `pg_hba_conf_path`
841
842 `pg_hba.conf`ファイルへのパスを指定します。
843
844 ##### `pg_ident_conf_path`
845
846 `pg_ident.conf`ファイルへのパスを指定します。
847
848 デフォルト値: '${confdir}/pg_ident.conf'。
849
850 ##### `plperl_package_name`
851
852 PL/Perl拡張のデフォルトパッケージ名を設定します。
853
854 デフォルト値: OSによって異なります。
855
856 ##### `plpython_package_name`
857
858 PL/Python拡張のデフォルトパッケージ名を設定します。
859
860 デフォルト値: OSによって異なります。
861
862 ##### `port`
863
864 PostgreSQLサーバーがリッスンするポートを指定します。**注意:** サーバーがリッスンする全IPアドレスで、同一のポート番号が使用されます。また、Red Hatシステムと初期のDebianシステムでは、ポート番号を変更するとき、変更実行前にサーバーが完全停止します。
865
866 デフォルト値: 5432。これは、PostgresサーバーがTCPポート5432をリッスンすることを意味します。
867
868 ##### `postgres_password`
869
870 postgresユーザのパスワードを特定の値に設定します。デフォルトでは、この設定はPostgresデータベース内のスーパーユーザアカウント(ユーザ名`postgres`、パスワードなし)を使用します。
871
872 デフォルト値: `undef`。
873
874 ##### `postgresql_conf_path`
875
876 `postgresql.conf`ファイルへのパスを指定します。
877
878 デフォルト値: '${confdir}/postgresql.conf'。
879
880 ##### `psql_path`
881
882 `psql`コマンドへのパスを指定します。
883
884 デフォルト値: OSによって異なります。
885
886 ##### `service_manage`
887
888 Puppetがサービスを管理するかどうかを定義します。
889
890 デフォルト値: `true`。
891
892 ##### `service_name`
893
894 デフォルトのPostgreSQLサービス名をオーバーライドします。
895
896 デフォルト値: OSによって異なります。
897
898 ##### `service_provider`
899
900 デフォルトのPostgreSQLサービスプロバイダをオーバーライドします。
901
902 デフォルト値: `undef`。
903
904 ##### `service_reload`
905
906 PostgreSQLサービスのデフォルトのリロードコマンドをオーバーライドします。
907
908 デフォルト値: OSによって異なります。
909
910 ##### `service_restart_on_change`
911
912 設定変更をアクティブにするにはサービスの再起動が必要な設定エントリが変更された場合に、PostgreSQLサービスを再起動する際のデフォルト動作をオーバーライドします。
913
914 デフォルト値: `true`。
915
916 ##### `service_status`
917
918 PostgreSQLサービスのデフォルトのステータスチェックコマンドをオーバーライドします。
919
920 デフォルト値: OSによって異なります。
921
922 ##### `user`
923
924 ファイルシステム内のPostgreSQL関連ファイルのデフォルトのPostgreSQLスーパーユーザおよびオーナーをオーバーライドします。
925
926 デフォルト値: 'postgres'。
927
928 #### postgresql::server::contrib
929
930 PostgreSQL contribパッケージをインストールします。
931
932 ##### `package_ensure`
933
934 PostgreSQL contribパッケージリソースに受け渡されたensureパラメータを設定します。
935
936 ##### `package_name`
937
938 PostgreSQL contribパッケージの名前。
939
940 #### postgresql::server::plperl
941
942 postgresqlのPL/Perl手続き型言語をインストールします。
943
944 ##### `package_ensure`
945
946 PostgreSQL PL/Perlパッケージリソースに受け渡されたensureパラメータ。
947
948 ##### `package_name`
949
950 PostgreSQL PL/Perlパッケージの名前。
951
952 #### postgresql::server::postgis
953
954 PostgreSQL postgisパッケージをインストールします。
955
956 ### 定義できるタイプ
957
958 #### postgresql::server::config_entry
959
960 `postgresql.conf`設定ファイルを変更します。
961
962 各リソースは、次の例のようにファイル内の各行にマッピングされています。
963
964 ```puppet
965 postgresql::server::config_entry { 'check_function_bodies':
966   value => 'off',
967 }
968 ```
969
970 ##### `ensure`
971
972 'absent'に設定した場合、エントリを削除します。
973
974 有効な値: 'present'、'absent'。
975
976 デフォルト値: 'present'。
977
978 ##### `value`
979
980 設定の値を定義します。
981
982 #### postgresql::server::db
983
984 ローカルのデータベース、ユーザを作成し、必要なパーミッションを割り当てます。
985
986 ##### `comment`
987
988 PostgreSQLのCOMMENTコマンドを使用して、データベースについて保存するコメントを定義します。
989
990 ##### `connect_settings`
991
992 リモートサーバーに接続する際に使用される環境変数のハッシュを指定します。
993
994 デフォルト値: ローカルのPostgresインスタンスに接続します。
995
996 ##### `dbname`
997
998 作成するデータベースの名前を設定します。
999
1000 デフォルト値: namevar。
1001
1002 ##### `encoding`
1003
1004 データベースの作成中の文字セットをオーバーライドします。
1005
1006 デフォルト値: インストール時に定義されたデフォルト値。
1007
1008 ##### `grant`
1009
1010 作成中に付与するパーミッションを指定します。
1011
1012 デフォルト値: 'ALL'。
1013
1014 ##### `istemplate`
1015
1016 `true`に設定すると、そのデータベースをテンプレートとして指定します。 
1017
1018 デフォルト値: `false`。
1019
1020 ##### `locale`
1021
1022 データベース作成中にロケールをオーバーライドします。
1023
1024 デフォルト値: インストール時に定義されたデフォルト値。
1025
1026 ##### `owner`
1027
1028 ユーザをデータベースの所有者として設定します。
1029
1030 デフォルト値: `postgresql::server`または`postgresql::globals`で設定された'$user'変数。
1031
1032 ##### `password`
1033
1034 **必須** 作成されたユーザのパスワードを設定します。
1035
1036 ##### `tablespace`
1037
1038 作成したデータベースを割り当てるテーブル空間の名前を定義します。
1039
1040 デフォルト値: PostgreSQLのデフォルト値。
1041
1042 ##### `template`
1043
1044 このデータベースを構築する際にテンプレートとして使用するデータベースの名前を指定します。
1045
1046 デフォルト値: `template0`。
1047
1048 ##### `user`
1049
1050 データベースを作成し、作成後にデータベースへのアクセスを割り当てるユーザ。必須指定です。
1051
1052 #### postgresql::server::database
1053
1054 ユーザなし、パーミッションなしのデータベースを作成します。
1055
1056 ##### `dbname`
1057
1058 データベースの名前を設定します。
1059
1060 デフォルト値: namevar。
1061
1062 ##### `encoding`
1063
1064 データベースの作成中の文字セットをオーバーライドします。
1065
1066 デフォルト値: インストール時に定義されたデフォルト値。
1067
1068 ##### `istemplate`
1069
1070 `true`に設定すると、そのデータベースをテンプレートとして定義します。
1071
1072 デフォルト値: `false`。
1073
1074 ##### `locale`
1075
1076 データベース作成中にロケールをオーバーライドします。
1077
1078 デフォルト値: インストール時に定義されたデフォルト値。
1079
1080 ##### `owner`
1081
1082 データベース所有者の名前を設定します。
1083
1084 デフォルト値: `postgresql::server`または`postgresql::globals`で設定された'$user'変数。
1085
1086 ##### `tablespace`
1087
1088 このデータベースを作成するテーブル空間を設定します。
1089
1090 デフォルト値: インストール時に定義されたデフォルト値。
1091
1092 ##### `template`
1093
1094 このデータベースを構築する際にテンプレートとして使用するデータベースの名前を指定します。
1095
1096 デフォルト値: 'template0'。
1097
1098 #### postgresql::server::database_grant
1099
1100 データベース固有のパーミッションについて`postgresql::server::database_grant`をラッピングして、grantベースのユーザアクセス権を管理します。詳細については、[PostgreSQLマニュアルの`grant`](http://www.postgresql.org/docs/current/static/sql-grant.html)を参照してください。
1101
1102 #### `connect_settings`
1103
1104 リモートサーバーに接続する際に使用される環境変数のハッシュを指定します。
1105
1106 デフォルト値: ローカルのPostgresインスタンスに接続します。
1107
1108 ##### `db`
1109
1110 アクセス権を付与するデータベースを指定します。
1111
1112 ##### `privilege`
1113
1114 付与する権限のコンマ区切りリストを指定します。
1115
1116 有効なオプション: 'ALL'、'CREATE'、'CONNECT'、'TEMPORARY'、'TEMP'。
1117
1118 ##### `psql_db`
1119
1120 権限付与を実行するデータベースを定義します。
1121
1122 **通常、デフォルトを変更しないでください。**
1123
1124 デフォルト値: 'postgres'。
1125
1126 ##### `psql_user`
1127
1128 `psql`を実行するOSユーザを指定します。
1129
1130 デフォルト値: モジュールのデフォルトユーザ。通常、'postgres'。
1131
1132 ##### `role`
1133
1134 アクセスを付与するロールまたはユーザを指定します。
1135
1136 #### postgresql::server::extension
1137
1138 PostgreSQL拡張を管理します。
1139
1140 ##### `database`
1141
1142 拡張を有効化するデータベースを指定します。
1143
1144 ##### `ensure`
1145
1146 拡張を有効化するか無効化するかを指定します。
1147
1148 有効なオプション: 'present'または'absent'。
1149
1150 #### `extension`
1151
1152 有効化する拡張を指定します。空欄にした場合、リソースの名前が使用されます。
1153
1154 ##### `package_name`
1155
1156 拡張を有効化する前にインストールするパッケージを指定します。
1157
1158 ##### `package_ensure`
1159
1160 デフォルトのパッケージ削除動作をオーバーライドします。
1161
1162 デフォルトでは、`package_name`で指定されたパッケージが、拡張が有効のときインストールされ、拡張が無効のとき削除されます。この動作をオーバーライドするには、そのパッケージに`ensure`の値を設定してください。
1163
1164 #### postgresql::server::grant
1165
1166 ロールのgrantベースのアクセス権を管理します。詳細については、[PostgreSQLマニュアルの`grant`](http://www.postgresql.org/docs/current/static/sql-grant.html)を参照してください。
1167
1168 ##### `db`
1169
1170 アクセス権を付与するデータベースを指定します。
1171
1172 ##### `object_type`
1173
1174 権限を付与するオブジェクトのタイプを指定します。
1175
1176 有効なオプション: 'DATABASE'、'SCHEMA'、'SEQUENCE'、'ALL SEQUENCES IN SCHEMA'、'TABLE'、または'ALL TABLES IN SCHEMA'。
1177
1178 ##### `object_name`
1179
1180 アクセス権を付与する`object_type`の名前を指定します。
1181
1182 ##### `port`
1183
1184 接続に使用するポート。
1185
1186 デフォルト値: `undef`。PostgreSQLのパッケージングに応じて、通常、デフォルトでポート5432になります。
1187
1188 ##### `privilege`
1189
1190 付与する権限を指定します。
1191
1192 有効なオプション: 'ALL'、'ALL PRIVILEGES'、または'object_type'依存の文字列。
1193
1194 ##### `psql_db`
1195
1196 権限付与を実行するデータベースを指定します。
1197
1198 **通常、デフォルトを変更しないでください。**
1199
1200 デフォルト値: 'postgres'。
1201
1202 ##### `psql_user`
1203
1204 `psql`を実行するOSユーザを設定します。
1205
1206 デフォルト値: モジュールのデフォルトユーザ。通常、'postgres'。
1207
1208 ##### `role`
1209
1210 アクセスを付与するロールまたはユーザを指定します。
1211
1212 #### postgresql::server::grant_role
1213
1214 ロールを(グループ)ロールに割り当てられるようにします。詳細については、[PostgreSQLマニュアルの`Role Membership`](http://www.postgresql.org/docs/current/static/role-membership.html)を参照してください。
1215
1216 ##### `group`
1217
1218 ロールを割り当てるグループロールを指定します。
1219
1220 ##### `role`
1221
1222 グループに割り当てるロールを指定します。空欄にした場合、リソースの名前が使用されます。
1223
1224 ##### `ensure`
1225
1226 メンバーシップを付与するか、無効化するかを指定します。
1227
1228 有効なオプション: 'present'または'absent'。
1229
1230 デフォルト値: 'present'。
1231
1232 ##### `port`
1233
1234 接続に使用するポート。
1235
1236 デフォルト値: `undef`。PostgreSQLのパッケージングに応じて、通常、デフォルトでポート5432になります。
1237
1238 ##### `psql_db`
1239
1240 権限付与を実行するデータベースを指定します。
1241
1242 **通常、デフォルトを変更しないでください。**
1243
1244 デフォルト値: 'postgres'。
1245
1246 ##### `psql_user`
1247
1248 `psql`を実行するOSユーザを設定します。
1249
1250 デフォルト値: モジュールのデフォルトユーザ。通常、`postgres`。
1251
1252 ##### `connect_settings`
1253
1254 リモートサーバーに接続する際に使用される環境変数のハッシュを指定します。
1255
1256 デフォルト値: ローカルのPostgresインスタンスに接続します。
1257
1258 #### postgresql::server::pg_hba_rule
1259
1260 `pg_hba.conf`のアクセスルールを作成できるようにします。詳細については、[使用例](#create-an-access-rule-for-pghba.conf)および[PostgreSQLマニュアル](http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html)を参照してください。
1261
1262 ##### `address`
1263
1264 タイプが'local'ではないとき、このルール一致に対するCIDRベースのアドレスを設定します。
1265
1266 ##### `auth_method`
1267
1268 このルールが一致する接続の認証に使用される方法を提供します。詳細な説明は、PostgreSQL `pg_hba.conf`のマニュアルに記載されています。
1269
1270 ##### `auth_option`
1271
1272 特定の`auth_method`設定については、受け渡し可能な追加オプションがあります。詳細については、PostgreSQL `pg_hba.conf`マニュアルを参照してください。
1273
1274 ##### `database`
1275
1276 このルールが一致するデータベースのコンマ区切りリストを設定します。
1277
1278 ##### `description`
1279
1280 必要に応じて、このルールの長めの説明を定義します。この説明は、`pg_hba.conf`のルール上部のコメント内に挿入されます。
1281
1282 デフォルト値: 'none'。
1283
1284 そのリソースを一意に識別するための方法を指定しますが、機能的には何も実行しません。
1285
1286 ##### `order`
1287
1288 `pg_hba.conf`にルールを配置する順序を設定します。
1289
1290 デフォルト値: 150。
1291
1292 #### `postgresql_version`
1293
1294 PostgreSQLインスタンス全体を管理することなく、`pg_hba.conf`を管理します。
1295
1296 デフォルト値: `postgresql::server`に設定されたバージョン。
1297
1298 ##### `target`
1299
1300 ルールのターゲットを提供します。通常、内部使用のみのプロパティです。
1301
1302 **注意して使用してください。**
1303
1304 ##### `type`
1305
1306 ルールのタイプを設定します。
1307
1308 有効なオプション: 'local'、'host'、'hostssl'、または'hostnossl'。
1309
1310 ##### `user`
1311
1312 このルールが一致するユーザのコンマ区切りリストを設定します。
1313
1314
1315 #### postgresql::server::pg_ident_rule
1316
1317 `pg_ident.conf`のユーザ名マップを作成可能にします。詳細については、上述の[使用例](#create-user-name-maps-for-pgidentconf)および[PostgreSQLマニュアル](http://www.postgresql.org/docs/current/static/auth-username-maps.html)を参照してください。
1318
1319 ##### `database_username`
1320
1321 データベースユーザのユーザ名を指定します。このユーザ名には`system_username`がマッピングされています。
1322
1323 ##### `description`
1324
1325 必要に応じて、このルールの長めの説明を設定します。この説明は、`pg_ident.conf`のルール上部のコメント内に挿入されます。
1326
1327 デフォルト値: 'none'。
1328
1329 ##### `map_name`
1330
1331 `pg_hba.conf`でこのマッピングを参照するために使用されるユーザマップの名前を設定します。
1332
1333 ##### `order`
1334
1335 `pg_ident.conf`にマッピングを配置する際の順序を定義します。
1336
1337 デフォルト値: 150。
1338
1339 ##### `system_username`
1340
1341 オペレーティングシステムのユーザ名(データベースへの接続に使用するユーザ名)を指定します。
1342
1343 ##### `target`
1344
1345 ルールのターゲットを提供します。通常、内部使用のみのプロパティです。
1346
1347 **注意して使用してください。**
1348
1349 #### postgresql::server::recovery
1350
1351 `recovery.conf`の内容を作成可能にします。詳細については、[使用例](#create-recovery-configuration)および[PostgreSQLマニュアル](http://www.postgresql.org/docs/current/static/recovery-config.html)を参照してください。
1352
1353 `recovery_target_inclusive`、 `pause_at_recovery_target`、`standby_mode`、`recovery_min_apply_delay`を除くすべてのパラメータ値は、テンプレートに含まれる文字列セットです。
1354
1355 全パラメータリストの詳細な説明は、[PostgreSQLマニュアル](http://www.postgresql.org/docs/current/static/recovery-config.html)にあります。
1356
1357 パラメータは、次の3つのセクションにグループ分けされています。
1358
1359 ##### [アーカイブリカバリパラメータ](http://www.postgresql.org/docs/current/static/archive-recovery-settings.html)
1360
1361 * `restore_command`
1362 * `archive_cleanup_command`
1363 * `recovery_end_command`
1364
1365 ##### [リカバリターゲット設定](http://www.postgresql.org/docs/current/static/recovery-target-settings.html)
1366 * `recovery_target_name`
1367 * `recovery_target_time`
1368 * `recovery_target_xid`
1369 * `recovery_target_inclusive`
1370 * `recovery_target`
1371 * `recovery_target_timeline`
1372 * `pause_at_recovery_target`
1373
1374 ##### [スタンバイサーバー設定](http://www.postgresql.org/docs/current/static/standby-settings.html)
1375 * `standby_mode`: 文字列('on'/'off')またはブール値(`true`/`false`)で指定できます。
1376 * `primary_conninfo`
1377 * `primary_slot_name`
1378 * `trigger_file`
1379 * `recovery_min_apply_delay`
1380
1381 ##### `target`
1382 ルールのターゲットを提供します。通常、内部使用のみのプロパティです。
1383  
1384 **注意して使用してください。**
1385
1386 #### postgresql::server::role
1387 PostgreSQLのロールまたはユーザを作成します。
1388
1389 ##### `connection_limit`
1390 ロールが同時に接続可能な数を指定します。
1391
1392 デフォルト値: '-1'。これは、無制限を意味します。
1393
1394 ##### `connect_settings`
1395 リモートサーバーに接続する際に使用される環境変数のハッシュを指定します。
1396
1397 デフォルト値: ローカルのPostgresインスタンスに接続します。
1398
1399 ##### `createdb`
1400 このロールに新しいデータベースを作成する能力を付与するかどうかを指定します。
1401
1402 デフォルト値: `false`。
1403
1404 ##### `createrole`
1405 このロールに新しいロールを作成する権限を付与するかどうかを指定します。
1406
1407 デフォルト値: `false`。
1408
1409 ##### `inherit`
1410 新しいロールに継承権限を付与するかどうかを指定します。
1411
1412 デフォルト値: `true`。
1413
1414 ##### `login`
1415 新しいロールにログイン権限を付与するかどうかを指定します。
1416
1417 デフォルト値: `true`。
1418
1419 ##### `password_hash`
1420 パスワード作成中に使用するハッシュを設定します。PostgreSQLがサポートする形式でパスワードが暗号化されていない場合、ここで、`postgresql_password`関数を使用して、MD5ハッシュを提供します。例は次のとおりです。
1421
1422 ##### `update_password`
1423 trueに設定すると、変更時にパスワードが更新されます。作成後にロールのパスワードを変更しない場合は、falseに設定してください。
1424
1425 ```puppet
1426 postgresql::server::role { 'myusername':
1427   password_hash => postgresql_password('myusername', 'mypassword'),
1428 }
1429 ```
1430
1431 ##### `replication`
1432
1433 `true`に設定すると、このロールにレプリケーション機能が提供されます。
1434
1435 デフォルト値: `false`。
1436
1437 ##### `superuser`
1438
1439 新しいロールにスーパーユーザ権限を付与するかどうかを指定します。
1440
1441 デフォルト値: `false`。
1442
1443 ##### `username`
1444
1445 作成するロールのユーザ名を定義します。
1446
1447 デフォルト値: namevar。
1448
1449 #### postgresql::server::schema
1450
1451 スキーマを作成します。
1452
1453 ##### `connect_settings`
1454
1455 リモートサーバーに接続する際に使用される環境変数のハッシュを指定します。
1456
1457 デフォルト値: ローカルのPostgresインスタンスに接続します。
1458
1459 ##### `db`
1460
1461 必須。
1462
1463 このスキーマを作成するデータベースの名前を設定します。
1464
1465 ##### `owner`
1466
1467 スキーマのデフォルト所有者を設定します。
1468
1469 ##### `schema`
1470
1471 スキーマの名前を設定します。
1472
1473 デフォルト値: namevar。
1474
1475 #### postgresql::server::table_grant
1476
1477 ユーザのgrantベースのアクセス権を管理します。詳細については、PostgreSQLマニュアルの`grant`の項を参照してください。
1478
1479 ##### `connect_settings`
1480
1481 リモートサーバーへの接続時に使用する環境変数のハッシュを指定します。
1482
1483 デフォルト値: ローカルのPostgresインスタンスに接続します。
1484
1485 ##### `db`
1486
1487 そのテーブルが存在するデータベースを指定します。
1488
1489 ##### `privilege`
1490
1491 付与する権限のコンマ区切りリストを指定します。有効なオプション: 'ALL'、'SELECT'、'INSERT'、'UPDATE'、'DELETE'、'TRUNCATE'、'REFERENCES'、'TRIGGER'。
1492
1493 ##### `psql_db`
1494
1495 権限付与を実行するデータベースを指定します。
1496
1497 通常、デフォルトを変更しないでください。
1498
1499 デフォルト値: 'postgres'。
1500
1501 ##### `psql_user`
1502
1503 `psql`を実行するOSユーザを指定します。
1504
1505 デフォルト値: モジュールのデフォルトユーザ。通常、'postgres'。
1506
1507 ##### `role`
1508
1509 アクセスを付与するロールまたはユーザを指定します。
1510
1511 ##### `table`
1512
1513 アクセス権を付与するテーブルを指定します。
1514
1515 #### postgresql::server::tablespace
1516
1517 テーブル空間を作成します。必要な場合、場所も作成し、PostgreSQLサーバーと同じパーミッションを割り当てます。
1518
1519 ##### `connect_settings`
1520
1521 リモートサーバーへの接続時に使用する環境変数のハッシュを指定します。
1522
1523 デフォルト値: ローカルのPostgresインスタンスに接続します。
1524
1525 ##### `location`
1526
1527 このテーブル空間へのパスを指定します。
1528
1529 ##### `owner`
1530
1531 そのテーブル空間のデフォルト所有者を指定します。
1532
1533 ##### `spcname`
1534
1535 テーブル空間の名前を指定します。
1536
1537 デフォルト値: namevar。
1538
1539 ### タイプ
1540
1541 #### postgresql_psql
1542
1543 Puppetがpsqlステートメントを実行できるようにします。
1544
1545 ##### `command`
1546
1547 必須。
1548
1549 psqlを介して実行するSQLコマンドを指定します。
1550
1551 ##### `cwd`
1552
1553 psqlコマンドが実行される作業ディレクトリを指定します。
1554
1555 デフォルト値: '/tmp'。
1556
1557 ##### `db`
1558
1559 SQLコマンドを実行するデータベースの名前を指定します。
1560
1561 ##### `environment`
1562
1563 SQLコマンドに対して追加の環境変数を設定する場合に指定します。複数の環境変数を使用する場合は、配列として指定します。
1564
1565 ##### `name`
1566
1567 自身の参考用の任意のタグ、すなわちメッセージの名前を設定します。これはnamevarです。
1568
1569 ##### `onlyif`
1570
1571 メインのコマンドの前に実行するオプションのSQLコマンドを設定します。通常、これはべき等性に基づいて、データベース内のオブジェクトの存在を確認し、メインのSQLコマンドを実行する必要があるかどうかを判断するため使用されます。
1572
1573 ##### `port`
1574
1575 SQLコマンドを実行するデータベースサーバーのポートを指定します。
1576
1577 ##### `psql_group`
1578
1579 psqlコマンドを実行するシステムユーザグループアカウントを指定します。
1580
1581 デフォルト値: 'postgres'。
1582
1583 ##### `psql_path`
1584
1585 psql実行ファイルへのパスを指定します。
1586
1587 デフォルト値: 'psql'。
1588
1589 ##### `psql_user`
1590
1591 psqlコマンドを実行するシステムユーザアカウントを指定します。
1592
1593 デフォルト値: 'postgres'。
1594
1595 ##### `refreshonly`
1596
1597 notifyイベントまたはsubscribeイベントが発生したときのみSQLを実行するかどうかを指定します。
1598
1599 有効な値: `true`、`false`。
1600
1601 デフォルト値: `false`。
1602
1603 ##### `search_path`
1604
1605 SQLコマンドを実行するときに使用するスキーマ検索パスを定義します。
1606
1607 ##### `unless`
1608
1609 `onlyif`の逆です。
1610
1611 #### postgresql_conf
1612
1613 Puppetが`postgresql.conf`パラメータを管理できるようにします。
1614
1615 ##### `name`
1616
1617 管理するPostgreSQLパラメータ名を指定します。
1618
1619 これはnamevarです。
1620
1621 ##### `target`
1622
1623 `postgresql.conf`へのパスを指定します。
1624
1625 デフォルト値: '/etc/postgresql.conf'。
1626
1627 ##### `value`
1628
1629 このパラメータに設定する値を指定します。
1630
1631 #### postgresql_replication_slot
1632
1633 PostgreSQLマスターサーバー上でウォームスタンバイレプリケーションを登録するためのレプリケーションスロットを作成および消去できるようにします。
1634
1635 ##### `name`
1636
1637 作成するスロットの名前を指定します。有効なレプリケーションスロット名である必要があります。
1638
1639 これはnamevarです。
1640
1641 #### postgresql_conn_validator
1642
1643 このタイプを使用するローカルまたはリモートのPostgreSQLデータベースへの接続を検証します。
1644
1645 ##### `connect_settings`
1646
1647 リモートサーバーへの接続時に使用する環境変数のハッシュを指定します。個々のパラメータ(`host`など)を設定する代わりに使用されますが、個々のパラメータが設定されている場合は個々のパラメータが優先されます。
1648
1649 デフォルト値: {}
1650
1651 ##### `db_name`
1652
1653 テストするデータベースの名前を指定します。Specifies the name of the database you wish to test.
1654
1655 デフォルト値: ''
1656
1657 ##### `db_password`
1658
1659 接続するパスワードを指定します。`.pgpass`が使用されている場合は空欄にできます。それ以外の場合、空欄にすることは推奨されません。
1660
1661 デフォルト値: ''
1662
1663 ##### `db_username`
1664
1665 接続するユーザ名を指定します。
1666
1667 デフォルト値: ''
1668
1669 Unixソケットとident認証を使用するとき、このユーザとして実行されます。
1670
1671 ##### `command`
1672
1673 接続性を検証するためにターゲットデータベースで実行されるコマンドです。
1674
1675 デフォルト値: 'SELECT 1'
1676
1677 ##### `host`
1678
1679 テストするデータベースのホスト名を設定します。
1680
1681 デフォルト値: ''。これは、通常指定されたローカルUnixソケットを使用します。
1682
1683 **ホストがリモートの場合、ユーザ名を指定する必要があります。**
1684
1685 ##### `port`
1686
1687 接続するときに使用するポートを定義します。
1688
1689 デフォルト値: '' 
1690
1691 ##### `run_as`
1692
1693 `psql`コマンドの実行ユーザを指定します。これは、Unixソケットと`ident`認証を使用してローカルにデータベースに接続するときに重要です。リモートテストには必要ありません。
1694
1695 ##### `sleep`
1696
1697 失敗した後、再試行する前にスリープする時間を秒単位で設定します。
1698
1699 ##### `tries`
1700
1701 失敗した後、リソースを失敗とみなすまで再試行する回数を設定します。
1702
1703 ### 関数
1704
1705 #### postgresql_password
1706
1707 PostgreSQL暗号化パスワードを生成します。次のように、`postgresql_password`をコマンドラインから呼び出し、暗号化されたパスワードをマニフェストにコピーペーストします。
1708
1709 ```shell
1710 puppet apply --execute 'notify { 'test': message => postgresql_password('username', 'password') }'
1711 ```
1712
1713 本番マニフェストからこの関数を呼び出すことも可能ですが、その場合、マニフェストには暗号化していない平文のパスワードを含める必要があります。
1714
1715 #### postgresql_acls_to_resources_hash(acl_array, id, order_offset)
1716
1717 この内部関数は、`pg_hba.conf`ベースのACLのリスト(文字列の配列として受け渡されたもの)を`postgresql::pg_hba_rule`リソースと互換性のある形式に変換します。
1718
1719 **この関数は、モジュールによる内部的な使用のみ可能です。**
1720
1721 ## 制約事項
1722
1723 PostgreSQLのバージョン8.1~9.5で動作します。
1724
1725 現在、postgresqlモジュールは次のオペレーティングシステムでテスト済みです。
1726
1727 * Debian 6.x、7.x、8.x。
1728 * CentOS 5.x、6.x、7.x。
1729 * Ubuntu 10.04および12.04、14.04。
1730
1731 その他のシステムとも互換性がある可能性がありますが、積極的なテストは行っておりません。
1732
1733 ### Aptモジュールのサポート
1734
1735 このモジュールは1.xと2.x両方のバージョンの'puppetlabs-apt'モジュールをサポートしていますが、'puppetlabs-apt'の2.0.0と2.0.1はサポートしていません。
1736
1737 ### PostGISのサポート
1738
1739 PostGISは、現時点ではすべてのプラットフォームで正常に動作するわけではないため、サポート対象外の機能とみなします。
1740
1741 ### すべてのバージョンのRHEL/CentOS
1742
1743 SELinuxが有効化されている場合、次の方法で`postgresql_port_t`コンテキストに使用中のカスタムポートを追加する必要があります。
1744
1745 ```shell
1746 semanage port -a -t postgresql_port_t -p tcp $customport
1747 ```
1748
1749 ## 開発
1750
1751 Puppet Forgeに公開されているPuppet Labsモジュールはオープンプロジェクトのため、維持するにはコミュニティの貢献が不可欠です。Puppetは、現在私たちがアクセスできない無数のプラットフォームやハードウェア、ソフトウェア、デプロイ構成にも利用されることを目的としています。私たちの目標は、できる限り簡単に変更に貢献し、みなさまの環境で私たちのモジュールが機能できるようにすることです。最高の状態を維持するため、コントリビュータにはいくつかのガイドラインを守っていただく必要があります。詳細については、[モジュールコントリビューションガイド](https://docs.puppetlabs.com/forge/contributing.html)を参照してください。
1752
1753 ### テスト
1754
1755 このモジュールには、2種類のテストが配布されています。`rspec-puppet`のユニットテストと、`rspec-system`を使用したシステムテストです。
1756
1757 ユニットテストを実行するには、以下がインストールされていることを確認してください。
1758
1759 * rake
1760 * bundler
1761
1762 次のように、必要なgemをインストールします。
1763
1764 ```shell
1765 bundle install --path=vendor
1766 ```
1767
1768 そして、次のように記述して、ユニットテストを実行します。
1769
1770 ```shell
1771 bundle exec rake spec
1772 ```
1773
1774 ユニットテストは、Travis-CIでも実行されます。自身のテスト結果を確認するには、このプロジェクトのご自身のGitHubクローンのアカウントセクションから、Travis-CIを介してサービスフックを登録してください。
1775
1776 システムテストを実行するには、以下のツールもインストールされていることを確認してください。
1777
1778 * Vagrant > 1.2.x
1779 * VirtualBox > 4.2.10
1780
1781 次の記述を使用してテストを実行します。
1782
1783 ```shell
1784 bundle exec rspec spec/acceptance
1785 ```
1786
1787 異なるオペレーティングシステムでテストを実行するには、`.nodeset.yml`で利用可能なセットを確認して、次の構文で特定のセットを実行します。
1788
1789 ```shell
1790 RSPEC_SET=debian-607-x64 bundle exec rspec spec/acceptance
1791 ```
1792
1793 ### コントリビュータ
1794
1795 貢献してくださった方々の一覧を[Github](https://github.com/puppetlabs/puppetlabs-postgresql/graphs/contributors)でご覧いただけます。