Using the cluster Module to Deploy a Cluster

The pgEdge cluster module streamlines cluster creation by using a configuration file to describe the system attributes needed for deployment in an easy-to-create/easy-to-edit file. The file can also act as a template; copy the file to multiple hosts to duplicate commonly used cluster configurations.

After installing the pgEdge platform (opens in a new tab), you can create a new cluster_name.json file in minutes. Recreating an existing cluster is even faster; simply copy the pgedge/cluster/cluster_name.json file to the pgedge/cluster directory on the new host before invoking the cluster init command.

After moving or creating the cluster configuration file, you can invoke the pgedge cluster init command to deploy the defined cluster. The syntax is:

    ./pgedge cluster init cluster_name

As it executes this command (using the connection details you've provided in the configuration file), creates each node with:

  • pgEdge Platform
  • the latest minor release of your specified version of PostgreSQL
  • a PostgreSQL database
  • the spock and snowflake extensions (installed and configured for your cluster)
  • the default replication set
  • subscriptions between nodes that enable Active-active replication
  • Optionally, pgBackRest

Example

The following command deploys a cluster named demo, described in the demo.json file:

./pgedge cluster init demo

As the command executes, the CLI displays information about the installation. The displayed output first confirms that each nodes in the configuration file is accessible:

$ ./pgedge cluster init demo
## Loading cluster 'demo' JSON definition file
## Checking SSH connectivity for all nodes
May 06, 2025, 13:56:32: 127.0.0.1 : n1 - Checking SSH connectivity on 127.0.0.1                    
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "hostname" 

ip-172-31-19-120.ec2.internal

May 06, 2025, 13:56:32: 127.0.0.1 : n1 - Checking SSH connectivity on 127.0.0.1                    [OK]
May 06, 2025, 13:56:32: 127.0.0.1 : n2 - Checking SSH connectivity on 127.0.0.1                    
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "hostname" 

ip-172-31-19-120.ec2.internal

May 06, 2025, 13:56:32: 127.0.0.1 : n2 - Checking SSH connectivity on 127.0.0.1                    [OK]
May 06, 2025, 13:56:32: 127.0.0.1 : n3 - Checking SSH connectivity on 127.0.0.1                    
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "hostname" 

ip-172-31-19-120.ec2.internal

May 06, 2025, 13:56:32: 127.0.0.1 : n3 - Checking SSH connectivity on 127.0.0.1                    [OK]

Then, the installer displays installation information before installing pgEdge software on each node:

## Installing pgEdge on all nodes
###########################################################################
#              REPO: https://pgedge-devel.s3.amazonaws.com/REPO/stable/0501
#      Cluster Name: demo
#         Node Name: n1
#           Host IP: 127.0.0.1
#              Port: 6432
# Installation Path: /home/ec2-user/demo/n1
#          Database: lcdb
#     Database User: lcusr
#       Total Nodes: 3
###########################################################################
May 06, 2025, 13:56:32: 127.0.0.1 : n1 - Installing pgEdge on n1                                   
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "export REPO=https://pgedge-devel.s3.amazonaws.com/REPO/stable/0501; mkdir -p /home/ec2-user/demo/n1; cd /home/ec2-user/demo/n1; python3 -c \"\$(curl -fsSL https://pgedge-devel.s3.amazonaws.com/REPO/stable/0501/install.py)\"" 

Downloading CLI 25.0.0-alpha3 ...
Unpacking ...
Retrieving the remote list of latest component versions ...
Validating checksum file...
Updating local repository with remote entries...
 
################################################################################
#     Version: pgEdge 25.0.0-alpha3
# User & Host: ec2-user  ip-172-31-19-120.ec2.internal  /home/ec2-user/demo/n1/pgedge
#          OS: Red Hat Enterprise Linux9.4 (Plow), glibc-2.34, Python 3.9.18 ()
#     Machine: 7 GB
#  Cloud Info: aws  ec2  i-03f76bd5e8ba60184  t4g.large  us-east-1b
#    Repo URL: https://pgedge-devel.s3.amazonaws.com/REPO/stable/0501
# Last Update: 2025-05-06 13:56:36
################################################################################

########### Installing ctlibs ###############
  ['ctlibs']

Get:1 https://pgedge-devel.s3.amazonaws.com/REPO/stable/0501 ctlibs-1.6

Unpacking ctlibs-1.6.tgz
Downloading https://pgedge-devel.s3.amazonaws.com/REPO/stable/0501/ctlibs-py3.9-arm.tgz
moving py3.9-arm to ../hub/scripts/lib/

pgedge cli installed.

May 06, 2025, 13:56:42: 127.0.0.1 : n1 - Installing pgEdge on n1                                   [OK]
May 06, 2025, 13:56:42: 127.0.0.1 : n1 - Setting up pgEdge on n1                                   
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "/home/ec2-user/demo/n1/pgedge/pgedge setup -U lcusr -P '???' -d lcdb --port 6432 --pg_ver 16 --spock_ver 4.0.10" 

  Verify spock '4.0.10' is valid and unique
    Component    Version  Released  IsCurrent
    spock40-pg16 4.0.10-1 20250224  1

######### pgEdge Setup Info ###########
#      User: lcusr
#  Database: lcdb:6432
#  Postgres: 16
#     Spock: 4.0.10
# Autostart: False
#  Platform: py3.9-arm
#######################################

#
#  ./pgedge install pg16

########### Installing pg16 ###############
  ['pg16']

Get:1 https://pgedge-devel.s3.amazonaws.com/REPO/stable/0501 pg16-16.8-1-arm
   50 MB [47%]
  100 MB [95%]
  104 MB [100%]

Unpacking pg16-16.8-1-arm.tgz
#
#  ./pgedge init pg16

## Initializing pg16 #######################

Initializing Postgres DB with:
  /home/ec2-user/demo/n1/pgedge/pg16/bin/initdb -U ec2-user -A scram-sha-256 -E UTF8 --data-checksums -D "/home/ec2-user/demo/n1/pgedge/data/pg16" --pwfile="/home/ec2-user/demo/n1/pgedge/pg16/.pgpass" > "/home/ec2-user/demo/n1/pgedge/data/logs/pg16/install.log" 2>&1
ssl = on
Password securely remembered
 
#
#  ./pgedge config pg16 --port=6432

Using PostgreSQL Port 6432
#
#  ./pgedge start pg16
pg16 starting on port 6432
#   ./pgedge pgbin 16 "psql -q -c \"CREATE ROLE lcusr PASSWORD '???' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN\" postgres"
#   ./pgedge pgbin 16 "psql -q -c \"CREATE ROLE replicator PASSWORD '???' SUPERUSER LOGIN REPLICATION\" postgres"
#   ./pgedge pgbin 16 "createdb 'lcdb' --owner='lcusr'"
#   ./pgedge tune pg16
Tuning 'postgresql.conf' parms for 'pg16':
  new: shared_buffers = 1872MB
  new: maintenance_work_mem = 749MB
  new: wal_log_hints = on
  new: effective_cache_size = 6GB
  new: log_min_duration_statement = 1000
  new: shared_preload_libraries = 'pg_stat_statements'
#   ./pgedge install snowflake-pg16 --no-restart

########### Installing snowflake-pg16 ###############
  ['snowflake-pg16']

Get:1 https://pgedge-devel.s3.amazonaws.com/REPO/stable/0501 snowflake-pg16-2.2-1-arm

Unpacking snowflake-pg16-2.2-1-arm.tgz
  new: shared_preload_libraries = 'pg_stat_statements, snowflake'

#   ./pgedge install spock40-pg16 4.0.10 -d lcdb

########### Installing spock40-pg16 ###############
  ['spock40-pg16']

Get:1 https://pgedge-devel.s3.amazonaws.com/REPO/stable/0501 spock40-pg16-4.0.10-1-arm
    1 MB [100%]

Unpacking spock40-pg16-4.0.10-1-arm.tgz
  new: wal_level = 'logical'
  new: max_worker_processes = 12
  new: max_replication_slots = 16
  new: max_wal_senders = 16
  new: hot_standby_feedback = 'on'
  new: wal_sender_timeout = '5s'
  new: track_commit_timestamp = 'on'
  new: spock.conflict_resolution = 'last_update_wins'
  new: spock.save_resolutions = 'on'
  new: spock.conflict_log_level = 'DEBUG'
  new: shared_preload_libraries = 'pg_stat_statements, snowflake, spock'

pg16 stopping
pg16 starting on port 6432

$ pg16/bin/psql -p 6432 -c "CREATE EXTENSION IF NOT EXISTS spock CASCADE"  lcdb
CREATE EXTENSION
#   ./pgedge pgbin 16 "psql -q -c \"CREATE EXTENSION snowflake\" lcdb"


May 06, 2025, 13:57:12: 127.0.0.1 : n1 - Setting up pgEdge on n1                                   [OK]
May 06, 2025, 13:57:12: 127.0.0.1 : n1 - Creating DB 'lcdb' (if missing) on node 'n1'              
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "/home/ec2-user/demo/n1/pgedge/pgedge db create -User lcusr -db lcdb -Passwd password --Port=6432" 

May 06, 2025, 13:57:20: 127.0.0.1 : n1 - Creating DB 'lcdb' (if missing) on node 'n1'              [IGNORED]
May 06, 2025, 13:57:20: 127.0.0.1 : n1 - Configuring Spock GUCs on node 'n1'                       
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "/home/ec2-user/demo/n1/pgedge/pgedge db guc-set spock.enable_ddl_replication on; /home/ec2-user/demo/n1/pgedge/pgedge db guc-set spock.include_ddl_repset on; /home/ec2-user/demo/n1/pgedge/pgedge db guc-set spock.allow_ddl_from_functions on;" 

May 06, 2025, 13:57:24: 127.0.0.1 : n1 - Configuring Spock GUCs on node 'n1'                       [OK]

After installing pgEdge on each node, the CLI configures replication on each node; this configures both the spock and snowflake extensions:

## Configuring Spock replication on all nodes
May 06, 2025, 13:59:04: 127.0.0.1 : n1 - Creating node n1                                          
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "/home/ec2-user/demo/n1/pgedge/pgedge spock node-create n1 'host=127.0.0.1 user=ec2-user dbname=lcdb port=6432' lcdb" 

[
  {
    "node_create": 49708
  }
]
 pg_reload_conf 
----------------
 t
(1 row)

Set GUC snowflake.node to 1

May 06, 2025, 13:59:06: 127.0.0.1 : n1 - Creating node n1                                          [OK]
May 06, 2025, 13:59:06: 127.0.0.1 : n2 - Creating node n2                                          
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "/home/ec2-user/demo/n2/pgedge/pgedge spock node-create n2 'host=127.0.0.1 user=ec2-user dbname=lcdb port=6433' lcdb" 

[
  {
    "node_create": 26863
  }
]
 pg_reload_conf 
----------------
 t
(1 row)

Set GUC snowflake.node to 2

May 06, 2025, 13:59:08: 127.0.0.1 : n2 - Creating node n2                                          [OK]
May 06, 2025, 13:59:08: 127.0.0.1 : n3 - Creating node n3                                          
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "/home/ec2-user/demo/n3/pgedge/pgedge spock node-create n3 'host=127.0.0.1 user=ec2-user dbname=lcdb port=6434' lcdb" 

[
  {
    "node_create": 9057
  }
]
 pg_reload_conf 
----------------
 t
(1 row)

Set GUC snowflake.node to 3


May 06, 2025, 13:59:10: 127.0.0.1 : n3 - Creating node n3                                          [OK]
May 06, 2025, 13:59:10: 127.0.0.1 : n1 - Creating subscriptions sub_n1n2                           
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "/home/ec2-user/demo/n1/pgedge/pgedge spock sub-create sub_n1n2 'host=127.0.0.1 user=ec2-user dbname=lcdb port=6433' lcdb" 

[
  {
    "sub_create": 3293941396
  }
]

May 06, 2025, 13:59:11: 127.0.0.1 : n1 - Creating subscriptions sub_n1n2                           [OK]
May 06, 2025, 13:59:11: 127.0.0.1 : n1 - Creating subscriptions sub_n1n3                           
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "/home/ec2-user/demo/n1/pgedge/pgedge spock sub-create sub_n1n3 'host=127.0.0.1 user=ec2-user dbname=lcdb port=6434' lcdb" 

[
  {
    "sub_create": 1919895280
  }
]

May 06, 2025, 13:59:12: 127.0.0.1 : n1 - Creating subscriptions sub_n1n3                           [OK]
May 06, 2025, 13:59:12: 127.0.0.1 : n2 - Creating subscriptions sub_n2n1                           
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "/home/ec2-user/demo/n2/pgedge/pgedge spock sub-create sub_n2n1 'host=127.0.0.1 user=ec2-user dbname=lcdb port=6432' lcdb" 

[
  {
    "sub_create": 3651191944
  }
]

May 06, 2025, 13:59:13: 127.0.0.1 : n2 - Creating subscriptions sub_n2n1                           [OK]
May 06, 2025, 13:59:13: 127.0.0.1 : n2 - Creating subscriptions sub_n2n3                           
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "/home/ec2-user/demo/n2/pgedge/pgedge spock sub-create sub_n2n3 'host=127.0.0.1 user=ec2-user dbname=lcdb port=6434' lcdb" 

[
  {
    "sub_create": 923363493
  }
]

May 06, 2025, 13:59:14: 127.0.0.1 : n2 - Creating subscriptions sub_n2n3                           [OK]
May 06, 2025, 13:59:14: 127.0.0.1 : n3 - Creating subscriptions sub_n3n1                           
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "/home/ec2-user/demo/n3/pgedge/pgedge spock sub-create sub_n3n1 'host=127.0.0.1 user=ec2-user dbname=lcdb port=6432' lcdb" 

[
  {
    "sub_create": 2615912954
  }
]

May 06, 2025, 13:59:15: 127.0.0.1 : n3 - Creating subscriptions sub_n3n1                           [OK]
May 06, 2025, 13:59:15: 127.0.0.1 : n3 - Creating subscriptions sub_n3n2                           
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "/home/ec2-user/demo/n3/pgedge/pgedge spock sub-create sub_n3n2 'host=127.0.0.1 user=ec2-user dbname=lcdb port=6433' lcdb" 

[
  {
    "sub_create": 1118534372
  }
]

May 06, 2025, 13:59:16: 127.0.0.1 : n3 - Creating subscriptions sub_n3n2                           [OK]
May 06, 2025, 13:59:16: 127.0.0.1 : n3 - Listing spock nodes                                       
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "/home/ec2-user/demo/n3/pgedge/pgedge spock node-list lcdb" 

[
  {
    "node_id": 49708,
    "node_name": "n1"
  },
  {
    "node_id": 26863,
    "node_name": "n2"
  },
  {
    "node_id": 9057,
    "node_name": "n3"
  }
]

May 06, 2025, 13:59:17: 127.0.0.1 : n3 - Listing spock nodes                                       [OK]

[
  {
    "node_id": 49708,
    "node_name": "n1"
  },
  {
    "node_id": 26863,
    "node_name": "n2"
  },
  {
    "node_id": 9057,
    "node_name": "n3"
  }
]

If you provided pgBackRest details in the cluster_name.json file, pgBackRest is configured:

## Integrating pgBackRest into the cluster
### Configuring pgBackRest for node 'n1'
May 06, 2025, 13:59:17: 127.0.0.1 : n1 - Installing pgBackRest                                     
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge install backrest" 

########### Installing backrest ###############
  ['backrest']

Get:1 https://pgedge-devel.s3.amazonaws.com/REPO/stable/0501 backrest-2.53.1-1-arm

Unpacking backrest-2.53.1-1-arm.tgz
/var/lib/pgbackrest directory already exists
##### Configuring pgbackrest #####
pgBackRest 2.53.1

May 06, 2025, 13:59:20: 127.0.0.1 : n1 - Installing pgBackRest                                     [OK]
May 06, 2025, 13:59:20: 127.0.0.1 : n1 - Modifying postgresql.conf for pgBackRest                  
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge backrest set_postgresqlconf --stanza demo_stanza_n1 --pg1-path /home/ec2-user/demo/n1/pgedge/data/pg16 --repo1-path /var/lib/pgbackrest/n1 --repo1-type posix" 

#   /home/ec2-user/demo/n1/pgedge/backrest/backrest.py set_postgresqlconf --stanza demo_stanza_n1 --pg1-path /home/ec2-user/demo/n1/pgedge/data/pg16 --repo1-path /var/lib/pgbackrest/n1 --repo1-type posix
  new: archive_command = 'pgbackrest --stanza=demo_stanza_n1 --pg1-path=/home/ec2-user/demo/n1/pgedge/data/pg16 --repo1-type=posix --repo1-path=/var/lib/pgbackrest/n1 --repo1-cipher-type=aes-256-cbc archive-push %p'
  new: archive_mode = 'on'


May 06, 2025, 13:59:21: 127.0.0.1 : n1 - Modifying postgresql.conf for pgBackRest                  [OK]
May 06, 2025, 13:59:21: 127.0.0.1 : n1 - Modifying pg_hba.conf for pgBackRest                      
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge backrest set_hbaconf" 

#   /home/ec2-user/demo/n1/pgedge/backrest/backrest.py set_hbaconf


May 06, 2025, 13:59:22: 127.0.0.1 : n1 - Modifying pg_hba.conf for pgBackRest                      [OK]
May 06, 2025, 13:59:22: 127.0.0.1 : n1 - Reloading PostgreSQL configuration                        
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge psql 'select pg_reload_conf()' lcdb" 

 pg_reload_conf 
----------------
 t
(1 row)

May 06, 2025, 13:59:23: 127.0.0.1 : n1 - Reloading PostgreSQL configuration                        [OK]
May 06, 2025, 13:59:23: 127.0.0.1 : n1 - Setting BACKUP stanza 'demo_stanza_n1' on node 'n1'       
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge set BACKUP stanza demo_stanza_n1" 

May 06, 2025, 13:59:23: 127.0.0.1 : n1 - Setting BACKUP stanza 'demo_stanza_n1' on node 'n1'       [OK]
May 06, 2025, 13:59:23: 127.0.0.1 : n1 - Creating restore directory /var/lib/pgbackrest_restore/n1 
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "sudo mkdir -p /var/lib/pgbackrest_restore/n1" 

May 06, 2025, 13:59:23: 127.0.0.1 : n1 - Creating restore directory /var/lib/pgbackrest_restore/n1 [OK]
May 06, 2025, 13:59:23: 127.0.0.1 : n1 - Setting BACKUP restore_path to /var/lib/pgbackrest_restore/n1
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge set BACKUP restore_path /var/lib/pgbackrest_restore/n1" 

May 06, 2025, 13:59:24: 127.0.0.1 : n1 - Setting BACKUP restore_path to /var/lib/pgbackrest_restore/n1[OK]
May 06, 2025, 13:59:24: 127.0.0.1 : n1 - Setting BACKUP repo1-host-user to ec2-user on node 'n1'   
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge set BACKUP repo1-host-user ec2-user" 

May 06, 2025, 13:59:25: 127.0.0.1 : n1 - Setting BACKUP repo1-host-user to ec2-user on node 'n1'   [OK]
May 06, 2025, 13:59:25: 127.0.0.1 : n1 - Setting BACKUP pg1-path to /home/ec2-user/demo/n1/pgedge/data/pg16 on node 'n1'
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge set BACKUP pg1-path /home/ec2-user/demo/n1/pgedge/data/pg16" 

May 06, 2025, 13:59:25: 127.0.0.1 : n1 - Setting BACKUP pg1-path to /home/ec2-user/demo/n1/pgedge/data/pg16 on node 'n1'[OK]
May 06, 2025, 13:59:25: 127.0.0.1 : n1 - Setting BACKUP pg1-user to ec2-user on node 'n1'          
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge set BACKUP pg1-user ec2-user" 

May 06, 2025, 13:59:26: 127.0.0.1 : n1 - Setting BACKUP pg1-user to ec2-user on node 'n1'          [OK]
May 06, 2025, 13:59:26: 127.0.0.1 : n1 - Setting BACKUP pg1-port to 6432 on node 'n1'              
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge set BACKUP pg1-port 6432" 

May 06, 2025, 13:59:26: 127.0.0.1 : n1 - Setting BACKUP pg1-port to 6432 on node 'n1'              [OK]
May 06, 2025, 13:59:26: 127.0.0.1 : n1 - Creating pgBackRest stanza 'demo_stanza_n1'               
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge backrest command stanza-create --stanza 'demo_stanza_n1' --pg1-path '/home/ec2-user/demo/n1/pgedge/data/pg16' --repo1-cipher-type aes-256-cbc --pg1-port 6432 --repo1-path /var/lib/pgbackrest/n1" 

#   /home/ec2-user/demo/n1/pgedge/backrest/backrest.py command stanza-create --stanza demo_stanza_n1 --pg1-path /home/ec2-user/demo/n1/pgedge/data/pg16 --repo1-cipher-type aes-256-cbc --pg1-port 6432 --repo1-path /var/lib/pgbackrest/n1
Full command to be executed:
 pgbackrest stanza-create --stanza demo_stanza_n1 --pg1-path /home/ec2-user/demo/n1/pgedge/data/pg16 --repo1-cipher-type aes-256-cbc --pg1-port 6432 --repo1-path /var/lib/pgbackrest/n1
Command executed successfully.

May 06, 2025, 13:59:28: 127.0.0.1 : n1 - Creating pgBackRest stanza 'demo_stanza_n1'               [OK]
May 06, 2025, 13:59:28: 127.0.0.1 : n1 - Creating full pgBackRest backup                           
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge backrest command backup '--repo1-path /var/lib/pgbackrest/n1 --stanza demo_stanza_n1 --pg1-path /home/ec2-user/demo/n1/pgedge/data/pg16 --repo1-type posix --log-level-console info --pg1-port 6432 --db-socket-path /tmp --repo1-cipher-type aes-256-cbc --repo1-retention-full 7 --type=full'" 

#   /home/ec2-user/demo/n1/pgedge/backrest/backrest.py command backup --repo1-path /var/lib/pgbackrest/n1 --stanza demo_stanza_n1 --pg1-path /home/ec2-user/demo/n1/pgedge/data/pg16 --repo1-type posix --log-level-console info --pg1-port 6432 --db-socket-path /tmp --repo1-cipher-type aes-256-cbc --repo1-retention-full 7 --type=full
Full command to be executed:
 pgbackrest backup --repo1-path /var/lib/pgbackrest/n1 --stanza demo_stanza_n1 --pg1-path /home/ec2-user/demo/n1/pgedge/data/pg16 --repo1-type posix --log-level-console info --pg1-port 6432 --db-socket-path /tmp --repo1-cipher-type aes-256-cbc --repo1-retention-full 7 --type full
Command executed successfully.
2025-05-06 13:59:28.809 P00   INFO: backup command begin 2.53.1: --exec-id=1185460-3874f829 --log-level-console=info --pg1-path=/home/ec2-user/demo/n1/pgedge/data/pg16 --pg1-port=6432 --pg1-socket-path=/tmp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest/n1 --repo1-retention-full=7 --repo1-type=posix --stanza=demo_stanza_n1 --type=full
2025-05-06 13:59:29.414 P00

May 06, 2025, 13:59:29: 127.0.0.1 : n1 - Creating full pgBackRest backup                           [OK]
May 06, 2025, 13:59:29: 127.0.0.1 : n1 - Setting BACKUP repo1-path to /var/lib/pgbackrest/n1 on node 'n1'
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge set BACKUP repo1-path /var/lib/pgbackrest/n1" 

May 06, 2025, 13:59:30: 127.0.0.1 : n1 - Setting BACKUP repo1-path to /var/lib/pgbackrest/n1 on node 'n1'[OK]
May 06, 2025, 13:59:30: 127.0.0.1 : n1 - Generating pgBackrest YAML                                
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n1/pgedge && ./pgedge backrest write-config" 

May 06, 2025, 13:59:30: 127.0.0.1 : n1 - Generating pgBackrest YAML                                [OK]
May 06, 2025, 13:59:30: 127.0.0.1 : n2 - Generating pgBackrest YAML                                
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n2/pgedge && ./pgedge backrest write-config" 

May 06, 2025, 13:59:31: 127.0.0.1 : n2 - Generating pgBackrest YAML                                [OK]
May 06, 2025, 13:59:31: 127.0.0.1 : n3 - Generating pgBackrest YAML                                
  ssh -o StrictHostKeyChecking=no -q -t ec2-user@127.0.0.1 "cd /home/ec2-user/demo/n3/pgedge && ./pgedge backrest write-config" 

May 06, 2025, 13:59:32: 127.0.0.1 : n3 - Generating pgBackrest YAML                                [OK]