Creating Postgres users

Creating Postgres users#

デプロイ中にPostgresユーザーを作成するには、 config.ymlのcluster_vars または特定のインスタンスのvars の下のpostgres_users のリストにエントリを追加します。

cluster_vars:
  postgres_users:
  - username: example

  - username: otheruser
    generate_password: true
    role_attrs:
    - superuser
    - replication
    granted_roles:
    - r1
    - r2

上記の例では、2つのユーザーrepmgrやbarmanなど、TPA自分自身が作成することにしたユーザーを除きます。

各エントリーは、作成するusername を指定する必要があります。

granted_roles リストのロールは、新しく作成したユーザーに付与されます。

role_attrs リストには、特定の CREATE ROLE options が含まれる場合があります

[NO]SUPERUSER 、[NO]CREATEDB 、[NO]LOGIN ユーザーまたはロールを作成するためなど。

パスワードの生成#

デフォルトでは、TPAはユーザーのランダムなパスワードを生成し、クラスターのインベントリの<username>_password という名前のボールトで暗号化された変数に保存します。後で値を取得できます。

$ tpaexec show-password ~/clusters/speedy example
beePh~iez6lie4thi5KaiG%eghaeT]ai

config.ymlでパスワードを明示的に指定することはできませんが、代わりに別の<username>_password をインベントリに保存できます。

$ tpaexec store-password ~/clusters/speedy example --random
$ tpaexec show-password ~/clusters/speedy example
)>tkc}}k1y4&epaJ?;NJ:luT{C7D*<p
$ tpaexec store-password ~/clusters/speedy example
Password:
$ tpaexec show-password ~/clusters/speedy example
terrible insecure password
$

ユーザーにパスワードをまったく与えたくない場合は、 generate_password: false を設定できます。