89 lines
2.6 KiB
YAML
89 lines
2.6 KiB
YAML
---
|
||
- name: "Ensure ACL is installed"
|
||
tags: [postgres1c]
|
||
ansible.builtin.apt:
|
||
name: acl
|
||
state: present
|
||
update_cache: true
|
||
cache_valid_time: 3600
|
||
|
||
- name: "Install PostgreSQL distribution for 1C"
|
||
tags: [postgres1c]
|
||
block:
|
||
- name: "Сheck if already installed"
|
||
tags: [postgres1c]
|
||
check_mode: true
|
||
ansible.builtin.package:
|
||
name: "postgrespro-1c-{{ postgres1c_version }}-contrib"
|
||
state: present
|
||
|
||
rescue:
|
||
- name: "Download the offical postgrespro1c installation script"
|
||
tags: [postgres1c]
|
||
ansible.builtin.get_url:
|
||
url: "https://repo.postgrespro.ru/1c/1c-{{ postgres1c_version }}/keys/pgpro-repo-add.sh"
|
||
dest: "/root/pgpro-repo-add.sh"
|
||
mode: '0755'
|
||
|
||
- name: "Add repos using the installation script"
|
||
tags: [postgres1c]
|
||
changed_when: false
|
||
ansible.builtin.command:
|
||
cmd: "/root/pgpro-repo-add.sh"
|
||
|
||
- name: "Install the 'postgrespro1c' package (and force apt update)"
|
||
tags: [postgres1c]
|
||
ansible.builtin.apt:
|
||
name: "postgrespro-1c-{{ postgres1c_version }}-contrib"
|
||
state: present
|
||
update_cache: true # we just added new repo, so we need to apt update
|
||
|
||
- name: "Ensure the 'ru_RU.UTF-8' locale exists"
|
||
tags: [postgres1c]
|
||
community.general.locale_gen:
|
||
name: ru_RU.UTF-8
|
||
state: present
|
||
|
||
- name: "Run initdb"
|
||
tags: [postgres1c]
|
||
changed_when: false
|
||
ansible.builtin.command:
|
||
cmd: "/opt/pgpro/1c-{{ postgres1c_version }}/bin/pg-setup initdb --locale ru_RU.UTF-8"
|
||
|
||
- name: "Enable postgrespro1c service"
|
||
tags: [postgres1c]
|
||
changed_when: false
|
||
ansible.builtin.command:
|
||
cmd: "/opt/pgpro/1c-{{ postgres1c_version }}/bin/pg-setup service enable"
|
||
|
||
- name: "Start postgrespro1c service"
|
||
tags: [postgres1c]
|
||
changed_when: false
|
||
ansible.builtin.command:
|
||
cmd: "/opt/pgpro/1c-{{ postgres1c_version }}/bin/pg-setup service start"
|
||
|
||
- name: "Install psycopg2 (to connect to postgres)"
|
||
tags: [postgres1c]
|
||
ansible.builtin.package:
|
||
name: "python3-psycopg2"
|
||
state: present
|
||
|
||
- name: "Get 'postgres' user password"
|
||
tags: [postgres1c]
|
||
ansible.builtin.include_vars:
|
||
file: "{{ postgres1c_postgres_pw_path }}"
|
||
|
||
- name: "Set password for user 'postgres' via the Unix socket"
|
||
tags: [postgres1c]
|
||
become: true
|
||
become_user: postgres
|
||
community.postgresql.postgresql_user:
|
||
db: "postgres"
|
||
name: "postgres"
|
||
password: "{{ postgres1c_postgres_pw }}"
|
||
login_unix_socket: "/tmp"
|
||
|
||
- name: "Create local postgres1c backup with systemd-timer"
|
||
tags: [postgres1c, postgres1c-backup]
|
||
ansible.builtin.include_tasks: backup.yaml
|