108 lines
3.1 KiB
YAML
108 lines
3.1 KiB
YAML
---
|
|
- name: Creates postgres backup directory
|
|
file:
|
|
path: "{{ drone_postgres_backup_dir }}/backup"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
register: drone_postgres_backup_dir_state
|
|
when: drone_database_driver == "postgres"
|
|
tags:
|
|
- postgres
|
|
- database
|
|
|
|
- name: Creates postgres recovery directory
|
|
file:
|
|
path: "{{ drone_postgres_backup_dir }}/restore"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: 0755
|
|
when: drone_database_driver == "postgres"
|
|
tags:
|
|
- postgres
|
|
- database
|
|
|
|
- name: start postgres for drone ci
|
|
docker_container:
|
|
name: postgres
|
|
image: postgres:11
|
|
state: started
|
|
restart_policy: always
|
|
ports:
|
|
- "5432:5432"
|
|
volumes:
|
|
- "postgres_data:/var/lib/postgresql/data"
|
|
- "{{ drone_postgres_backup_dir }}/backup:/var/lib/pgbackup"
|
|
- "{{ drone_postgres_backup_dir }}/restore:/docker-entrypoint-initdb.d:ro"
|
|
env:
|
|
POSTGRES_PASSWORD: "{{ drone_postgres_password }}"
|
|
POSTGRES_USER: "{{ drone_postgres_user }}"
|
|
POSTGRES_DB: "{{ drone_postgres_db }}"
|
|
when: drone_postgres_backup_dir_state is defined and drone_postgres_backup_dir_state.changed or
|
|
drone_database_driver == "postgres"
|
|
tags:
|
|
- postgres
|
|
- database
|
|
- skip_ansible_lint
|
|
|
|
- name: create backup service for drone postgres database
|
|
template:
|
|
src: "templates/{{ item.src }}"
|
|
dest: "{{ item.dest }}"
|
|
owner: root
|
|
group: root
|
|
mode: "{{ item.mode }}"
|
|
vars:
|
|
backup_frequency: "{{ drone_postgres_backup_frequency|default('daily') }}"
|
|
backup_path: "{{ drone_postgres_backup_dir }}"
|
|
with_items:
|
|
- {src: postgres_backup.service.j2, dest: /etc/systemd/system/postgres_backup.service, mode: "0644"}
|
|
- {src: postgres_backup.timer.j2, dest: /etc/systemd/system/postgres_backup.timer, mode: "0644"}
|
|
- {src: pg_backup.sh.j2, dest: /usr/local/bin/pg_backup.sh, mode: "0755"}
|
|
notify: reload postgres_backup service
|
|
when: drone_postgres_backup_dir_state is defined and drone_postgres_backup_dir_state.changed or
|
|
drone_database_driver == "postgres"
|
|
tags:
|
|
- postgres
|
|
- database
|
|
|
|
- name: ensure backup service for drone postgres database is enabled
|
|
systemd:
|
|
name: postgres_backup.timer
|
|
enabled: yes
|
|
|
|
- name: Creates mysql directory
|
|
file:
|
|
path: "{{ drone_mysql_data_dir }}"
|
|
state: directory
|
|
mode: 0755
|
|
register: drone_mysql_data_dir
|
|
when: drone_database_driver == "mysql"
|
|
tags:
|
|
- mysql
|
|
- database
|
|
|
|
- name: start mysql for drone ci
|
|
docker_container:
|
|
name: mysql
|
|
image: mysql:5.7
|
|
state: started
|
|
restart_policy: always
|
|
ports:
|
|
- "3306:3306"
|
|
volumes:
|
|
- "{{ drone_mysql_data_dir }}:/var/lib/mysqlql/data"
|
|
env:
|
|
MYSQL_PASSWORD: "{{ drone_mysql_password }}"
|
|
MYSQL_USER: "{{ drone_mysql_user }}"
|
|
MYSQL_DATABASE: "{{ drone_mysql_db }}"
|
|
MYSQL_ROOT_PASSWORD: "{{ drone_mysql_password }}"
|
|
when: drone_mysql_data_dir is defined and drone_mysql_data_dir.changed or
|
|
drone_database_driver == "mysql"
|
|
tags:
|
|
- mysql
|
|
- database
|
|
- skip_ansible_lint
|