Creating Postgres users

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

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 を設定できます。