initialize.yml 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. ---
  2. - name: Set PostgreSQL environment variables.
  3. template:
  4. src: postgres.sh.j2
  5. dest: /etc/profile.d/postgres.sh
  6. mode: 0644
  7. notify: restart postgresql
  8. - name: Ensure PostgreSQL data directory exists.
  9. file:
  10. path: "{{ postgresql_data_dir }}"
  11. owner: "{{ postgresql_user }}"
  12. group: "{{ postgresql_group }}"
  13. state: directory
  14. mode: 0700
  15. - name: Check if PostgreSQL database is initialized.
  16. stat:
  17. path: "{{ postgresql_data_dir }}/PG_VERSION"
  18. register: pgdata_dir_version
  19. - name: Ensure PostgreSQL database is initialized.
  20. command: "{{ postgresql_bin_path }}/initdb -D {{ postgresql_data_dir }}"
  21. when: not pgdata_dir_version.stat.exists
  22. become: true
  23. become_user: "{{ postgresql_user }}"
  24. # See: https://github.com/ansible/ansible/issues/16048#issuecomment-229012509
  25. vars:
  26. ansible_ssh_pipelining: true
  27. - name: Ensure PostgreSQL log directory exists.
  28. file:
  29. path: "{{ postgresql_effective_log_dir }}"
  30. owner: "{{ postgresql_user }}"
  31. group: "{{ postgresql_group }}"
  32. state: directory
  33. mode: 0700