blob: aeadfbebbada3805806bba4257efa95bc015d9f8 [file] [log] [blame]
{%- from "cassandra/map.jinja" import backup with context %}
{%- if backup.client is defined %}
{%- if backup.client.enabled %}
cassandra_backup_client_packages:
pkg.installed:
- names: {{ backup.pkgs }}
cassandra_get_listen_addr_script:
file.managed:
- name: /usr/local/bin/cas_get_listen_addr
- source: salt://cassandra/files/backup/cas_get_listen_addr.py
- template: jinja
- mode: 555
cassandra_backup_runner_script:
file.managed:
- name: /usr/local/bin/cassandra-backup-runner.sh
- source: salt://cassandra/files/backup/cassandra-backup-client-runner.sh
- template: jinja
- mode: 655
- require:
- pkg: cassandra_backup_client_packages
- file: cassandra_get_listen_addr_script
cassandra_call_backup_runner_script:
file.managed:
- name: /usr/local/bin/cassandra-backup-runner-call.sh
- source: salt://cassandra/files/backup/cassandra-backup-client-runner-call.sh
- template: jinja
- mode: 655
- require:
- pkg: cassandra_backup_client_packages
- file: cassandra_get_listen_addr_script
cassandra_backup_dir:
file.directory:
- name: {{ backup.backup_dir }}/full
- user: root
- group: root
- makedirs: true
cassandra_backup_runner_cron:
cron.present:
- name: /usr/local/bin/cassandra-backup-runner-call.sh
- user: root
{%- if not backup.cron %}
- commented: True
{%- endif %}
- minute: 0
{%- if backup.client.hours_before_full is defined %}
{%- if backup.client.hours_before_full <= 23 and backup.client.hours_before_full > 1 %}
- hour: '*/{{ backup.client.hours_before_full }}'
{%- elif not backup.client.hours_before_full <= 1 %}
- hour: 2
{%- endif %}
{%- else %}
- hour: 2
{%- endif %}
- require:
- file: cassandra_backup_runner_script
- file: cassandra_call_backup_runner_script
{%- if backup.client.restore_latest is defined %}
cassandra_backup_restore_script:
file.managed:
- name: /usr/local/bin/cassandra-backup-restore.sh
- source: salt://cassandra/files/backup/cassandra-backup-client-restore.sh
- template: jinja
- mode: 655
- require:
- pkg: cassandra_backup_client_packages
- file: cassandra_get_listen_addr_script
cassandra_backup_call_restore_script:
file.managed:
- name: /usr/local/bin/cassandra-backup-restore-call.sh
- source: salt://cassandra/files/backup/cassandra-backup-client-restore-call.sh
- template: jinja
- mode: 655
- require:
- file: cassandra_backup_restore_script
cassandra_run_restore:
cmd.run:
- name: /usr/local/bin/cassandra-backup-restore-call.sh
- unless: "[ -e {{ backup.backup_dir }}/dbrestored ]"
- require:
- file: cassandra_backup_call_restore_script
{%- endif %}
{%- endif %}
{%- endif %}
{%- if backup.server is defined %}
{%- if backup.server.enabled %}
cassandra_backup_server_packages:
pkg.installed:
- names: {{ backup.pkgs }}
cassandra_user:
user.present:
- name: cassandra
- system: true
- home: {{ backup.backup_dir }}
{{ backup.backup_dir }}/full:
file.directory:
- mode: 755
- user: cassandra
- group: cassandra
- makedirs: true
- require:
- user: cassandra_user
- pkg: cassandra_backup_server_packages
{%- for key_name, key in backup.server.key.iteritems() %}
{%- if key.get('enabled', False) %}
cassandra_key_{{ key.key }}:
ssh_auth.present:
- user: cassandra
- name: {{ key.key }}
- require:
- file: {{ backup.backup_dir }}/full
{%- endif %}
{%- endfor %}
cassandra_server_script:
file.managed:
- name: /usr/local/bin/cassandra-backup-runner.sh
- source: salt://cassandra/files/backup/cassandra-backup-server-runner.sh
- template: jinja
- mode: 655
- require:
- pkg: cassandra_backup_server_packages
cassandra_server_cron:
cron.present:
- name: /usr/local/bin/cassandra-backup-runner.sh
- user: cassandra
{%- if not backup.cron %}
- commented: True
{%- endif %}
- minute: 0
- hour: 2
- require:
- file: cassandra_server_script
cassandra_server_call_restore_script:
file.managed:
- name: /usr/local/bin/cassandra-restore-call.sh
- source: salt://cassandra/files/backup/cassandra-backup-server-restore-call.sh
- template: jinja
- mode: 655
- require:
- pkg: cassandra_backup_server_packages
{%- endif %}
{%- endif %}