【Amazon RDS(postgresql) × Zabbix4.0】Zabbix構築時の初期設定用SQLを流し込む際のパスワード自動入力の方法

お世話になっております。

現在Amazon RDS(postgresql)をZabbixのDBとした環境をAnsibleで構築しています。
Zabbix構築時に以下コマンドで初期設定用SQLを流し込んでいるのですが、Ansibleで実行した場合、ユーザーパスワードが自動入力されていないようでエラーとなります。

- shell: zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | psql -U zabbixdbuser -h postgresql-db.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -W Zassword -d zabbixdb

<エラー内容>
atal: [localhost]: FAILED! => {"changed": true, "cmd": "zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | psql -U zabbixdbuser -h postgresql-db.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -W Zassword -d zabbixdb", "delta": "0:00:00.030139", "end": "2019-10-16 01:06:52.990763", "msg": "non-zero return code", "rc": 2, "start": "2019-10-16 01:06:52.960624", "stderr": "psql: warning: extra command-line argument \"Zassword\" ignored\nPassword for user zabbixdbuser: \npsql: FATAL: password authentication failed for user \"zabbixdbuser\"\nFATAL: password authentication failed for user \"zabbixdbuser\"", "stderr_lines": ["psql: warning: extra command-line argument \"Zassword\" ignored", "Password for user zabbixdbuser: ", "psql: FATAL: password authentication failed for user \"zabbixdbuser\"", "FATAL: password authentication failed for user \"zabbixdbuser\""], "stdout": "", "stdout_lines": []}

ユーザーパスワードを自動入力させるにはどうしたら良いかご教示いただきたいです。

<構成情報>
・ Zabbix 4.0
・Amazon RDS(postgresql)
 RDSエンドポイント:postgresql-db.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com
 マスターユーザー:zabbixdbuser
 ユーザーパスワード:Zassword
 データベース名:zabbixdb

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

実行しようとされているpsqlのコマンドラインは、通常のターミナ
ル等で実行して正常に実行できていますか?
-Wオプションは、パスワードプロンプトを表示させるものであった
と思うのですが、-Wの後ろにパスワードを指定しているかのように
見受けられます。
このコマンドラインでは正常に実行できていないと思われます。

psqlコマンド実行時に、パスワードプロンプトがでるのを抑止する
方法としては、.pgpassファイルを作成して接続情報を設定するか、
環境変数PGPASSWORDにパスワードを設定するかになると思います。

Ansibleでの実行とのことですので、環境変数PGPASSWORDにパスワ
ードを設定した状態でpsqlコマンドを実行するようにPlaybookを変
更してみてください。

ご参考:
https://www.postgresql.jp/document/11/html/app-psql.html
https://www.postgresql.jp/document/11/html/libpq-envars.html

ユーザー hon-chan の写真

TNKさん

早速のご回答ありがとうございます。
ご指摘の内容をもとに色々検証した結果、
.bash_profileファイルへ環境変数PGPASSWORDを追加し、
bash -lcコマンドで実行したらパスワード自動入力がうまくいきました。

大変助かりました。ありがとうございました。