|
|
|
- name: python 2
|
|
|
|
set_fact:
|
|
|
|
python_suffix: ""
|
|
|
|
when: ansible_python_version | version_compare('3', '<')
|
|
|
|
|
|
|
|
- name: python 3
|
|
|
|
set_fact:
|
|
|
|
python_suffix: "-py3"
|
|
|
|
when: ansible_python_version | version_compare('3', '>=')
|
|
|
|
|
|
|
|
- include_vars: '{{ item }}'
|
|
|
|
with_first_found:
|
|
|
|
- files:
|
|
|
|
- '{{ ansible_distribution }}-{{ ansible_distribution_major_version }}{{ python_suffix }}.yml'
|
|
|
|
- '{{ ansible_distribution }}-{{ ansible_distribution_version }}{{ python_suffix }}.yml'
|
|
|
|
- '{{ ansible_os_family }}{{ python_suffix }}.yml'
|
|
|
|
- 'default{{ python_suffix }}.yml'
|
|
|
|
paths: '../vars'
|
|
|
|
|
|
|
|
# Make sure we start fresh
|
|
|
|
- name: stop postgresql service
|
|
|
|
service: name={{ postgresql_service }} state=stopped
|
|
|
|
ignore_errors: True
|
|
|
|
|
|
|
|
- name: remove old db (RedHat or Suse)
|
|
|
|
command: rm -rf "{{ pg_dir }}"
|
|
|
|
ignore_errors: True
|
|
|
|
when: ansible_os_family == "RedHat" or ansible_os_family == "Suse"
|
|
|
|
|
|
|
|
- name: remove old db (FreeBSD)
|
|
|
|
file:
|
|
|
|
path: "{{ pg_dir }}"
|
|
|
|
state: absent
|
|
|
|
when: ansible_os_family == "FreeBSD"
|
|
|
|
|
|
|
|
# Theoretically, pg_dropcluster should work but it doesn't so rm files
|
|
|
|
- name: remove old db config (debian)
|
|
|
|
command: rm -rf /etc/postgresql
|
|
|
|
ignore_errors: True
|
|
|
|
when: ansible_os_family == "Debian"
|
|
|
|
|
|
|
|
- name: remove old db files (debian)
|
|
|
|
command: rm -rf /var/lib/postgresql
|
|
|
|
ignore_errors: True
|
|
|
|
when: ansible_os_family == "Debian"
|
|
|
|
|
|
|
|
- name: install rpm dependencies for postgresql test
|
|
|
|
package: name={{ postgresql_package_item }} state=latest
|
|
|
|
with_items: "{{postgresql_packages}}"
|
|
|
|
loop_control:
|
|
|
|
loop_var: postgresql_package_item
|
|
|
|
when: ansible_os_family == "RedHat" or ansible_os_family == "Suse"
|
|
|
|
|
|
|
|
- name: install dpkg dependencies for postgresql test
|
|
|
|
apt: name={{ postgresql_package_item }} state=latest
|
|
|
|
with_items: "{{postgresql_packages}}"
|
|
|
|
loop_control:
|
|
|
|
loop_var: postgresql_package_item
|
|
|
|
when: ansible_pkg_mgr == 'apt'
|
|
|
|
|
|
|
|
- name: install FreeBSD dependencies for postgresql test
|
|
|
|
pkgng: name={{ postgresql_package_item }} state=present
|
|
|
|
with_items: "{{postgresql_packages}}"
|
|
|
|
loop_control:
|
|
|
|
loop_var: postgresql_package_item
|
|
|
|
when: ansible_os_family == "FreeBSD"
|
|
|
|
|
|
|
|
- name: initialize postgres (FreeBSD)
|
|
|
|
command: /usr/local/etc/rc.d/postgresql oneinitdb
|
|
|
|
when: ansible_os_family == "FreeBSD"
|
|
|
|
|
|
|
|
- name: Initialize postgres (RedHat systemd)
|
|
|
|
command: postgresql-setup initdb
|
|
|
|
when: ansible_distribution == "Fedora" or (ansible_os_family == "RedHat" and ansible_distribution_major_version|int >= 7)
|
|
|
|
|
|
|
|
- name: Initialize postgres (RedHat sysv)
|
|
|
|
command: /sbin/service postgresql initdb
|
|
|
|
when: ansible_os_family == "RedHat" and ansible_distribution_major_version|int <= 6
|
|
|
|
|
|
|
|
- name: Iniitalize postgres (Debian)
|
|
|
|
command: /usr/bin/pg_createcluster {{ pg_ver }} main
|
|
|
|
# Sometimes package install creates the db cluster, sometimes this step is needed
|
|
|
|
ignore_errors: True
|
|
|
|
when: ansible_os_family == 'Debian'
|
|
|
|
|
|
|
|
- name: Initialize postgres (Suse)
|
|
|
|
service: name=postgresql state=restarted
|
|
|
|
when: ansible_os_family == 'Suse'
|
|
|
|
|
|
|
|
- name: Copy pg_hba into place
|
|
|
|
template:
|
|
|
|
src: files/pg_hba.conf
|
|
|
|
dest: "{{ pg_hba_location }}"
|
|
|
|
owner: "{{ pg_user }}"
|
|
|
|
group: "{{ pg_group }}"
|
|
|
|
mode: "0644"
|
|
|
|
|
|
|
|
- name: Generate pt_BR locale (Debian)
|
|
|
|
command: locale-gen pt_BR
|
|
|
|
when: ansible_os_family == 'Debian'
|
|
|
|
|
|
|
|
- name: Generate es_ES locale (Debian)
|
|
|
|
command: locale-gen es_ES
|
|
|
|
when: ansible_os_family == 'Debian'
|
|
|
|
|
|
|
|
- name: install i18ndata
|
|
|
|
zypper: name=glibc-i18ndata state=present
|
|
|
|
when: ansible_os_family == 'Suse'
|
|
|
|
|
|
|
|
- name: Generate pt_BR locale (Red Hat)
|
|
|
|
command: localedef -f ISO-8859-1 -i pt_BR pt_BR
|
|
|
|
when: ansible_os_family == "RedHat" or ansible_os_family == "Suse"
|
|
|
|
|
|
|
|
- name: Generate es_ES locale (Red Hat)
|
|
|
|
command: localedef -f ISO-8859-1 -i es_ES es_ES
|
|
|
|
when: ansible_os_family == "RedHat" or ansible_os_family == "Suse"
|
|
|
|
|
|
|
|
- name: enable postgresql service (FreeBSD)
|
|
|
|
lineinfile:
|
|
|
|
path: /etc/rc.conf
|
|
|
|
line: 'postgresql_enable="YES"'
|
|
|
|
when: ansible_os_family == "FreeBSD"
|
|
|
|
|
|
|
|
- name: start postgresql service
|
|
|
|
# work-around for issue on FreeBSD where service won't restart if currently stopped
|
|
|
|
service: name={{ postgresql_service }} state=started
|
|
|
|
|
|
|
|
- name: restart postgresql service
|
|
|
|
service: name={{ postgresql_service }} state=restarted
|