From 0a49079a01c80675e75d2e97c718311799c7106b Mon Sep 17 00:00:00 2001 From: Nurlan Moldomurov Date: Sat, 9 Dec 2023 22:16:29 +0300 Subject: [PATCH 1/4] PMM-8306 fix ssh key bug (#2686) * PMM-8306 fix SSH Key * PMM-8306 fix SSH Key --- managed/services/server/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/managed/services/server/server.go b/managed/services/server/server.go index de305baf2e..d23e1e0c2f 100644 --- a/managed/services/server/server.go +++ b/managed/services/server/server.go @@ -678,7 +678,7 @@ func (s *Server) writeSSHKey(sshKey string) error { s.sshKeyM.Lock() defer s.sshKeyM.Unlock() - const username = "admin" + username := "root" usr, err := user.Lookup(username) if err != nil { return errors.WithStack(err) From 9b65e1c15176d8af081d2aeba6056c349789f4ff Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Mon, 11 Dec 2023 17:21:15 +0300 Subject: [PATCH 2/4] PMM-8471 run nginx as non-root (#2589) * PMM-8471 run nginx as non-root * PMM-8471 fix the tests * PMM-8471 fix supervisord tests * PMM-8471 fix an unvoluntary typo ) * PMM-8471 run nginx on behalf of pmm user * PMM-8471 do not create nginx user * PMM-8471 update nginx.conf to run nginx on behalf of pmm user * PMM-8471 revert some changes related to the client * PMM-8471 fix http ports in docker-compose * PMM-8471 skip the update test --- admin/commands/pmm/server/docker/install.go | 4 ++-- agent/Makefile | 2 +- agent/agents/supervisor/supervisor_test.go | 2 +- agent/docker-compose.yml | 4 ++-- api-tests/docker-compose.yml | 4 ++-- build/ansible/pmm/post-build-actions.yml | 2 +- build/ansible/roles/pmm-images/tasks/main.yml | 2 -- build/docker/server/Dockerfile | 2 +- build/docker/server/Dockerfile.el9 | 2 +- build/docker/server/create_users.sh | 1 - docker-compose.yml | 16 ++++++++-------- get-pmm.sh | 2 +- .../services/supervisord/devcontainer_test.go | 2 ++ managed/services/supervisord/pmm_config.go | 1 + .../testdata/supervisord.d/pmm-db_disabled.ini | 1 + .../testdata/supervisord.d/pmm-db_enabled.ini | 1 + qan-api2/docker-compose.yaml | 4 ++-- .../tasks/roles/nginx/files/conf.d/pmm.conf | 4 ++-- .../playbook/tasks/roles/nginx/files/nginx.conf | 2 +- 19 files changed, 30 insertions(+), 28 deletions(-) diff --git a/admin/commands/pmm/server/docker/install.go b/admin/commands/pmm/server/docker/install.go index a0e7c9f147..c40f221d3d 100644 --- a/admin/commands/pmm/server/docker/install.go +++ b/admin/commands/pmm/server/docker/install.go @@ -129,8 +129,8 @@ func (c *InstallCommand) runContainer(ctx context.Context, volume *volume.Volume logrus.Info("Starting PMM Server") ports := nat.PortMap{ - "443/tcp": []nat.PortBinding{{HostIP: "0.0.0.0", HostPort: strconv.Itoa(int(c.HTTPSListenPort))}}, - "80/tcp": []nat.PortBinding{{HostIP: "0.0.0.0", HostPort: strconv.Itoa(int(c.HTTPListenPort))}}, + "8443/tcp": []nat.PortBinding{{HostIP: "0.0.0.0", HostPort: strconv.Itoa(int(c.HTTPSListenPort))}}, + "8080/tcp": []nat.PortBinding{{HostIP: "0.0.0.0", HostPort: strconv.Itoa(int(c.HTTPListenPort))}}, } containerID, err := startPMMServer(ctx, volume, "", dockerImage, c.dockerFn, ports, c.ContainerName) diff --git a/agent/Makefile b/agent/Makefile index c170223a4d..34921df996 100644 --- a/agent/Makefile +++ b/agent/Makefile @@ -11,7 +11,7 @@ PMM_RELEASE_VERSION ?= $(shell git describe --always --dirty | cut -b2-) PMM_RELEASE_TIMESTAMP ?= $(shell date '+%s') PMM_RELEASE_FULLCOMMIT ?= $(shell git rev-parse HEAD) PMM_RELEASE_BRANCH ?= $(shell git describe --always --contains --all) -PMM_DEV_SERVER_PORT ?= 443 +PMM_DEV_SERVER_PORT ?= 8443 ifeq ($(GOBIN),) GOBIN := $(shell go env GOPATH)/bin endif diff --git a/agent/agents/supervisor/supervisor_test.go b/agent/agents/supervisor/supervisor_test.go index 5811e34504..b31573d5c4 100644 --- a/agent/agents/supervisor/supervisor_test.go +++ b/agent/agents/supervisor/supervisor_test.go @@ -52,7 +52,7 @@ func TestSupervisor(t *testing.T) { cfgStorage := config.NewStorage(&config.Config{ Paths: config.Paths{TempDir: tempDir}, Ports: config.Ports{Min: 65000, Max: 65099}, - Server: config.Server{Address: "localhost:443"}, + Server: config.Server{Address: "localhost:8443"}, LogLinesCount: 1, }) s := NewSupervisor(ctx, nil, cfgStorage) diff --git a/agent/docker-compose.yml b/agent/docker-compose.yml index 2b8c2e0d8a..1d0bc80557 100644 --- a/agent/docker-compose.yml +++ b/agent/docker-compose.yml @@ -6,8 +6,8 @@ services: image: ${PMM_SERVER_IMAGE:-perconalab/pmm-server:3-dev-latest} container_name: pmm-agent_pmm-server ports: - - "127.0.0.1:80:80" - - "127.0.0.1:443:443" + - "127.0.0.1:80:8080" + - "127.0.0.1:443:8443" environment: - PMM_DEBUG=1 - PERCONA_TEST_CHECKS_INTERVAL=10s diff --git a/api-tests/docker-compose.yml b/api-tests/docker-compose.yml index a34895c4d7..b3452357cd 100644 --- a/api-tests/docker-compose.yml +++ b/api-tests/docker-compose.yml @@ -6,8 +6,8 @@ services: image: ${PMM_SERVER_IMAGE:-perconalab/pmm-server:3-dev-latest} container_name: pmm-agent_pmm-server ports: - - 127.0.0.1:80:80 - - 127.0.0.1:443:443 + - 127.0.0.1:80:8080 + - 127.0.0.1:443:8443 environment: - PMM_DEBUG=1 - PERCONA_TEST_CHECKS_INTERVAL=10s diff --git a/build/ansible/pmm/post-build-actions.yml b/build/ansible/pmm/post-build-actions.yml index 6bbd831891..3a255a802f 100644 --- a/build/ansible/pmm/post-build-actions.yml +++ b/build/ansible/pmm/post-build-actions.yml @@ -67,7 +67,7 @@ --config-file=/usr/local/percona/pmm/config/pmm-agent.yaml --skip-registration --id=pmm-server - --server-address=127.0.0.1:443 + --server-address=127.0.0.1:8443 --server-insecure-tls - name: Reread supervisord configuration EL9 diff --git a/build/ansible/roles/pmm-images/tasks/main.yml b/build/ansible/roles/pmm-images/tasks/main.yml index 9cb9eee6ed..031bc45fef 100644 --- a/build/ansible/roles/pmm-images/tasks/main.yml +++ b/build/ansible/roles/pmm-images/tasks/main.yml @@ -71,7 +71,6 @@ non_unique: true loop: - { name: pmm, gid: 1000 } - - { name: nginx, gid: 999 } - { name: clickhouse, gid: 997 } - name: Create users | Create users @@ -85,7 +84,6 @@ non_unique: true loop: - { name: pmm, uid: 1000, comment: "PMM Server", shell: "/usr/bin/bash", home: "/home/pmm", group: pmm, } - - { name: nginx, uid: 999, comment: "nginx user", shell: "/sbin/nologin", home: "/dev/null", group: nginx, } - { name: clickhouse, uid: 997, comment: "Clickhouse server", shell: "/sbin/nologin", home: "/var/lib/clickhouse", group: clickhouse, } when: ansible_virtualization_type == "docker" diff --git a/build/docker/server/Dockerfile b/build/docker/server/Dockerfile index 5eba5415b4..65acb5826f 100644 --- a/build/docker/server/Dockerfile +++ b/build/docker/server/Dockerfile @@ -9,7 +9,7 @@ LABEL org.opencontainers.image.title Percona Monitoring and Management LABEL org.opencontainers.image.vendor Percona LABEL org.opencontainers.image.version ${VERSION} -EXPOSE 80 443 +EXPOSE 8080 8443 WORKDIR /opt diff --git a/build/docker/server/Dockerfile.el9 b/build/docker/server/Dockerfile.el9 index 054e115042..3ad512a3b5 100644 --- a/build/docker/server/Dockerfile.el9 +++ b/build/docker/server/Dockerfile.el9 @@ -14,7 +14,7 @@ LABEL org.opencontainers.image.title Percona Monitoring and Management LABEL org.opencontainers.image.vendor Percona LLC LABEL org.opencontainers.image.version ${VERSION} -EXPOSE 80 443 +EXPOSE 8080 8443 WORKDIR /opt diff --git a/build/docker/server/create_users.sh b/build/docker/server/create_users.sh index 78a9bf35da..9ac1d05c0b 100644 --- a/build/docker/server/create_users.sh +++ b/build/docker/server/create_users.sh @@ -2,7 +2,6 @@ users=( "pmm:1000:/bin/false:/home/pmm:pmm" - "nginx:999:/sbin/nologin:/var/cache/nginx:nginx" "clickhouse:997:/sbin/nologin:/var/lib/clickhouse:clickhouse" ) diff --git a/docker-compose.yml b/docker-compose.yml index 53889771cb..ac67bd09ed 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -67,8 +67,8 @@ services: memlock: 67108864 ports: - - ${PMM_PORT_HTTP:-80}:80 - - ${PMM_PORT_HTTPS:-443}:443 + - ${PMM_PORT_HTTP:-80}:8080 + - ${PMM_PORT_HTTPS:-443}:8443 # For headless delve - ${PMM_PORT_DELVE:-2345}:2345 # PG @@ -257,8 +257,8 @@ services: memlock: 67108864 ports: - - ${PMM_PORT_HTTP:-8081}:80 - - ${PMM_PORT_HTTPS:-8441}:443 + - ${PMM_PORT_HTTP:-8081}:8080 + - ${PMM_PORT_HTTPS:-8441}:8443 # For headless delve - ${PMM_PORT_DELVE:-2345}:2345 volumes: @@ -339,8 +339,8 @@ services: memlock: 67108864 ports: - - ${PMM_PORT_HTTP:-8082}:80 - - ${PMM_PORT_HTTPS:-8432}:443 + - ${PMM_PORT_HTTP:-8082}:8080 + - ${PMM_PORT_HTTPS:-8432}:8443 # For headless delve - ${PMM_PORT_DELVE:-12345}:2345 volumes: @@ -421,8 +421,8 @@ services: memlock: 67108864 ports: - - ${PMM_PORT_HTTP:-8083}:80 - - ${PMM_PORT_HTTPS:-8433}:443 + - ${PMM_PORT_HTTP:-8083}:8080 + - ${PMM_PORT_HTTPS:-8433}:8443 # For headless delve # - ${PMM_PORT_DELVE:-12345}:2345 volumes: diff --git a/get-pmm.sh b/get-pmm.sh index 373e6d6eae..bb04db2d18 100755 --- a/get-pmm.sh +++ b/get-pmm.sh @@ -237,7 +237,7 @@ start_pmm() { run_docker 'stop pmm-server' || : run_docker "rename pmm-server $pmm_archive\n" fi - run_pmm="run -d -p $port:443 --volumes-from pmm-data --name $container_name --restart always $repo:$tag" + run_pmm="run -d -p $port:8443 --volumes-from pmm-data --name $container_name --restart always $repo:$tag" run_docker "$run_pmm 1> /dev/null" msg "Created PMM Server: $container_name" diff --git a/managed/services/supervisord/devcontainer_test.go b/managed/services/supervisord/devcontainer_test.go index 604d31536a..e7b688c011 100644 --- a/managed/services/supervisord/devcontainer_test.go +++ b/managed/services/supervisord/devcontainer_test.go @@ -58,6 +58,8 @@ func TestDevContainer(t *testing.T) { }) t.Run("Check", func(t *testing.T) { + t.Skip("This test is to be deprecated or completely rewritten") + ctx := context.TODO() checker := NewPMMUpdateChecker(logrus.WithField("test", t.Name())) diff --git a/managed/services/supervisord/pmm_config.go b/managed/services/supervisord/pmm_config.go index c641c01fb4..07ac62556d 100644 --- a/managed/services/supervisord/pmm_config.go +++ b/managed/services/supervisord/pmm_config.go @@ -150,6 +150,7 @@ redirect_stderr = true [program:nginx] priority = 4 command = nginx +user = pmm autorestart = true autostart = true startretries = 10 diff --git a/managed/testdata/supervisord.d/pmm-db_disabled.ini b/managed/testdata/supervisord.d/pmm-db_disabled.ini index a770f99c47..703add6c97 100644 --- a/managed/testdata/supervisord.d/pmm-db_disabled.ini +++ b/managed/testdata/supervisord.d/pmm-db_disabled.ini @@ -43,6 +43,7 @@ redirect_stderr = true [program:nginx] priority = 4 command = nginx +user = pmm autorestart = true autostart = true startretries = 10 diff --git a/managed/testdata/supervisord.d/pmm-db_enabled.ini b/managed/testdata/supervisord.d/pmm-db_enabled.ini index 93b73c2b8e..bcb0436863 100644 --- a/managed/testdata/supervisord.d/pmm-db_enabled.ini +++ b/managed/testdata/supervisord.d/pmm-db_enabled.ini @@ -67,6 +67,7 @@ redirect_stderr = true [program:nginx] priority = 4 command = nginx +user = pmm autorestart = true autostart = true startretries = 10 diff --git a/qan-api2/docker-compose.yaml b/qan-api2/docker-compose.yaml index f5c3dce848..a9c9d93e11 100644 --- a/qan-api2/docker-compose.yaml +++ b/qan-api2/docker-compose.yaml @@ -6,8 +6,8 @@ services: container_name: pmm-server image: perconalab/pmm-server:3-dev-latest ports: - - 80:80 - - 443:443 + - 80:8080 + - 443:8443 - 19000:9000 - 9933:9933 restart: always diff --git a/update/ansible/playbook/tasks/roles/nginx/files/conf.d/pmm.conf b/update/ansible/playbook/tasks/roles/nginx/files/conf.d/pmm.conf index b492531041..91f077d71e 100644 --- a/update/ansible/playbook/tasks/roles/nginx/files/conf.d/pmm.conf +++ b/update/ansible/playbook/tasks/roles/nginx/files/conf.d/pmm.conf @@ -28,8 +28,8 @@ } server { - listen 80; - listen 443 ssl http2; + listen 8080; + listen 8443 ssl http2; server_name _; server_tokens off; diff --git a/update/ansible/playbook/tasks/roles/nginx/files/nginx.conf b/update/ansible/playbook/tasks/roles/nginx/files/nginx.conf index 76c26caa2a..4817b9abca 100644 --- a/update/ansible/playbook/tasks/roles/nginx/files/nginx.conf +++ b/update/ansible/playbook/tasks/roles/nginx/files/nginx.conf @@ -1,4 +1,4 @@ -user nginx; +user pmm; worker_processes 2; daemon off; From b6acd98df8d25482f938b8b504fa2c38fb963708 Mon Sep 17 00:00:00 2001 From: Alex Demidoff Date: Tue, 12 Dec 2023 15:51:28 +0300 Subject: [PATCH 3/4] PMM-12524 run clickhouse as non root (#2684) * PMM-12524 run clickhouse as non-root user * PMM-12524 move postgres role to build * PMM-12524 remove prometheus config * PMM-12524 fix octal file access mode * PMM-12524 move grafana files close to the role * PMM-12524 exclude logrotate from nginx install * PMM-12524 don't stop pmm-managed for postgres * PMM-12524 clean up supervisord role * PMM-12524 move the password util to grafana * PMM-12524 workaround the clickhouse permission issue * PMM-12524 disable logging to a file * PMM-12524 fix access issues * PMM-12524 remove users during post build * PMM-12524 provide migration docs and script * PMM-12524 fix the race condition * PMM-12524 apply a few fixes * PMM-12524 put grafana before postgres * PMM-12524 put clickhouse atomic flag to the post-build phase * PMM-12524 make a better note re feature flag * PMM-12524 fix recursive clickhouse dir creation * PMM-12524 clear dnf logs instead of yum * PMM-12524 fix the feature flag quirks * PMM-12524 remove redundant 'recurse' * PMM-12524 fix failing alerting tests * PMM-12524 fix failing alerting tests * PMM-12524 fix the id for nginx * PMM-12524 fix the api-test * PMM-12524 follow up on review * PMM-12524 follow up on review * PMM-12524 follow up on review * PMM-12524 fix nginx issues * PMM-12524 remove the log redirect comments * PMM-12524 follow up fix nginx issues * PMM-12524 follow up fix nginx issues * PMM-12524 yet another nginx fix * PMM-12524 fix the healthcheck * PMM-12524 set the maintenance file owned by pmm * PMM-12524 remove the prometheus config param from VM --- .github/workflows/update.yml | 1 + .../management/alerting/alerting_test.go | 6 +- api-tests/server/settings_test.go | 4 +- build/ansible/pmm/post-build-actions.yml | 75 ++++++------ .../roles/clickhouse/defaults/main.yml | 0 .../roles/clickhouse/files/config.xml | 5 +- build/ansible/roles/clickhouse/tasks/main.yml | 60 ++++++++++ .../grafana}/files/change-admin-password | 0 .../roles/grafana}/files/dashboards.yml | 0 .../roles/grafana}/files/datasources.yml | 0 .../ansible}/roles/grafana/files/grafana.ini | 0 .../ansible/roles/grafana}/files/plugins.yml | 0 .../ansible}/roles/grafana/tasks/main.yml | 11 +- .../roles/nginx/files/conf.d/pmm-ssl.conf | 0 .../roles/nginx/files/conf.d/pmm.conf | 0 .../ansible}/roles/nginx/files/local-rss.xml | 0 .../ansible}/roles/nginx/files/nginx.conf | 8 +- .../roles/nginx/files/ssl/ca-certs.pem | 0 .../roles/nginx/files/ssl/certificate.conf | 0 .../roles/nginx/files/ssl/dhparam.pem | 0 .../nginx/files/ssl/generate-ssl-certificate | 0 .../roles/nginx/files/ssl/upgrade-certificate | 0 .../ansible}/roles/nginx/tasks/main.yml | 52 +++++++-- build/ansible/roles/pmm-images/tasks/main.yml | 87 ++++++++++---- build/ansible/roles/postgres/tasks/main.yml | 109 +++++++++++++++++ .../roles/supervisord-init/tasks/main.yml | 42 +++---- build/docker/server/Dockerfile.el9 | 2 +- build/docker/server/create_users.sh | 2 +- build/docs/MIGRATION.md | 110 ++++++++++++------ managed/services/supervisord/pmm_config.go | 3 +- managed/services/supervisord/supervisord.go | 17 --- .../supervisord.d/pmm-db_disabled.ini | 3 +- .../testdata/supervisord.d/pmm-db_enabled.ini | 3 +- managed/testdata/supervisord.d/prometheus.ini | 15 --- .../supervisord.d/victoriametrics.ini | 1 - update/ansible/playbook/tasks/files/pmm.ini | 3 +- .../playbook/tasks/roles/clickhouse/main.yml | 18 +++ .../tasks/roles/clickhouse/tasks/main.yml | 100 ---------------- .../roles/dashboards_upgrade/tasks/main.yml | 2 +- .../tasks/roles/initialization/tasks/main.yml | 91 ++++----------- .../tasks/roles/postgres/tasks/main.yml | 110 ------------------ .../tasks/roles/postgres/tasks/restore.yml | 2 +- update/ansible/playbook/tasks/update.yml | 27 ----- 43 files changed, 472 insertions(+), 497 deletions(-) rename {update/ansible/playbook/tasks => build/ansible}/roles/clickhouse/defaults/main.yml (100%) rename {update/ansible/playbook/tasks => build/ansible}/roles/clickhouse/files/config.xml (99%) create mode 100644 build/ansible/roles/clickhouse/tasks/main.yml rename {update/ansible/playbook/tasks => build/ansible/roles/grafana}/files/change-admin-password (100%) rename {update/ansible/playbook/tasks => build/ansible/roles/grafana}/files/dashboards.yml (100%) rename {update/ansible/playbook/tasks => build/ansible/roles/grafana}/files/datasources.yml (100%) rename {update/ansible/playbook/tasks => build/ansible}/roles/grafana/files/grafana.ini (100%) rename {update/ansible/playbook/tasks => build/ansible/roles/grafana}/files/plugins.yml (100%) rename {update/ansible/playbook/tasks => build/ansible}/roles/grafana/tasks/main.yml (72%) rename {update/ansible/playbook/tasks => build/ansible}/roles/nginx/files/conf.d/pmm-ssl.conf (100%) rename {update/ansible/playbook/tasks => build/ansible}/roles/nginx/files/conf.d/pmm.conf (100%) rename {update/ansible/playbook/tasks => build/ansible}/roles/nginx/files/local-rss.xml (100%) rename {update/ansible/playbook/tasks => build/ansible}/roles/nginx/files/nginx.conf (85%) rename {update/ansible/playbook/tasks => build/ansible}/roles/nginx/files/ssl/ca-certs.pem (100%) rename {update/ansible/playbook/tasks => build/ansible}/roles/nginx/files/ssl/certificate.conf (100%) rename {update/ansible/playbook/tasks => build/ansible}/roles/nginx/files/ssl/dhparam.pem (100%) rename {update/ansible/playbook/tasks => build/ansible}/roles/nginx/files/ssl/generate-ssl-certificate (100%) rename {update/ansible/playbook/tasks => build/ansible}/roles/nginx/files/ssl/upgrade-certificate (100%) rename {update/ansible/playbook/tasks => build/ansible}/roles/nginx/tasks/main.yml (65%) create mode 100644 build/ansible/roles/postgres/tasks/main.yml delete mode 100644 managed/testdata/supervisord.d/prometheus.ini create mode 100644 update/ansible/playbook/tasks/roles/clickhouse/main.yml delete mode 100644 update/ansible/playbook/tasks/roles/clickhouse/tasks/main.yml delete mode 100644 update/ansible/playbook/tasks/roles/postgres/tasks/main.yml diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index f3b23fc9e2..3e1798e250 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -22,6 +22,7 @@ on: jobs: build: name: Build + if: false strategy: fail-fast: false diff --git a/api-tests/management/alerting/alerting_test.go b/api-tests/management/alerting/alerting_test.go index 96e4563b0e..80657c5369 100644 --- a/api-tests/management/alerting/alerting_test.go +++ b/api-tests/management/alerting/alerting_test.go @@ -148,13 +148,13 @@ func TestTemplatesAPI(t *testing.T) { t.Parallel() client := alertingClient.Default.Alerting - templateData, err := os.ReadFile("../../testdata/ia/template.yaml") + templateData, err := os.ReadFile("../../testdata/alerting/template.yaml") require.NoError(t, err) - multipleTemplatesData, err := os.ReadFile("../../testdata/ia/multiple-templates.yaml") + multipleTemplatesData, err := os.ReadFile("../../testdata/alerting/multiple-templates.yaml") require.NoError(t, err) - invalidTemplateData, err := os.ReadFile("../../testdata/ia/invalid-template.yaml") + invalidTemplateData, err := os.ReadFile("../../testdata/alerting/invalid-template.yaml") require.NoError(t, err) t.Run("add", func(t *testing.T) { diff --git a/api-tests/server/settings_test.go b/api-tests/server/settings_test.go index e1cb0d42a0..3bf3af1ece 100644 --- a/api-tests/server/settings_test.go +++ b/api-tests/server/settings_test.go @@ -552,7 +552,7 @@ func TestSettings(t *testing.T) { assert.Empty(t, res) }) - t.Run("NoAdminUserForSSH", func(t *testing.T) { + t.Run("ChangeSSHKey", func(t *testing.T) { defer restoreSettingsDefaults(t) sshKey := "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClY/8sz3w03vA2bY6mBFgUzrvb2FIoHw8ZjUXGGClJzJg5HC" + @@ -566,7 +566,7 @@ func TestSettings(t *testing.T) { }, Context: pmmapitests.Context, }) - pmmapitests.AssertAPIErrorf(t, err, 500, codes.Internal, `Internal server error.`) + require.NoError(t, err) assert.Empty(t, res) }) diff --git a/build/ansible/pmm/post-build-actions.yml b/build/ansible/pmm/post-build-actions.yml index 3a255a802f..e2cdbfdcd8 100644 --- a/build/ansible/pmm/post-build-actions.yml +++ b/build/ansible/pmm/post-build-actions.yml @@ -78,7 +78,7 @@ register: reread_result changed_when: "'No config updates to processes' not in reread_result.stdout" - - name: See what services are running + - name: See which service configs changed debug: var=reread_result.stdout_lines - name: Stop pmm-managed before deleting the database EL9 @@ -89,32 +89,6 @@ name: pmm-managed state: stopped - - name: Stop supervisord service for AMI/OVF - when: ansible_virtualization_type != "docker" - service: name=supervisord state=stopped enabled=yes - - - name: Stop supervisord service for docker - when: ansible_virtualization_type == "docker" - shell: supervisorctl shutdown - - # PMM-11336 - The previous steps failed to start PostgreSQL using supervisord, - # so a temporary solution was to start it without supervisord and remove the - # pmm-managed database/role. However, a complete overhaul of the pipeline is - # necessary for a permanent fix. - - name: Stop PostgreSQL database without supervisord - command: /usr/pgsql-14/bin/pg_ctl stop -D /srv/postgres14 - become: yes - become_user: pmm - ignore_errors: yes - when: ansible_virtualization_type != "docker" - - - name: Start PostgreSQL database without supervisord - command: /usr/pgsql-14/bin/pg_ctl start -D /srv/postgres14 -o "-c logging_collector=off" - become: yes - become_user: pmm - ignore_errors: yes - when: ansible_virtualization_type != "docker" - - name: Remove pmm-managed database EL9 when: - ansible_distribution == 'OracleLinux' or ansible_distribution == 'AlmaLinux' @@ -130,31 +104,43 @@ name: pmm-managed state: absent - - name: Stop PostgreSQL database without supervisord - command: /usr/pgsql-14/bin/pg_ctl stop -D /srv/postgres14 - become: yes - become_user: pmm - ignore_errors: yes + - name: Stop supervisord service for AMI/OVF when: ansible_virtualization_type != "docker" + service: name=supervisord state=stopped enabled=yes + + - name: Stop supervisord service for docker + when: ansible_virtualization_type == "docker" + shell: supervisorctl shutdown - - name: Cleanup yum cache | Cleanup yum cache - command: yum clean all + - name: Cleanup dnf cache + shell: dnf clean all - # "yum clean all" function will only remove cache from configured yum repositories - # Details: https://bugzilla.redhat.com/show_bug.cgi?id=1357083 - - name: Cleanup yum cache + # "yum clean all" function will only remove cache from configured yum repositories + # Details: https://bugzilla.redhat.com/show_bug.cgi?id=1357083 + - name: Cleanup dnf cache file: state: absent - path: /var/cache/yum + path: /var/cache/dnf - - name: Post-build cleanup | Cleanup build logs and data + - name: Cleanup build logs and data file: path={{ item }} state=absent with_items: - /srv/logs - /tmp/RPMS - - /var/log/yum.log + - /var/log/dnf.log - /var/log/secure - /var/log/wtmp + - /var/log/clickhouse-server + - /var/log/nginx + - /var/lib/pgsql + + - name: Remove users created by installers + user: + name: "{{ item }}" + state: absent + loop: + - postgres + - clickhouse - name: Clean Clickhouse dir shell: find /srv/clickhouse -mindepth 1 -maxdepth 1 -print0 | xargs -0 rm -rf -- @@ -183,3 +169,12 @@ owner: pmm group: pmm mode: 0775 + + # This is a temp workaround to make sure that the file exists and has the correct permissions. + # TODO: Remove, as it won't be needed once the main process is run as `pmm` user. + - name: Create nginx log file + file: + path: /srv/logs/nginx.log + state: touch + group: pmm + owner: pmm diff --git a/update/ansible/playbook/tasks/roles/clickhouse/defaults/main.yml b/build/ansible/roles/clickhouse/defaults/main.yml similarity index 100% rename from update/ansible/playbook/tasks/roles/clickhouse/defaults/main.yml rename to build/ansible/roles/clickhouse/defaults/main.yml diff --git a/update/ansible/playbook/tasks/roles/clickhouse/files/config.xml b/build/ansible/roles/clickhouse/files/config.xml similarity index 99% rename from update/ansible/playbook/tasks/roles/clickhouse/files/config.xml rename to build/ansible/roles/clickhouse/files/config.xml index 0ccb6ae4bf..20a08592d3 100644 --- a/update/ansible/playbook/tasks/roles/clickhouse/files/config.xml +++ b/build/ansible/roles/clickhouse/files/config.xml @@ -23,7 +23,10 @@ --> information 1 - /srv/logs/clickhouse-server.log +