73 lines
2.2 KiB
Text
73 lines
2.2 KiB
Text
|
|
|
|
{%- if 'backup' in pillar['roles'] -%}
|
|
{%- else -%}
|
|
{##ensure that backup pillar exists##}
|
|
{%- if pillar['backup'] is defined -%}
|
|
{##restore directories from backup##}
|
|
{%- for name in pillar['backup'] %}
|
|
{%- if pillar['backup'][name]['location'] is defined %}
|
|
|
|
{%- if pillar['backup'][name]['key'] is defined %}
|
|
{{ name }}_key:
|
|
file.managed:
|
|
- name: /root/.ssh/{{ pillar['backup'][name]['key'] }}
|
|
- source: salt://secure/keys/backups/{{ pillar['backup'][name]['key'] }}
|
|
- user: root
|
|
- group: root
|
|
- mode: 600
|
|
- makedirs: true
|
|
#this should be made generic and/or added to all machines
|
|
backup_host.actcur.com:
|
|
ssh_known_hosts.present:
|
|
- name: host.actcur.com
|
|
- hash_known_hosts: False
|
|
- user: root
|
|
- enc: ssh-ed25519
|
|
- key: "AAAAC3NzaC1lZDI1NTE5AAAAIDmNZT8bMAfwQGwG/ZE/vkzSBsS4Cv+F7REkIw1tP27J"
|
|
#need to add host entry in .ssh/config.d
|
|
{{ name }}_config:
|
|
file.managed:
|
|
- name: /root/.ssh/config
|
|
- source: salt://systems/core/backup/ssh_config
|
|
- user: root
|
|
- group: root
|
|
- mode: 600
|
|
- makedirs: true
|
|
{{ name }}_configd:
|
|
file.managed:
|
|
- name: /root/.ssh/config.d/{{ name }}
|
|
- source: salt://systems/core/backup/ssh_configd
|
|
- user: root
|
|
- group: root
|
|
- mode: 600
|
|
- makedirs: true
|
|
- template: jinja
|
|
- context:
|
|
cname: {{ name }}
|
|
chost: {{ pillar['backup'][name]['host'] }}
|
|
ckey: /root/.ssh/{{ pillar['backup'][name]['key'] }}
|
|
cuser: {{ pillar['backup'][name]['rsync_user'] }}
|
|
{% endif %}
|
|
#handle backing up w/ rsync
|
|
rsync_{{ name }}:
|
|
pkg.installed:
|
|
- name: rsync
|
|
{##only run if backups are enabled##}
|
|
{%- if grains['backups_enabled'] is defined -%}
|
|
{%- if grains['backups_enabled'] == true %}
|
|
backup_dir_{{ name }}:
|
|
cmd.run:
|
|
- name: "ssh {{ name }} 'mkdir -p /mnt/butter/backups/configurations/{{ name }}/latest'"
|
|
backup_{{ name }}:
|
|
rsync.synchronized:
|
|
- name: {{ name }}:/mnt/butter/backups/configurations/{{ name }}/latest
|
|
- source: {{ pillar['backup'][name]['location'] }}/
|
|
- delete: true
|
|
- force: true
|
|
{%- endif -%}
|
|
{%- endif -%}
|
|
{%- endif -%}
|
|
{%- endfor %}
|
|
{%- endif %}
|
|
{%- endif %}
|