From 1526028feb0dee689778df2b252abce46a622c08 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Wed, 11 May 2022 15:14:36 +0000 Subject: [PATCH 01/37] PMM-5885 upgrade postgres to 14 --- .../tasks/roles/initialization/tasks/main.yml | 27 ++--- .../postgres-ascii-to-utf8/tasks/main.yml | 84 ------------- .../tasks/roles/postgres/tasks/main.yml | 114 ++++++++++++++++++ ansible/playbook/tasks/update.yml | 4 + 4 files changed, 126 insertions(+), 103 deletions(-) delete mode 100644 ansible/playbook/tasks/roles/postgres-ascii-to-utf8/tasks/main.yml create mode 100644 ansible/playbook/tasks/roles/postgres/tasks/main.yml diff --git a/ansible/playbook/tasks/roles/initialization/tasks/main.yml b/ansible/playbook/tasks/roles/initialization/tasks/main.yml index 474f5a33..1dc709c2 100644 --- a/ansible/playbook/tasks/roles/initialization/tasks/main.yml +++ b/ansible/playbook/tasks/roles/initialization/tasks/main.yml @@ -39,23 +39,12 @@ path: /srv/backup state: directory -- name: Wait until postgres socket is present before continuing - wait_for: - path: /var/run/postgresql/.s.PGSQL.5432 - -- name: Get postgres encoding - postgresql_query: - db: pmm-managed - query: SHOW SERVER_ENCODING; - register: postgres_encoding - become: yes - become_user: postgres - become_method: su - -- debug: - var: postgres_encoding.query_result - -- name: Change encoding of pmm-managed database +- name: Check if Postgres 11 exist + stat: + path: /srv/postgres + register: is_postgres_11 + +- name: Upgrade Postgres database include_role: - name: postgres-ascii-to-utf8 - when: "'SQL_ASCII' == postgres_encoding.query_result[0].server_encoding" + name: postgres + when: is_postgres_11.stat.exists diff --git a/ansible/playbook/tasks/roles/postgres-ascii-to-utf8/tasks/main.yml b/ansible/playbook/tasks/roles/postgres-ascii-to-utf8/tasks/main.yml deleted file mode 100644 index 42635c1f..00000000 --- a/ansible/playbook/tasks/roles/postgres-ascii-to-utf8/tasks/main.yml +++ /dev/null @@ -1,84 +0,0 @@ ---- -- name: Create Postgres backup dir - file: - path: /srv/backup/postgres - state: directory - owner: postgres - group: postgres - mode: '0700' - -- name: Stop pmm-managed before changing encoding - command: supervisorctl stop pmm-managed - changed_when: True - -- name: Change encoding from SQL_ASCII to UTF-8 - block: - - name: Disable connections to pmm-managed database - postgresql_query: - query: REVOKE CONNECT ON DATABASE "pmm-managed" FROM PUBLIC; - - - name: Terminate all connections to pmm-managed - postgresql_query: - query: SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='pmm-managed'; - - - name: Dump pmm-managed database - postgresql_db: - name: pmm-managed - state: dump - target: /srv/backup/postgres/pmm-managed.sql - - - name: Disable template1 as template - postgresql_query: - query: UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1'; - - - name: Remove template1 - postgresql_db: - name: template1 - state: absent - - - name: Create new template1 database with UTF-8 - postgresql_db: - encoding: UTF-8 - lc_collate: en_US.UTF-8 - lc_ctype: en_US.UTF-8 - name: template1 - state: present - template: template0 - - - name: Enable template1 as template - postgresql_query: - query: UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1'; - - - name: Remove pmm-managed database - postgresql_db: - name: pmm-managed - state: absent - - - name: Recreate pmm-managed database with UTF-8 - postgresql_db: - encoding: UTF-8 - lc_collate: en_US.UTF-8 - lc_ctype: en_US.UTF-8 - name: pmm-managed - state: present - - - name: Restore pmm-managed database - postgresql_db: - encoding: UTF-8 - lc_collate: en_US.UTF-8 - lc_ctype: en_US.UTF-8 - name: pmm-managed - state: restore - target: /srv/backup/postgres/pmm-managed.sql - - - name: Return connections to pmm-managed database - postgresql_query: - query: GRANT CONNECT ON DATABASE "pmm-managed" TO PUBLIC; - - become: true - become_user: postgres - become_method: su - -- name: Start pmm-managed - command: supervisorctl start pmm-managed - changed_when: True diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml new file mode 100644 index 00000000..2a8a20f2 --- /dev/null +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -0,0 +1,114 @@ +--- +# Install Postgres +- name: Create Postgres data dir + file: + path: "/srv/postgres14" + state: directory + owner: postgres + group: postgres + +- name: Add PostgreSQL YUM repository + yum_repository: + name: percona-ppg-14 + description: PostgreSQL YUM repository - x86_64 + baseurl: http://repo.percona.com/ppg-14/yum/{{ ppg_repo_name }}/7/RPMS/x86_64 + gpgcheck: yes + enabled: yes + gpgkey: file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY + +- name: Install Postgres + yum: + name: + - percona-postgresql14-server + - percona-postgresql14-contrib + - percona-postgresql14 + state: installed + +- name: Create Postgres log file + file: + path: /srv/logs/postgresql14.log + state: touch + force: yes + group: postgres + owner: postgres + mode: 0644 + +- name: Add the user 'postgres' to group 'pmm' + user: + name: postgres + groups: pmm + append: yes + +- name: Check if Postgres 11 exist + stat: + path: /srv/postgres + register: is_postgres_11 + +- name: Upgrade postgres from 11 to 14 + block: + - name: Create Postgres data cluster + command: su postgres -c "/usr/pgsql-14/bin/initdb -D /srv/postgres14" + + - name: Stop pmm-managed and postgres before changing encoding + supervisorctl: + name: "{{ item }}" + state: stopped + loop: + - pmm-managed + - postgres + + - name: Run Postgres database without supervisor + command: /usr/pgsql-11/bin/pg_ctl start -D /srv/postgres + become_user: postgres + + - name: Dump pmm-managed database + postgresql_db: + name: pmm-managed + state: dump + target: /tmp/pmm-managed-upgrade.sql + + - name: Stop Postgres database without supervisor + command: /usr/pgsql-11/bin/pg_ctl stop -D /srv/postgres + become_user: postgres + + - name: Start Postgres 14 database without supervisor + command: /usr/pgsql-14/bin/pg_ctl stop -D /srv/postgres14 + become_user: postgres + + - name: Create pmm-managed database + postgresql_db: + name: pmm-managed + state: present + + - name: Restore pmm-managed database + postgresql_db: + name: pmm-managed + state: restore + target: /tmp/pmm-managed-upgrade.sql + + - name: Remove old postgres packages + yum: + name: + - percona-postgresql11-server + - percona-postgresql11-contrib + - percona-postgresql11 + - percona-postgresql11-libs + state: absent + + - name: Delete old repo file + file: + state: absent + path: "/etc/yum.repos.d/percona-ppg-11.repo" + + - name: Rename old Postgres directory + copy: + remote_src: true + src: /srv/postgres + dest: /srv/postgres_old + when: is_postgres_11.stat.exists + +- name: Disable logging_collector + lineinfile: + path: /srv/postgres14/postgresql.conf + regexp: '^logging_collector' + line: 'logging_collector = off' diff --git a/ansible/playbook/tasks/update.yml b/ansible/playbook/tasks/update.yml index 3c80db4b..d884fc3e 100644 --- a/ansible/playbook/tasks/update.yml +++ b/ansible/playbook/tasks/update.yml @@ -50,6 +50,10 @@ include_role: name: grafana + - name: Install postgres + include_role: + name: postgres + # Start the services - name: Supervisord start | Start supervisord service for AMI/OVF when: not is_docker From 08999051d333b627f223f73a43ac72c1e41f471f Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Wed, 11 May 2022 15:24:03 +0000 Subject: [PATCH 02/37] fix --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 2a8a20f2..92e3aaf7 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -11,7 +11,7 @@ yum_repository: name: percona-ppg-14 description: PostgreSQL YUM repository - x86_64 - baseurl: http://repo.percona.com/ppg-14/yum/{{ ppg_repo_name }}/7/RPMS/x86_64 + baseurl: http://repo.percona.com/ppg-14/yum/release/7/RPMS/x86_64 gpgcheck: yes enabled: yes gpgkey: file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY From 507feafc7fed18183a083a0f8e60d06ba5b9fa54 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Thu, 19 May 2022 03:55:52 +0000 Subject: [PATCH 03/37] PMM-5885 clean yum --- .../playbook/tasks/roles/postgres/tasks/main.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 92e3aaf7..fcbb57b0 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -16,12 +16,27 @@ enabled: yes gpgkey: file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY +- name: Add PostgreSQL YUM repository + yum_repository: + name: percona-ppg-11 + description: PostgreSQL YUM repository - x86_64 + baseurl: http://repo.percona.com/ppg-11/yum/release/7/RPMS/x86_64 + gpgcheck: yes + enabled: yes + gpgkey: file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY + +- name: Clean yum cache + command: yum clean all + - name: Install Postgres yum: name: - percona-postgresql14-server - percona-postgresql14-contrib - percona-postgresql14 + - percona-postgresql11-server + - percona-postgresql11-contrib + - percona-postgresql11 state: installed - name: Create Postgres log file From 241f53d1f70c6ab96bb7f229aac92213daf30d8b Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Thu, 19 May 2022 04:06:06 +0000 Subject: [PATCH 04/37] fix check mode --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index fcbb57b0..f8891c3a 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -25,9 +25,7 @@ enabled: yes gpgkey: file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY -- name: Clean yum cache - command: yum clean all - +# we need old postgres binary for upgrade process - name: Install Postgres yum: name: @@ -38,6 +36,8 @@ - percona-postgresql11-contrib - percona-postgresql11 state: installed + when: not ansible_check_mode + - name: Create Postgres log file file: From 79983bc7033fc11403247c79f2da99dd05e7f29a Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Thu, 19 May 2022 04:15:35 +0000 Subject: [PATCH 05/37] fix service name --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index f8891c3a..1667c913 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -70,7 +70,7 @@ state: stopped loop: - pmm-managed - - postgres + - postgresql - name: Run Postgres database without supervisor command: /usr/pgsql-11/bin/pg_ctl start -D /srv/postgres From fea754481c97a51990fe395942678875e5d2d6fd Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Thu, 19 May 2022 04:24:35 +0000 Subject: [PATCH 06/37] fix become --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 1667c913..31a14c74 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -85,10 +85,12 @@ - name: Stop Postgres database without supervisor command: /usr/pgsql-11/bin/pg_ctl stop -D /srv/postgres become_user: postgres + become_method: su - name: Start Postgres 14 database without supervisor command: /usr/pgsql-14/bin/pg_ctl stop -D /srv/postgres14 become_user: postgres + become_method: su - name: Create pmm-managed database postgresql_db: From 0d6c64b564fad6e2bb4773dddde6f22e08c81c51 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Thu, 19 May 2022 04:31:53 +0000 Subject: [PATCH 07/37] fix --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 31a14c74..fa70aa91 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -62,7 +62,9 @@ - name: Upgrade postgres from 11 to 14 block: - name: Create Postgres data cluster - command: su postgres -c "/usr/pgsql-14/bin/initdb -D /srv/postgres14" + command: /usr/pgsql-14/bin/initdb -D /srv/postgres14 + become_user: postgres + become_method: su - name: Stop pmm-managed and postgres before changing encoding supervisorctl: @@ -75,6 +77,7 @@ - name: Run Postgres database without supervisor command: /usr/pgsql-11/bin/pg_ctl start -D /srv/postgres become_user: postgres + become_method: su - name: Dump pmm-managed database postgresql_db: @@ -103,6 +106,11 @@ state: restore target: /tmp/pmm-managed-upgrade.sql + - name: Stop Postgres 14 database without supervisor + command: /usr/pgsql-14/bin/pg_ctl stop -D /srv/postgres14 + become_user: postgres + become_method: su + - name: Remove old postgres packages yum: name: @@ -121,7 +129,7 @@ copy: remote_src: true src: /srv/postgres - dest: /srv/postgres_old + dest: /srv/postgres11 when: is_postgres_11.stat.exists - name: Disable logging_collector From 2a6eb6526131ccbfc12436a5c89f89fbe977b124 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Thu, 19 May 2022 04:37:05 +0000 Subject: [PATCH 08/37] ansible check --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index fa70aa91..8bd4bb54 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -137,3 +137,4 @@ path: /srv/postgres14/postgresql.conf regexp: '^logging_collector' line: 'logging_collector = off' + when: not ansible_check_mode From f8ad50061c1d7b91c8273db4a79fc27e29d7a91e Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Thu, 19 May 2022 04:43:09 +0000 Subject: [PATCH 09/37] fix syntax --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 8bd4bb54..62d67a47 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -63,6 +63,7 @@ block: - name: Create Postgres data cluster command: /usr/pgsql-14/bin/initdb -D /srv/postgres14 + become: yes become_user: postgres become_method: su @@ -76,6 +77,7 @@ - name: Run Postgres database without supervisor command: /usr/pgsql-11/bin/pg_ctl start -D /srv/postgres + become: yes become_user: postgres become_method: su @@ -87,11 +89,13 @@ - name: Stop Postgres database without supervisor command: /usr/pgsql-11/bin/pg_ctl stop -D /srv/postgres + become: yes become_user: postgres become_method: su - name: Start Postgres 14 database without supervisor command: /usr/pgsql-14/bin/pg_ctl stop -D /srv/postgres14 + become: yes become_user: postgres become_method: su @@ -108,6 +112,7 @@ - name: Stop Postgres 14 database without supervisor command: /usr/pgsql-14/bin/pg_ctl stop -D /srv/postgres14 + become: yes become_user: postgres become_method: su From d3234388a3b83a0628499903524aa26098f578d9 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Thu, 19 May 2022 16:08:11 +0700 Subject: [PATCH 10/37] Update ansible/playbook/tasks/roles/postgres/tasks/main.yml Co-authored-by: Alex Tymchuk --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 62d67a47..94f478f7 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -61,7 +61,7 @@ - name: Upgrade postgres from 11 to 14 block: - - name: Create Postgres data cluster + - name: Initialize Postgres database command: /usr/pgsql-14/bin/initdb -D /srv/postgres14 become: yes become_user: postgres From d8fe797d3ca3f4c1b01855189398f31b98d02dc5 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Thu, 19 May 2022 16:08:17 +0700 Subject: [PATCH 11/37] Update ansible/playbook/tasks/roles/initialization/tasks/main.yml Co-authored-by: Alex Tymchuk --- ansible/playbook/tasks/roles/initialization/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbook/tasks/roles/initialization/tasks/main.yml b/ansible/playbook/tasks/roles/initialization/tasks/main.yml index 1dc709c2..491ba8b3 100644 --- a/ansible/playbook/tasks/roles/initialization/tasks/main.yml +++ b/ansible/playbook/tasks/roles/initialization/tasks/main.yml @@ -39,7 +39,7 @@ path: /srv/backup state: directory -- name: Check if Postgres 11 exist +- name: Check if Postgres 11 exists stat: path: /srv/postgres register: is_postgres_11 From 4eaead7989ef3680f44602da6c8cca7c291e2fcf Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Wed, 25 May 2022 20:14:19 +0700 Subject: [PATCH 12/37] Update ansible/playbook/tasks/roles/postgres/tasks/main.yml Co-authored-by: Alex Tymchuk --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 94f478f7..a39ea236 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -54,7 +54,7 @@ groups: pmm append: yes -- name: Check if Postgres 11 exist +- name: Check if Postgres 11 exists stat: path: /srv/postgres register: is_postgres_11 From 0676ea14473e1072f3b8bf736f17db1ea9d1a808 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Wed, 25 May 2022 20:14:25 +0700 Subject: [PATCH 13/37] Update ansible/playbook/tasks/roles/postgres/tasks/main.yml Co-authored-by: Alex Tymchuk --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index a39ea236..e9c81e7a 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -16,7 +16,7 @@ enabled: yes gpgkey: file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY -- name: Add PostgreSQL YUM repository +- name: Add PostgreSQL 11 YUM repository yum_repository: name: percona-ppg-11 description: PostgreSQL YUM repository - x86_64 From 7f6cdcbc3f1993ff5197a9c078366b3d93723a5f Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Wed, 25 May 2022 20:14:40 +0700 Subject: [PATCH 14/37] Update ansible/playbook/tasks/roles/postgres/tasks/main.yml Co-authored-by: Alex Tymchuk --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index e9c81e7a..a73d38de 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -7,7 +7,7 @@ owner: postgres group: postgres -- name: Add PostgreSQL YUM repository +- name: Add PostgreSQL 14 YUM repository yum_repository: name: percona-ppg-14 description: PostgreSQL YUM repository - x86_64 From 40b09b5107b3d910cd8cd9ba366866cdd3f90f51 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Thu, 26 May 2022 16:47:11 +0000 Subject: [PATCH 15/37] fix --- .../playbook/tasks/roles/postgres/tasks/main.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 62d67a47..669d4400 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -1,12 +1,5 @@ --- # Install Postgres -- name: Create Postgres data dir - file: - path: "/srv/postgres14" - state: directory - owner: postgres - group: postgres - - name: Add PostgreSQL YUM repository yum_repository: name: percona-ppg-14 @@ -38,6 +31,12 @@ state: installed when: not ansible_check_mode +- name: Create Postgres data dir + file: + path: "/srv/postgres14" + state: directory + owner: postgres + group: postgres - name: Create Postgres log file file: From ffb52fdfce50588b045b5240e0ee6fc1f017349c Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Thu, 26 May 2022 17:18:15 +0000 Subject: [PATCH 16/37] fix --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 5b56762d..ac94653e 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -1,12 +1,5 @@ --- # Install Postgres -- name: Create Postgres data dir - file: - path: "/srv/postgres14" - state: directory - owner: postgres - group: postgres - - name: Add PostgreSQL 14 YUM repository yum_repository: name: percona-ppg-14 From c1d0ae1a2b4e892c758e45f702ecb8f7e991ad18 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Fri, 27 May 2022 04:03:13 +0000 Subject: [PATCH 17/37] fix --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index ac94653e..f074406d 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -135,10 +135,3 @@ src: /srv/postgres dest: /srv/postgres11 when: is_postgres_11.stat.exists - -- name: Disable logging_collector - lineinfile: - path: /srv/postgres14/postgresql.conf - regexp: '^logging_collector' - line: 'logging_collector = off' - when: not ansible_check_mode From 44e3e48d740409ef42ac88987bb827c01b1daf66 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Fri, 27 May 2022 05:56:01 +0000 Subject: [PATCH 18/37] fix python deps --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index f074406d..52fa4cc2 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -28,6 +28,7 @@ - percona-postgresql11-server - percona-postgresql11-contrib - percona-postgresql11 + - python-psycopg2 state: installed when: not ansible_check_mode From a02cbcc13b0d5dd39adba38672c220e71c657bd7 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Mon, 30 May 2022 09:35:46 +0000 Subject: [PATCH 19/37] fix ext postgres --- .../playbook/tasks/roles/postgres/tasks/main.yml | 15 +++++++++++++++ ansible/playbook/tasks/update.yml | 6 ------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 52fa4cc2..428932f8 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -135,4 +135,19 @@ remote_src: true src: /srv/postgres dest: /srv/postgres11 + when: is_postgres_11.stat.exists + +- name: Restart Postgres with a new service file + command: supervisorctl {{ item }} + changed_when: True + with_nested: + - "stop" + - "remove" + - "add" + +- name: Check pg_stat_statements extension + postgresql_ext: + db: postgres + name: pg_stat_statements + diff --git a/ansible/playbook/tasks/update.yml b/ansible/playbook/tasks/update.yml index d884fc3e..04c1f76e 100644 --- a/ansible/playbook/tasks/update.yml +++ b/ansible/playbook/tasks/update.yml @@ -196,11 +196,6 @@ - screen - yum-cron - - name: Check pg_stat_statements extension - postgresql_ext: - db: postgres - name: pg_stat_statements - # https://jira.percona.com/browse/PMM-9298 - name: Copy rezise-xfs file for lvm file: @@ -248,7 +243,6 @@ command: supervisorctl {{ item.1 }} {{ item.0 }} changed_when: True with_nested: - - - postgresql - alertmanager - grafana - qan-api2 From 420b9656fd8ecccf3d99356d9d92d7a5aab7548b Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Mon, 30 May 2022 16:45:29 +0000 Subject: [PATCH 20/37] fix --- ansible/playbook/tasks/update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbook/tasks/update.yml b/ansible/playbook/tasks/update.yml index 04c1f76e..0b698454 100644 --- a/ansible/playbook/tasks/update.yml +++ b/ansible/playbook/tasks/update.yml @@ -243,7 +243,7 @@ command: supervisorctl {{ item.1 }} {{ item.0 }} changed_when: True with_nested: - - alertmanager + - - alertmanager - grafana - qan-api2 - pmm-agent From f7ce725599205e5c9f15ea1e2b41dc54c554f3f7 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Mon, 30 May 2022 17:25:38 +0000 Subject: [PATCH 21/37] add supervisor config --- ansible/playbook/tasks/files/pmm.ini | 140 ++++++++++++++++++ .../tasks/roles/postgres/tasks/main.yml | 21 ++- ansible/playbook/tasks/update.yml | 9 ++ 3 files changed, 162 insertions(+), 8 deletions(-) create mode 100644 ansible/playbook/tasks/files/pmm.ini diff --git a/ansible/playbook/tasks/files/pmm.ini b/ansible/playbook/tasks/files/pmm.ini new file mode 100644 index 00000000..bf6c40a9 --- /dev/null +++ b/ansible/playbook/tasks/files/pmm.ini @@ -0,0 +1,140 @@ +[unix_http_server] +chmod = 0700 +username = dummy +password = dummy + +[supervisord] +logfile = /srv/logs/supervisord.log +logfile_maxbytes = 5MB +logfile_backups = 1 +loglevel = info +pidfile = /tmp/supervisord.pid +nodaemon = true +nocleanup = false +user = root +strip_ansi = false + +[supervisorctl] +username = dummy +password = dummy + +[program:pmm-update-perform-init] +command = /usr/sbin/pmm-update -run-playbook -playbook=/usr/share/pmm-update/ansible/playbook/tasks/init.yml +directory = / +autorestart = unexpected +priority=-1 +exitcodes = 0 +autostart = true +startretries = 3 +startsecs = 1 +stopsignal = TERM +stopwaitsecs = 300 +stdout_logfile = /srv/logs/pmm-update-perform-init.log +stdout_logfile_maxbytes = 50MB +stdout_logfile_backups = 3 +redirect_stderr = true + +[program:postgresql] +priority = 1 +command = + /usr/pgsql-14/bin/postgres + -D /srv/postgres14 + -c shared_preload_libraries=pg_stat_statements + -c pg_stat_statements.max=10000 + -c pg_stat_statements.track=all + -c pg_stat_statements.save=off +user = postgres +autorestart = true +autostart = true +startretries = 10 +startsecs = 1 +stopsignal = INT ; Fast Shutdown mode +stopwaitsecs = 300 +; postgresql.conf contains settings to log to stdout, +; so we delegate logfile management to supervisord +stdout_logfile = /srv/logs/postgresql14.log +stdout_logfile_maxbytes = 30MB +stdout_logfile_backups = 2 +redirect_stderr = true + +[program:clickhouse] +priority = 2 +command = /usr/bin/clickhouse-server --config-file=/etc/clickhouse-server/config.xml +autorestart = true +autostart = true +startretries = 10 +startsecs = 1 +stopsignal = TERM +stopwaitsecs = 300 +; config.xml contains settings to log to stdout (console), +; so we delegate logfile managemenet to supervisord +stdout_logfile = /srv/logs/clickhouse-server.log +stdout_logfile_maxbytes = 50MB +stdout_logfile_backups = 2 +redirect_stderr = true + +[program:nginx] +priority = 4 +command = nginx +autorestart = true +autostart = true +startretries = 10 +startsecs = 1 +stopsignal = TERM +stopwaitsecs = 10 +; nginx.conf contains settings to log to /dev/sdtout and /dev/stderr, +; which allows supervisord to manage the logs further. +stdout_logfile = /srv/logs/nginx.log +stdout_logfile_maxbytes = 50MB +stdout_logfile_backups = 2 +redirect_stderr = true + +[program:pmm-managed] +priority = 14 +command = + /usr/sbin/pmm-managed + --victoriametrics-config=/etc/victoriametrics-promscrape.yml + --victoriametrics-url=http://127.0.0.1:9090/prometheus + --postgres-name=pmm-managed + --postgres-username=pmm-managed + --postgres-password=pmm-managed + --supervisord-config-dir=/etc/supervisord.d +autorestart = true +autostart = true +startretries = 1000 +startsecs = 1 +stopsignal = TERM +stopwaitsecs = 300 +stdout_logfile = /srv/logs/pmm-managed.log +stdout_logfile_maxbytes = 50MB +stdout_logfile_backups = 2 +redirect_stderr = true + +[program:pmm-agent] +priority = 15 +command = /usr/sbin/pmm-agent --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml +autorestart = true +autostart = true +startretries = 1000 +startsecs = 1 +stopsignal = TERM +stopwaitsecs = 10 +stdout_logfile = /srv/logs/pmm-agent.log +stdout_logfile_maxbytes = 50MB +stdout_logfile_backups = 2 +redirect_stderr = true + +[program:pmm-update-perform] +command = /usr/sbin/pmm-update -perform -playbook=/usr/share/pmm-update/ansible/playbook/tasks/update.yml +directory = / +autorestart = unexpected +exitcodes = 0 +autostart = false +startretries = 10 +startsecs = 1 +stopsignal = TERM +stopwaitsecs = 300 +stdout_logfile = /srv/logs/pmm-update-perform.log +stdout_logfile_maxbytes = 50MB +stdout_logfile_backups = 3 +redirect_stderr = true diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 428932f8..11444b55 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -136,15 +136,20 @@ src: /srv/postgres dest: /srv/postgres11 - when: is_postgres_11.stat.exists + - name: Start postgres again + supervisorctl: + name: "postgresql" + state: started -- name: Restart Postgres with a new service file - command: supervisorctl {{ item }} - changed_when: True - with_nested: - - "stop" - - "remove" - - "add" + - name: Restart Postgres + command: supervisorctl {{ item.1 }} postgresql + changed_when: True + loop: + - stop + - remove + - add + + when: is_postgres_11.stat.exists - name: Check pg_stat_statements extension postgresql_ext: diff --git a/ansible/playbook/tasks/update.yml b/ansible/playbook/tasks/update.yml index 0b698454..12f92e16 100644 --- a/ansible/playbook/tasks/update.yml +++ b/ansible/playbook/tasks/update.yml @@ -46,6 +46,15 @@ - percona-grafana state: latest + - name: Create supervisor dir + file: + path: /etc/supervisord.d/ + + - name: Upgrade supervisor config + file: + src: pmm.ini + dest: /etc/supervisord.d/pmm.ini + - name: Create grafana config include_role: name: grafana From 09ba813e00278189322acef1ce6b3e459217347a Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Mon, 30 May 2022 17:28:11 +0000 Subject: [PATCH 22/37] fix --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 11444b55..2cfcad38 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -142,13 +142,12 @@ state: started - name: Restart Postgres - command: supervisorctl {{ item.1 }} postgresql + command: supervisorctl {{ item }} postgresql changed_when: True loop: - stop - remove - add - when: is_postgres_11.stat.exists - name: Check pg_stat_statements extension From 9cd07e34044cac4add81790e4f3f88e59a89abd9 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Mon, 30 May 2022 18:07:13 +0000 Subject: [PATCH 23/37] fix --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 2cfcad38..7b779b00 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -94,7 +94,7 @@ become_method: su - name: Start Postgres 14 database without supervisor - command: /usr/pgsql-14/bin/pg_ctl stop -D /srv/postgres14 + command: /usr/pgsql-14/bin/pg_ctl start -D /srv/postgres14 become: yes become_user: postgres become_method: su @@ -150,8 +150,8 @@ - add when: is_postgres_11.stat.exists -- name: Check pg_stat_statements extension - postgresql_ext: - db: postgres - name: pg_stat_statements +# - name: Check pg_stat_statements extension +# postgresql_ext: +# db: postgres +# name: pg_stat_statements From 166f71f9d877316fd600300d73a21571ec12fd4e Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Tue, 31 May 2022 10:49:33 +0000 Subject: [PATCH 24/37] move supervisor settings from pmm-server --- ansible/playbook/tasks/files/pmm.ini | 4 +++- ansible/playbook/tasks/update.yml | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ansible/playbook/tasks/files/pmm.ini b/ansible/playbook/tasks/files/pmm.ini index bf6c40a9..e8233963 100644 --- a/ansible/playbook/tasks/files/pmm.ini +++ b/ansible/playbook/tasks/files/pmm.ini @@ -18,13 +18,15 @@ strip_ansi = false username = dummy password = dummy + +; we rewrite autostart to true during update or build. [program:pmm-update-perform-init] command = /usr/sbin/pmm-update -run-playbook -playbook=/usr/share/pmm-update/ansible/playbook/tasks/init.yml directory = / autorestart = unexpected priority=-1 exitcodes = 0 -autostart = true +autostart = false startretries = 3 startsecs = 1 stopsignal = TERM diff --git a/ansible/playbook/tasks/update.yml b/ansible/playbook/tasks/update.yml index 12f92e16..cde4155e 100644 --- a/ansible/playbook/tasks/update.yml +++ b/ansible/playbook/tasks/update.yml @@ -55,6 +55,13 @@ src: pmm.ini dest: /etc/supervisord.d/pmm.ini + - name: Remove supervisord block from pmm.ini + ini_file: + path: /etc/supervisord.d/pmm.ini + section: supervisord + state: absent + when: not is_docker + - name: Create grafana config include_role: name: grafana From b9c372f0ee199301ec81dcace0b4844af1ce4bbf Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Tue, 31 May 2022 11:22:28 +0000 Subject: [PATCH 25/37] fix --- ansible/playbook/tasks/update.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/ansible/playbook/tasks/update.yml b/ansible/playbook/tasks/update.yml index cde4155e..3e5d0b0f 100644 --- a/ansible/playbook/tasks/update.yml +++ b/ansible/playbook/tasks/update.yml @@ -49,6 +49,7 @@ - name: Create supervisor dir file: path: /etc/supervisord.d/ + state: directory - name: Upgrade supervisor config file: From 11fea48200a0fd9c6d55443e6104f0390d339576 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Tue, 31 May 2022 14:25:34 +0000 Subject: [PATCH 26/37] fix module name --- ansible/playbook/tasks/update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbook/tasks/update.yml b/ansible/playbook/tasks/update.yml index 3e5d0b0f..d9b71cff 100644 --- a/ansible/playbook/tasks/update.yml +++ b/ansible/playbook/tasks/update.yml @@ -52,7 +52,7 @@ state: directory - name: Upgrade supervisor config - file: + copy: src: pmm.ini dest: /etc/supervisord.d/pmm.ini From 46835deede4a8302fea2e2b143341dcbd30451ed Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Tue, 7 Jun 2022 09:16:52 +0000 Subject: [PATCH 27/37] fix upgrade bug --- .../playbook/tasks/roles/postgres/tasks/main.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 7b779b00..5b16be5e 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -54,10 +54,10 @@ groups: pmm append: yes -- name: Check if Postgres 11 exists +- name: Check if Postgres 14 directory exists stat: path: /srv/postgres - register: is_postgres_11 + register: is_postgres_14 - name: Upgrade postgres from 11 to 14 block: @@ -148,10 +148,10 @@ - stop - remove - add - when: is_postgres_11.stat.exists + when: not is_postgres_14.stat.exists -# - name: Check pg_stat_statements extension -# postgresql_ext: -# db: postgres -# name: pg_stat_statements +- name: Check pg_stat_statements extension + postgresql_ext: + db: postgres + name: pg_stat_statements From ed008199ab0a06a05027425ce53dee934ef1cc82 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Tue, 7 Jun 2022 09:57:07 +0000 Subject: [PATCH 28/37] fix upgrade --- .../tasks/roles/postgres/tasks/main.yml | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 5b16be5e..f8361131 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -59,7 +59,7 @@ path: /srv/postgres register: is_postgres_14 -- name: Upgrade postgres from 11 to 14 +- name: Upgrade (or init) postgres block: - name: Initialize Postgres database command: /usr/pgsql-14/bin/initdb -D /srv/postgres14 @@ -67,6 +67,11 @@ become_user: postgres become_method: su + - name: Check that supervisor socket exists (Upgrade or init) + stat: + path: /var/run/supervisor/supervisor.sock + register: is_upgrade + - name: Stop pmm-managed and postgres before changing encoding supervisorctl: name: "{{ item }}" @@ -74,6 +79,8 @@ loop: - pmm-managed - postgresql + when: is_upgrade.stat.exists + - name: Run Postgres database without supervisor command: /usr/pgsql-11/bin/pg_ctl start -D /srv/postgres @@ -110,6 +117,11 @@ state: restore target: /tmp/pmm-managed-upgrade.sql + - name: Check pg_stat_statements extension + postgresql_ext: + db: postgres + name: pg_stat_statements + - name: Stop Postgres 14 database without supervisor command: /usr/pgsql-14/bin/pg_ctl stop -D /srv/postgres14 become: yes @@ -140,6 +152,7 @@ supervisorctl: name: "postgresql" state: started + when: is_supervisor_run.stat.exists - name: Restart Postgres command: supervisorctl {{ item }} postgresql @@ -148,10 +161,6 @@ - stop - remove - add + when: is_supervisor_run.stat.exists when: not is_postgres_14.stat.exists -- name: Check pg_stat_statements extension - postgresql_ext: - db: postgres - name: pg_stat_statements - From dcd732315827a24f3f3e0b5a037c4e4da81361a1 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Tue, 7 Jun 2022 10:38:00 +0000 Subject: [PATCH 29/37] fix --- .../tasks/roles/postgres/tasks/main.yml | 24 ++++++------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index f8361131..7fa6f5c7 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -81,24 +81,26 @@ - postgresql when: is_upgrade.stat.exists - - name: Run Postgres database without supervisor command: /usr/pgsql-11/bin/pg_ctl start -D /srv/postgres become: yes become_user: postgres become_method: su + when: is_upgrade.stat.exists - name: Dump pmm-managed database postgresql_db: name: pmm-managed state: dump target: /tmp/pmm-managed-upgrade.sql + when: is_upgrade.stat.exists - name: Stop Postgres database without supervisor command: /usr/pgsql-11/bin/pg_ctl stop -D /srv/postgres become: yes become_user: postgres become_method: su + when: is_upgrade.stat.exists - name: Start Postgres 14 database without supervisor command: /usr/pgsql-14/bin/pg_ctl start -D /srv/postgres14 @@ -110,12 +112,14 @@ postgresql_db: name: pmm-managed state: present + when: is_upgrade.stat.exists - name: Restore pmm-managed database postgresql_db: name: pmm-managed state: restore target: /tmp/pmm-managed-upgrade.sql + when: is_upgrade.stat.exists - name: Check pg_stat_statements extension postgresql_ext: @@ -128,20 +132,6 @@ become_user: postgres become_method: su - - name: Remove old postgres packages - yum: - name: - - percona-postgresql11-server - - percona-postgresql11-contrib - - percona-postgresql11 - - percona-postgresql11-libs - state: absent - - - name: Delete old repo file - file: - state: absent - path: "/etc/yum.repos.d/percona-ppg-11.repo" - - name: Rename old Postgres directory copy: remote_src: true @@ -152,7 +142,7 @@ supervisorctl: name: "postgresql" state: started - when: is_supervisor_run.stat.exists + when: is_upgrade.stat.exists - name: Restart Postgres command: supervisorctl {{ item }} postgresql @@ -161,6 +151,6 @@ - stop - remove - add - when: is_supervisor_run.stat.exists + when: is_upgrade.stat.exists when: not is_postgres_14.stat.exists From df809426a1fe6047ff99ccfdb6c094b264374760 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Tue, 7 Jun 2022 11:05:26 +0000 Subject: [PATCH 30/37] fix upgrade --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 7fa6f5c7..84a59431 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -137,6 +137,7 @@ remote_src: true src: /srv/postgres dest: /srv/postgres11 + when: is_upgrade.stat.exists - name: Start postgres again supervisorctl: From da427066f6db568c0250a275387eae8a02d324e4 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Tue, 7 Jun 2022 12:36:35 +0000 Subject: [PATCH 31/37] fix --- .../playbook/tasks/roles/postgres/tasks/main.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 84a59431..60708685 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -32,13 +32,6 @@ state: installed when: not ansible_check_mode -- name: Create Postgres data dir - file: - path: "/srv/postgres14" - state: directory - owner: postgres - group: postgres - - name: Create Postgres log file file: path: /srv/logs/postgresql14.log @@ -61,6 +54,13 @@ - name: Upgrade (or init) postgres block: + - name: Create Postgres data dir + file: + path: "/srv/postgres14" + state: directory + owner: postgres + group: postgres + - name: Initialize Postgres database command: /usr/pgsql-14/bin/initdb -D /srv/postgres14 become: yes From f4113646578e7fded866b59641b07d8a7925d765 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Tue, 7 Jun 2022 13:17:49 +0000 Subject: [PATCH 32/37] fix --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 60708685..7e9f5a37 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -49,7 +49,7 @@ - name: Check if Postgres 14 directory exists stat: - path: /srv/postgres + path: /srv/postgres14 register: is_postgres_14 - name: Upgrade (or init) postgres From eba1cf0aee5a7afc0c2aa29ba9b3b59da43a8404 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Tue, 7 Jun 2022 14:25:55 +0000 Subject: [PATCH 33/37] remove useless steps --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 7e9f5a37..4293cdaa 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -139,12 +139,6 @@ dest: /srv/postgres11 when: is_upgrade.stat.exists - - name: Start postgres again - supervisorctl: - name: "postgresql" - state: started - when: is_upgrade.stat.exists - - name: Restart Postgres command: supervisorctl {{ item }} postgresql changed_when: True From 2bae6d29200ba7a59d2d0b07535352af19f71412 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Tue, 7 Jun 2022 16:04:43 +0000 Subject: [PATCH 34/37] fix supervisor issues --- .../playbook/tasks/roles/postgres/tasks/main.yml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 4293cdaa..c747e2f1 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -72,7 +72,7 @@ path: /var/run/supervisor/supervisor.sock register: is_upgrade - - name: Stop pmm-managed and postgres before changing encoding + - name: Stop pmm-managed and postgres before backup database supervisorctl: name: "{{ item }}" state: stopped @@ -139,6 +139,12 @@ dest: /srv/postgres11 when: is_upgrade.stat.exists + - name: Remove old Postgres direcroty + file: + path: /srv/postgres + state: absent + when: is_upgrade.stat.exists + - name: Restart Postgres command: supervisorctl {{ item }} postgresql changed_when: True @@ -146,6 +152,11 @@ - stop - remove - add + + - name: Run pmm-managed again + supervisorctl: + name: pmm-managed + state: started when: is_upgrade.stat.exists when: not is_postgres_14.stat.exists From 4b8a1fd014d92cf7b7132d73d7c514d53ef99939 Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Wed, 8 Jun 2022 07:11:10 +0000 Subject: [PATCH 35/37] fix --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index c747e2f1..1e1273bd 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -152,6 +152,7 @@ - stop - remove - add + when: is_upgrade.stat.exists - name: Run pmm-managed again supervisorctl: From fbfe7142af782c8292fc1f2f79178544bc10743d Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Fri, 10 Jun 2022 10:29:28 +0000 Subject: [PATCH 36/37] add pmm-managed user --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index 1e1273bd..ee3c8d61 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -114,6 +114,15 @@ state: present when: is_upgrade.stat.exists + - name: PostgresDB | Create pmm-managed user + postgresql_user: + db: pmm-managed + name: pmm-managed + password: 'md5da757ec3e22c6d86a2bb8e70307fa937' + priv: 'ALL' + expires: infinity + state: present + - name: Restore pmm-managed database postgresql_db: name: pmm-managed From 3e1bab3855caf0c6e3a92594d79ad85dde1d809c Mon Sep 17 00:00:00 2001 From: Nikita Beletskii Date: Fri, 10 Jun 2022 13:47:18 +0000 Subject: [PATCH 37/37] fix --- ansible/playbook/tasks/roles/postgres/tasks/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/ansible/playbook/tasks/roles/postgres/tasks/main.yml b/ansible/playbook/tasks/roles/postgres/tasks/main.yml index ee3c8d61..a74b858e 100644 --- a/ansible/playbook/tasks/roles/postgres/tasks/main.yml +++ b/ansible/playbook/tasks/roles/postgres/tasks/main.yml @@ -122,6 +122,7 @@ priv: 'ALL' expires: infinity state: present + when: is_upgrade.stat.exists - name: Restore pmm-managed database postgresql_db: