[背景]
Ansibleでserviceモジュール実行時にエラー「FAILED! => {“changed”: false, “msg”: “Unable to start service postgresql: Job for postgresql.service failed because the control process exited with error code. See \”systemctl status postgresql.service\” and \”journalctl -xe\” for details.\n”}」が発生しました。Playbookの抜粋とエラーの詳細は以下の通りです。
<Playbookの抜粋>
- name: Start PostgreSQL
service:
name: postgresql
state: started
enabled: True
<エラーの詳細>
fatal: [ansible-dev-target2]: FAILED! => {"changed": false, "msg": "Unable to start service postgresql: Job for postgresql.service failed because the control process exited with error code. See \"systemctl status postgresql.service\" and \"journalctl -xe\" for details.\n"}
[原因]
PostgreSQLデータベースの初期化が行われていないためです。PostgreSQLのインストール先にデータベースクラスタを作成し、必要なデータベースや設定ファイルを生成後、PostgreSQLが起動できるようになります。
[対策]
PlaybookのPostgreSQLの起動タスク実行前に、以下のタスクを追加します。
- name: Initialize PostgreSQL database
command: postgresql-setup initdb