Add action for database backup
This action adds support to backup databases using the following command: ccp action run backup-db -p db=<your-database-name> Change-Id: Ia84b3eb99f817256c338a94b6baaa72b3cf50fd7 Depends-on: Ic0d13c92827b12edd720b772195eaca8fcfc5ede
This commit is contained in:
parent
74b76de1fa
commit
6bdc186bc4
6
docker/mysql-client/Dockerfile.j2
Normal file
6
docker/mysql-client/Dockerfile.j2
Normal file
@ -0,0 +1,6 @@
|
||||
FROM {{ image_spec("base-tools") }}
|
||||
MAINTAINER {{ maintainer }}
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --force-yes --no-install-recommends mysql-client \
|
||||
&& apt-get clean
|
13
service/actions/backup-db.yaml
Normal file
13
service/actions/backup-db.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
actions:
|
||||
- name: backup-db
|
||||
image: mysql-client
|
||||
dependencies:
|
||||
- {{ serivce.database }}
|
||||
parameters:
|
||||
- key: db
|
||||
default_value: null
|
||||
command: /opt/ccp/bin/backup-db.sh
|
||||
files:
|
||||
- path: /opt/ccp/bin/backup-db.sh
|
||||
content: backup-db.sh.j2
|
||||
perm: "0700"
|
12
service/files/backup-db.sh.j2
Normal file
12
service/files/backup-db.sh.j2
Normal file
@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
DB_NAME="{{ action_parameters.db }}"
|
||||
BACKUP_FILE="/var/ccp/backup/${DB_NAME}/backup-$(date "+%Y%m%d%H%M%S").sql"
|
||||
|
||||
mkdir -p "$(dirname ${BACKUP_FILE})"
|
||||
|
||||
mysqldump {% if db.tls.enabled %} --ssl-mode REQUIRED {% endif %} -h {{ address(service.database) }} \
|
||||
-uroot -p{{ db.root_password }} \
|
||||
--single-transaction --routines --triggers "${DB_NAME}" > "${BACKUP_FILE}"
|
Loading…
x
Reference in New Issue
Block a user