You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							138 lines
						
					
					
						
							2.9 KiB
						
					
					
				
			
		
		
	
	
							138 lines
						
					
					
						
							2.9 KiB
						
					
					
				| - name: set pg_cfg
 | |
|   set_fact:
 | |
|     pg_cfg: "{{ postgresql_default_config | d({}) | combine(postgresql_config | d({}), recursive=true) }}"
 | |
| 
 | |
| 
 | |
| - name: install dependencies
 | |
|   include_tasks: tasks/install_packages.yml
 | |
|   vars:
 | |
|     package:
 | |
|       - postgresql
 | |
|       - postgresql-contrib
 | |
|       - py3-psycopg2
 | |
| 
 | |
| 
 | |
| - name: create user and group
 | |
|   include_tasks: tasks/create_user.yml
 | |
|   vars:
 | |
|     user:
 | |
|       name: "{{ postgresql_user }}"
 | |
|       group: "{{ postgresql_group }}"
 | |
| 
 | |
| 
 | |
| - name: create config directory
 | |
|   file:
 | |
|     path: "{{ postgresql_conf_dir }}"
 | |
|     state: directory
 | |
|     mode: 0770
 | |
|     owner: "{{ postgresql_user }}"
 | |
|     group: "{{ postgresql_group }}"
 | |
| 
 | |
| 
 | |
| - name: include custom config in default postgres config
 | |
|   lineinfile:
 | |
|     path: "{{ postgresql_conf_dir }}/postgresql.conf"
 | |
|     line: "include 'custom.conf'"
 | |
|     create: yes
 | |
|     mode: 0400
 | |
|     owner: "{{ postgresql_user }}"
 | |
|     group: "{{ postgresql_group }}"
 | |
|   notify: restart postgresql
 | |
| 
 | |
| 
 | |
| - name: template custom config
 | |
|   template:
 | |
|     src: postgresql.j2
 | |
|     dest: "{{ postgresql_conf_dir }}/custom.conf"
 | |
|     force: yes
 | |
|     mode: 0400
 | |
|     owner: "{{ postgresql_user }}"
 | |
|     group: "{{ postgresql_group }}"
 | |
|     lstrip_blocks: yes
 | |
|   notify: restart postgresql
 | |
|   vars:
 | |
|     config: "{{ pg_cfg }}"
 | |
| 
 | |
| 
 | |
| - name: template pg_hba.conf if it does not exist
 | |
|   template:
 | |
|     src: pg_hba.j2
 | |
|     dest: "{{ postgresql_conf_dir }}/pg_hba.conf"
 | |
|     force: no
 | |
|     mode: 0400
 | |
|     owner: "{{ postgresql_user }}"
 | |
|     group: "{{ postgresql_group }}"
 | |
|   notify: restart postgresql
 | |
| 
 | |
| 
 | |
| - name: ensure postgres hba allows local connections
 | |
|   community.postgresql.postgresql_pg_hba:
 | |
|     dest: "{{ postgresql_conf_dir }}/pg_hba.conf"
 | |
|     contype: local
 | |
|     databases: all
 | |
|     users: all
 | |
|     method: trust
 | |
|   notify: restart postgresql
 | |
| 
 | |
| 
 | |
| - name: edit service config
 | |
|   lineinfile:
 | |
|     path: /etc/conf.d/postgresql
 | |
|     regexp: "^{{ item.name }}="
 | |
|     line: '{{ item.name }}="{{ item.value }}"'
 | |
|   notify: restart postgresql
 | |
|   loop:
 | |
|     - name: conf_dir
 | |
|       value: "{{ postgresql_conf_dir }}"
 | |
|     - name: data_dir
 | |
|       value: "{{ postgresql_data_dir }}"
 | |
|     - name: pg_opts
 | |
|       value: -c log_destination='syslog'
 | |
|     - name: initdb_opts
 | |
|       value: --locale=en_US.UTF-8
 | |
| 
 | |
| 
 | |
| - name: disable logfile in service config
 | |
|   lineinfile:
 | |
|     path: /etc/conf.d/postgresql
 | |
|     regexp: '^logfile=(.*)$'
 | |
|     line: '#logfile=\1'
 | |
|     backrefs: yes
 | |
|   notify: restart postgresql
 | |
| 
 | |
| 
 | |
| - name: collect .new files
 | |
|   find:
 | |
|     paths: "{{ postgresql_conf_dir }}"
 | |
|     patterns: "*.new"
 | |
|   register: new_files
 | |
| 
 | |
| 
 | |
| - name: remove .new files
 | |
|   file:
 | |
|     path: "{{ item.path }}"
 | |
|     state: absent
 | |
|   loop: "{{ new_files.files | flatten(levels=1) }}"
 | |
| 
 | |
| 
 | |
| - name: remove old postgres log file
 | |
|   file:
 | |
|     path: /var/log/postgresql/postmaster.log
 | |
|     state: absent
 | |
|   changed_when: no
 | |
| 
 | |
| 
 | |
| - name: flush handlers
 | |
|   meta: flush_handlers
 | |
| 
 | |
| 
 | |
| # TODO: backup configuration for postgres
 | |
| 
 | |
| 
 | |
| - name: enable and start postgres
 | |
|   service:
 | |
|     name: postgresql
 | |
|     state: started
 | |
|     enabled: yes
 | |
|   environment:
 | |
|     LANG: 'en_US.UTF-8'
 | |
| 
 |