-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathontap_incr_merge.yaml
78 lines (78 loc) · 2.94 KB
/
ontap_incr_merge.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
---
#
# var:cluster_admin_ip
# var:ontap_user
# var:lookup_password
# var:db_host_name
# var:oracle_sid
# var:backup_cmd
# var:vol_name
# var:svm_name
# var:backup_dir
# var:number
#
- hosts: "{{ db_host_name }}"
gather_facts: no
serial: 1
vars:
directory: "{{ backup_dir if backup_dir is defined else '/backup' }}"
backupcmd: "{{ backup_cmd if backup_cmd is defined else '/home/oracle/oracle-scripts/db-incr-merge.sh -n -s ' + oracle_sid + ' -d ' + directory }}"
tasks:
- name: Backup database as incremental merge
block:
- name: Run Backup
command: "{{ backupcmd }}"
rescue:
- meta: end_play
- name: Create Incr Merge Snapshots
hosts: localhost
vars:
hostname: "{{ cluster_admin_ip }}"
username: "{{ ontap_user if ontap_user is defined else 'admin' }}"
password: "{{ ask_password if ask_password is defined else lookup('vars',lookup_password) if lookup_password is defined else ontap_password }}"
volume: "{{ vol_name if vol_name is defined else 'nfsvol' }}"
vserver: "{{ svm_name if svm_name is defined else 'svm0' }}"
snapshot: "{{ 'snapshot_clone_' + ansible_date_time.iso8601_basic_short }}"
clone: "{{ clone_name if clone_name is defined else dbvolume + '_1' }}"
junction: "{{ junction_path + '/' + clone if junction_path is defined else '/' + clone }}"
backupcmd: "{{ backup_cmd if backup_cmd is defined else '/home/oracle/oracle-scripts/db-hot-backup.sh -e -s ' + oracle_sid }}"
snap_num: "{{ number if number is defined else 10 }}"
snap_start: "{{ 1 }}"
tasks:
- name: Snapshot Volume
block:
- name: Delete Oldest Snapshot
na_ontap_snapshot:
hostname: "{{ hostname }}"
username: "{{ username }}"
password: "{{ password }}"
https: true
validate_certs: false
state: absent
volume: "{{ volume }}"
vserver: "{{ vserver }}"
snapshot: "backup_snapshot_{{ '%02d'|format(snap_num|int) }}"
- name: Shuffle Remaining Snapshots
na_ontap_snapshot:
hostname: "{{ hostname }}"
username: "{{ username }}"
password: "{{ password }}"
https: true
validate_certs: false
state: present
from_name: "backup_snapshot_{{ item }}"
volume: "{{ volume }}"
vserver: "{{ vserver }}"
snapshot: "backup_snapshot_{{ '%02d'|format(item|int + 1) }}"
with_sequence: end=1 start="{{ snap_num|int - 1 }}" format=%02d stride=-1
- name: Create New Snapshot
na_ontap_snapshot:
hostname: "{{ hostname }}"
username: "{{ username }}"
password: "{{ password }}"
https: true
validate_certs: false
state: present
volume: "{{ volume }}"
vserver: "{{ vserver }}"
snapshot: "backup_snapshot_{{ '%02d'|format(snap_start|int) }}"