finish install process

This commit is contained in:
Robert Kaussow 2018-10-16 00:07:17 +02:00
parent 39503cc756
commit dabc0e5365
8 changed files with 76 additions and 22 deletions

View File

@ -2,4 +2,5 @@
postgres_repository_enabled: False postgres_repository_enabled: False
postgres_version: 10 postgres_version: 10
postgres_repository_filename: "Postgresql-{{ postgres_version | regex_replace('\\.') }}" postgres_repository_filename: "Postgresql-{{ postgres_version | regex_replace('\\.') }}"
postgres_packagename: postgresql postgres_user: postgres
postgres_group: postgres

10
handlers/main.yml Normal file
View File

@ -0,0 +1,10 @@
---
- name: Restart service
service:
name: "{{ __postgres_daemon }}"
state: restarted
enabled: yes
daemon_reload: yes
listen: __postgres_restart
become: True
become_user: root

View File

@ -4,8 +4,21 @@
package: package:
name: "{{ item }}" name: "{{ item }}"
state: present state: present
with_items: with_items: "{{ __postgres_packages }}"
- "{{ postgres_packagename }}"
- "{{ postgres_packagename }}-server" - name: Ensure data directory exists
file:
path: "{{ __postgres_data_dir }}"
owner: "{{ postgres_user }}"
group: "{{ postgres_group }}"
state: directory
mode: 0700
- name: Setup custom systemd unit
template:
src: etc/systemd/system/postgresql.service.j2
dest: "etc/systemd/system/{{ __postgres_daemon }}.service"
mode: 0644
notify: __postgres_restart
become: True become: True
become_user: root become_user: root

View File

@ -1,3 +1,4 @@
--- ---
- import_tasks: prepare.yml - import_tasks: prepare.yml
- import_tasks: install.yml - import_tasks: install.yml
- import_tasks: post_tasks.yml

19
tasks/post_tasks.yml Normal file
View File

@ -0,0 +1,19 @@
---
- name: Ensure PostgreSQL is up and running
service:
name: "{{ postgresql-10 }}"
state: started
enabled: yes
become: True
become_user: root
- name: Check if database is initialized
stat:
path: "{{ postgresql_data_dir }}/PG_VERSION"
register: pgdata_dir_version
- name: Ensure database is initialized
command: "/usr/pgsql-{{ __postgres_version }}/bin/postgresql-{{ __postgres_version }}-setup initdb"
when: not pgdata_dir_version.stat.exists
become: true
become_user: "{{ postgres_user }}"

View File

@ -1,20 +1,16 @@
--- ---
- block: - name: Load helper variables
- name: Add PostgreSQL repository include_vars: "main.yml"
yum_repository:
name: postgresql
file: "{{ postgres_repository_filename }}"
description: PostgreSQL yum repository
baseurl: "https://download.postgresql.org/pub/repos/yum/{{ postgres_version }}/redhat/rhel-{{ ansible_distribution_major_version }}-{{ ansible_architecture }}"
gpgcheck: yes
enabled: yes
gpgkey: "https://download.postgresql.org/pub/repos/yum/RPM-GPG-KEY-PGDG-{{ postgres_version }}"
- set_fact: - name: Add PostgreSQL repository
postgres_packagename: "postgresql{{ postgres_version | regex_replace('\\.') }}" yum_repository:
name: postgresql
- debug: file: "{{ postgres_repository_filename }}"
msg: "Set PostgreSQL package name to '{{ postgres_packagename }}'" description: PostgreSQL yum repository
become: True baseurl: "https://download.postgresql.org/pub/repos/yum/{{ __postgres_version }}/redhat/rhel-{{ ansible_distribution_major_version }}-{{ ansible_architecture }}"
become_user: root gpgcheck: yes
when: postgres_repository_enabled enabled: yes
gpgkey: "https://download.postgresql.org/pub/repos/yum/RPM-GPG-KEY-PGDG-{{ __postgres_version }}"
become: True
become_user: root
when: postgres_repository_enabled

View File

@ -0,0 +1,4 @@
## {{ ansible_managed }}
.include {{ __postgres_service_file }}
[Service]
Environment=PGDATA={{ __postgres_data_dir }}

10
vars/main.yml Normal file
View File

@ -0,0 +1,10 @@
---
__postgres_version: "{{ postgres_version | regex_replace('\\.') }}"
__postgres_packagename: "postgresql{{ __postgres_version }}"
__postgres_daemon: "postgresql-{{ __postgres_version }}"
__postgres_service_file: "/usr/lib/systemd/system/{{ __postgres_daemon }}.service"
__postgres_packages:
- "{{ __postgres_packagename }}"
- "{{ __postgres_packagename }}-server"
__postgres_data_dir: "/var/lib/pgsql/{{ __postgres_version }}/data"
__postgres_config_path: "/var/lib/pgsql/data"