2 # {{ ansible_managed }}
7 BARMAN_BACKUP_VERSION
=$2
9 if [[ -z $BARMAN_DATABASE || -z $BARMAN_BACKUP_VERSION ]]
11 echo "Usage : $0 BARMAN_DATABASE BARMAN_BACKUP_VERSION" >&2
12 echo " Example: $0 25kv 20161118T002405" >&2
16 BACKUP_DATE
=`date +%s`
18 echo "accept key if necessary"
19 sudo
-u postgres
ssh barman@
{{ postgres_barman_server
}} echo ""
21 echo Stopping PostgreSQL
22 pg_ctlcluster
{{ postgres_version
}} {{ postgres_cluster_name
}} stop
|| true
24 echo Cleaning up old cluster directory
25 sudo
-u postgres
mv /var
/lib
/postgresql
/{{ postgres_version
}}/{{ postgres_cluster_name
}}{,_
$BACKUP_DATE}
27 echo Creating new directory
28 sudo
-u postgres
mkdir -p /var
/lib
/postgresql
/{{ postgres_version
}}/{{ postgres_cluster_name
}}
30 echo Get previous backup from backups server
32 time rsync
--progress -pvia --exclude='*.conf' --exclude='server.crt' --exclude='server.key' --delete \
33 {% if postgres_barman_rsync_enabled
|default
(false
) -%}
34 --password-file=/var
/lib
/postgresql
/.rsync_pass \
36 {% if postgres_barman_rsync_enabled
|default
(false
) -%}rsync
://{%- endif
-%}barman@
{{ postgres_barman_server
}}{%- if postgres_barman_rsync_enabled
|default
(false
) -%}/backups
{%- else -%}:~
{%- endif
-%}/$BARMAN_DATABASE/base
/$BARMAN_BACKUP_VERSION/data
/ \
37 /var
/lib
/postgresql
/{{ postgres_version
}}/{{ postgres_cluster_name
}}/
39 echo Restoring .conf and server certificate
40 sudo
-u postgres
cp -a /var
/lib
/postgresql
/{{ postgres_version
}}/{{ postgres_cluster_name
}}_
$BACKUP_DATE/{*.conf
,server.crt
,server.key
} /var
/lib
/postgresql
/{{ postgres_version
}}/{{ postgres_cluster_name
}}/
42 echo Ensure rights are correcly
set
43 chown
-R postgres
:postgres
/var
/lib
/postgresql
/{{ postgres_version
}}/
44 chmod 0700 /var
/lib
/postgresql
/{{ postgres_version
}}/
45 chmod -R o
-rwx /var
/lib
/postgresql
/{{ postgres_version
}}/
47 echo Starting PostgreSQL
48 sudo pg_ctlcluster
{{ postgres_version
}} {{ postgres_cluster_name
}} start