1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/tests/integration/targets/setup_postgresql_db/tasks/main.yml
patchback[bot] e342dfb467
Add headers to ci tests (#954) (#960)
* CI tests: add note to main.yml

* improve

(cherry picked from commit 9d5044ac1a)

Co-authored-by: Andrew Klychkov <aaklychkov@mail.ru>
2020-09-25 09:04:59 +02:00

247 lines
6.9 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

####################################################################
# WARNING: These are designed specifically for Ansible tests #
# and should not be used as examples of how to write Ansible roles #
####################################################################
# Exit when Suse because it causes CI problems
- meta: end_play
when: ansible_os_family == 'Suse'
# To avoid hangings on service start/stop postgres during CI runs:
- meta: end_play
when: ansible_facts.distribution == 'CentOS' and ansible_facts.distribution_major_version == '8'
- name: python 2
set_fact:
python_suffix: ''
when: ansible_python_version is version('3', '<')
- name: python 3
set_fact:
python_suffix: -py3
when: ansible_python_version is version('3', '>=')
- name: Include distribution and Python version specific variables
include_vars: '{{ lookup(''first_found'', params) }}'
vars:
params:
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:
- '{{ role_path }}/vars'
- name: make sure the dbus service is started under systemd
systemd:
name: dbus
state: started
when: ansible_service_mgr == 'systemd' and ansible_distribution == 'Fedora'
- name: Kill all postgres processes
shell: 'pkill -u {{ pg_user }}'
become: yes
when: ansible_facts.distribution == 'CentOS' and ansible_facts.distribution_major_version == '8'
ignore_errors: yes
- name: stop postgresql service
service: name={{ postgresql_service }} state=stopped
ignore_errors: true
- name: remove old db (RedHat or Suse)
file:
path: '{{ pg_dir }}'
state: absent
ignore_errors: true
when: ansible_os_family == "RedHat" or ansible_os_family == "Suse"
- name: remove old db (FreeBSD)
file:
path: '{{ pg_dir }}'
state: absent
ignore_errors: true
when: ansible_os_family == "FreeBSD"
- name: remove old db config and files (debian)
file:
path: '{{ loop_item }}'
state: absent
ignore_errors: true
when: ansible_os_family == "Debian"
loop:
- /etc/postgresql
- /var/lib/postgresql
loop_control:
loop_var: loop_item
- name: install dependencies for postgresql test
package:
name: '{{ postgresql_package_item }}'
state: present
with_items: '{{ postgresql_packages }}'
loop_control:
loop_var: postgresql_package_item
- 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_os_family == "RedHat" and ansible_service_mgr == "systemd"
- name: Initialize postgres (RedHat sysv)
command: /sbin/service postgresql initdb
when: ansible_os_family == "RedHat" and ansible_service_mgr != "systemd"
- name: Initialize postgres (Debian)
shell: . /usr/share/postgresql-common/maintscripts-functions && set_system_locale && /usr/bin/pg_createcluster -u postgres {{ pg_ver }} main
args:
creates: /etc/postgresql/{{ pg_ver }}/
when: ansible_os_family == 'Debian'
- name: Initialize postgres (Suse)
service: name=postgresql state=stopped
when: ansible_os_family == 'Suse'
- name: Pause between stop and start postgresql
pause:
seconds: 5
when: ansible_os_family == 'Suse'
- name: Initialize postgres (Suse)
service: name=postgresql state=started
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 locales (Debian)
locale_gen:
name: '{{ item }}'
state: present
with_items:
- pt_BR
- es_ES
when: ansible_os_family == 'Debian'
- block:
- name: Install langpacks (RHEL8)
yum:
name:
- glibc-langpack-es
- glibc-langpack-pt
- glibc-all-langpacks
state: present
when: ansible_distribution_major_version is version('8', '>=')
- name: Check if locales need to be generated (RedHat)
shell: localedef --list-archive | grep -a -q '^{{ locale }}$'
register: locale_present
ignore_errors: true
with_items:
- es_ES
- pt_BR
loop_control:
loop_var: locale
- name: Reinstall internationalization files
shell: yum -y reinstall glibc-common || yum -y install glibc-common
args:
warn: false
when: locale_present is failed
- name: Generate locale (RedHat)
command: localedef -f ISO-8859-1 -i {{ item.locale }} {{ item.locale }}
when: item is failed
with_items: '{{ locale_present.results }}'
when: ansible_os_family == 'RedHat' and ansible_distribution != 'Fedora'
- name: Install glibc langpacks (Fedora >= 24)
package:
name: '{{ item }}'
state: latest
with_items:
- glibc-langpack-es
- glibc-langpack-pt
when: ansible_distribution == 'Fedora' and ansible_distribution_major_version is version('24', '>=')
- name: enable postgresql service (FreeBSD)
lineinfile:
path: /etc/rc.conf
line: postgresql_enable="YES"
when: ansible_os_family == "FreeBSD"
- name: start postgresql service
service: name={{ postgresql_service }} state=started
- name: Pause between start and stop
pause:
seconds: 5
- name: Kill all postgres processes
shell: 'pkill -u {{ pg_user }}'
become: yes
when: ansible_facts.distribution == 'CentOS' and ansible_facts.distribution_major_version == '8'
ignore_errors: yes
register: terminate
- name: Stop postgresql service
service: name={{ postgresql_service }} state=stopped
when: terminate is not succeeded
- name: Pause between stop and start
pause:
seconds: 5
- name: Start postgresql service
service: name={{ postgresql_service }} state=started
- name: copy control file for dummy ext
copy:
src: dummy.control
dest: /usr/share/postgresql/{{ pg_ver }}/extension/dummy.control
mode: '0444'
when: ansible_os_family == 'Debian'
- name: copy version files for dummy ext
copy:
src: '{{ item }}'
dest: /usr/share/postgresql/{{ pg_ver }}/extension/{{ item }}
mode: '0444'
with_items:
- dummy--1.0.sql
- dummy--2.0.sql
- dummy--3.0.sql
when: ansible_os_family == 'Debian'
- name: add update paths
file:
path: /usr/share/postgresql/{{ pg_ver }}/extension/{{ item }}
mode: '0444'
state: touch
with_items:
- dummy--1.0--2.0.sql
- dummy--2.0--3.0.sql
when: ansible_os_family == 'Debian'
- name: Get PostgreSQL version
become_user: '{{ pg_user }}'
become: true
shell: echo 'SHOW SERVER_VERSION' | psql --tuples-only --no-align --dbname postgres
register: postgres_version_resp
- name: Print PostgreSQL server version
debug:
msg: '{{ postgres_version_resp.stdout }}'
- import_tasks: ssl.yml
when:
- ansible_os_family == 'Debian'
- postgres_version_resp.stdout is version('9.4', '>=')