mirror of
				https://github.com/iiab/iiab.git
				synced 2025-03-09 15:40:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| - name: 'Install packages: postgresql, postgresql-client'
 | |
|   package:
 | |
|     name:
 | |
|       - postgresql
 | |
|       - postgresql-client
 | |
|       - python3-psycopg2    # For Ansible modules {postgresql_db, postgresql_user} in Ansible collection community.postgresql -- used in moodle/tasks/install.yml
 | |
|     state: present
 | |
| 
 | |
| - name: Install /etc/systemd/system/postgresql-iiab.service from template (0644 by default)
 | |
|   template:
 | |
|     src: postgresql-iiab.service
 | |
|     dest: /etc/systemd/system/postgresql-iiab.service
 | |
|     # owner: root
 | |
|     # group: root
 | |
|     # mode: '0644'
 | |
| 
 | |
| - name: Create PostgreSQL data dir /library/pgsql-iiab, owned by postgres:postgres (0700)
 | |
|   file:
 | |
|     state: directory
 | |
|     path: /library/pgsql-iiab
 | |
|     owner: postgres
 | |
|     group: postgres
 | |
|     mode: 0700
 | |
| 
 | |
| - name: Make sure locale {{ postgresql_locale }} is enabled    # en_US.UTF-8
 | |
|   lineinfile:
 | |
|     dest: /etc/locale.gen
 | |
|     line: "{{ postgresql_locale }} UTF-8"
 | |
| 
 | |
| - name: Generate locales
 | |
|   command: /usr/sbin/locale-gen
 | |
| 
 | |
| - name: Initialize the PostgreSQL db, creating /library/pgsql-iiab/pg_hba.conf
 | |
|   #command: su - postgres -c "/usr/lib/postgresql/{{ postgresql_version }}/bin/initdb -E 'UTF-8' --locale={{ postgresql_locale }} -D /library/pgsql-iiab"
 | |
|   command: /usr/lib/postgresql/{{ postgresql_version }}/bin/initdb -E 'UTF-8' --locale={{ postgresql_locale }} -D /library/pgsql-iiab
 | |
|   args:
 | |
|     creates: /library/pgsql-iiab/pg_hba.conf
 | |
|   become: yes
 | |
|   become_user: postgres
 | |
| 
 | |
| # - name: Initialize the PostgreSQL db, creating /library/pgsql-iiab/pg_hba.conf (OS's other than debuntu)
 | |
| #   #command: su - postgres -c "/usr/bin/initdb -E 'UTF-8' --lc-collate={{ postgresql_locale }} --lc-ctype={{ postgresql_locale }} -D /library/pgsql-iiab"
 | |
| #   command: /usr/bin/initdb -E 'UTF-8' --lc-collate={{ postgresql_locale }} --lc-ctype={{ postgresql_locale }} -D /library/pgsql-iiab
 | |
| #   args:
 | |
| #     creates: /library/pgsql-iiab/pg_hba.conf
 | |
| #   become: yes
 | |
| #   become_user: postgres
 | |
| #   when: not is_debuntu
 | |
| 
 | |
| - name: Install /library/pgsql-iiab/postgresql.conf from template (postgres:postgres, 0640)
 | |
|   template:
 | |
|     backup: yes
 | |
|     src: postgresql.conf.j2
 | |
|     dest: /library/pgsql-iiab/postgresql.conf
 | |
|     owner: postgres
 | |
|     group: postgres
 | |
|     mode: 0640
 | |
| 
 | |
| - name: Disable & Stop stock 'postgresql' (parent) systemd service
 | |
|   systemd:
 | |
|     name: postgresql
 | |
|     state: stopped
 | |
|     enabled: no
 | |
| 
 | |
| # Above parent service postgresql.service uses template postgresql@.service to
 | |
| # start/stop` child service e.g. postgresql@11-main.service on Debian 10, or
 | |
| # postgresql@13-main.service on Debian 11. So these 2 stanzas dont do anything:
 | |
| 
 | |
| # 'systemctl is-enabled postgresql@' shows 'indirect' before + after
 | |
| #- name: Disable stock 'postgresql@' (template) if real Debian
 | |
| #  systemd:
 | |
| #    name: postgresql@
 | |
| #    #state: stopped    # Error if you attempt to stop template
 | |
| #    enabled: no        # Doesn't do anything
 | |
| #  when: is_debian and not is_raspbian
 | |
| 
 | |
| # 'systemctl is-enabled postgresql@13-main.service' shows 'enabled-runtime' before + after
 | |
| #- name: Disable & Stop stock 'postgresql@{{ postgresql_version }}-main.service' (child service) if real Debian
 | |
| #  systemd:
 | |
| #    name: "postgresql@{{ postgresql_version }}-main.service"
 | |
| #    state: stopped    # Already done by parent above
 | |
| #    enabled: no       # Doesn't do anything
 | |
| #  when: is_debian and not is_raspbian
 | |
| 
 | |
| 
 | |
| # RECORD PostgreSQL AS INSTALLED
 | |
| 
 | |
| - name: "Set 'postgresql_installed: True'"
 | |
|   set_fact:
 | |
|     postgresql_installed: True
 | |
| 
 | |
| - name: "Add 'postgresql_installed: True' to {{ iiab_state_file }}"
 | |
|   lineinfile:
 | |
|     path: "{{ iiab_state_file }}"    # /etc/iiab/iiab_state.yml
 | |
|     regexp: '^postgresql_installed'
 | |
|     line: 'postgresql_installed: True'
 |