Initial gather_ipv4/exportfs build - testing
This commit is contained in:
parent
42f4a94685
commit
769a91ccd1
13
playbooks/gather_ipv4.yml
Normal file
13
playbooks/gather_ipv4.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
- name: Gather IPv4 Addresses
|
||||||
|
hosts: all
|
||||||
|
gather_facts: true
|
||||||
|
become: false
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Set stats
|
||||||
|
ansible.builtin.set_stats:
|
||||||
|
data:
|
||||||
|
ip_addresses: "{{ ansible_all_ipv4_addresses }}"
|
||||||
|
server_hostname: "{{ ansible_hostname }}"
|
||||||
|
aggregate: true
|
46
playbooks/nfs_export.yml
Normal file
46
playbooks/nfs_export.yml
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
---
|
||||||
|
- name: Check SSH connectivity and create group of reachable hosts
|
||||||
|
hosts: rear_server
|
||||||
|
gather_facts: false
|
||||||
|
become: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Check SSH connectivity
|
||||||
|
ansible.builtin.ping:
|
||||||
|
register: result
|
||||||
|
failed_when: false
|
||||||
|
|
||||||
|
- name: Clear unreachable host errors
|
||||||
|
ansible.builtin.meta: clear_host_errors
|
||||||
|
|
||||||
|
- name: Add reachable hosts to group
|
||||||
|
ansible.builtin.group_by:
|
||||||
|
key: reachable_hosts
|
||||||
|
when:
|
||||||
|
- result['ping'] is defined
|
||||||
|
- "'pong' in result['ping']"
|
||||||
|
|
||||||
|
|
||||||
|
- name: Update NFS exports on reachable servers
|
||||||
|
hosts: reachable_hosts
|
||||||
|
become: true
|
||||||
|
gather_facts: false
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Grab the template name
|
||||||
|
ansible.builtin.set_stats:
|
||||||
|
data:
|
||||||
|
nfs_exports_template_name: "{{ tower_job_template_name | default('NA') }}"
|
||||||
|
aggregate: true
|
||||||
|
|
||||||
|
- name: Create IP list and add to NFS exports
|
||||||
|
when: not rear_backup_skip | default(false) | bool
|
||||||
|
block:
|
||||||
|
- name: Create list with IP addresses and hostnames
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
client_ips: "{{ ip_addresses | list | flatten }}"
|
||||||
|
namehost: "{{ server_hostname }}"
|
||||||
|
|
||||||
|
- name: Include NFS export role
|
||||||
|
ansible.builtin.include_role:
|
||||||
|
name: ../roles/nfs_export
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
- name: Perform a ReaR backup
|
- name: ReaR Backup Validation
|
||||||
hosts: all
|
hosts: all
|
||||||
become: true
|
become: true
|
||||||
gather_facts: true
|
gather_facts: true
|
||||||
@ -44,7 +44,7 @@
|
|||||||
rescue:
|
rescue:
|
||||||
- name: No backup log found
|
- name: No backup log found
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg: "ReaR backup log could not be found to verify backup status. Please run the backup and try again."
|
msg: "ReaR backup log could not be found or an error was encountered. Please run the backup and try again."
|
||||||
|
|
||||||
- name: OS Failure
|
- name: OS Failure
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
|
3
roles/nfs_export/handlers/main.yml
Normal file
3
roles/nfs_export/handlers/main.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
- name: Export share
|
||||||
|
ansible.builtin.command: "exportfs -rav"
|
40
roles/nfs_export/tasks/main.yml
Normal file
40
roles/nfs_export/tasks/main.yml
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
---
|
||||||
|
- name: Check disk space on ReaR Backup filesystem for NFS servers
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
set -o pipefail
|
||||||
|
df -BG {{ share }} | tail -1 | awk '{print substr($4, 1, length($4)-1))'
|
||||||
|
register: disk_space
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: Debug disk_space
|
||||||
|
ansible.builtin.debug:
|
||||||
|
var: disk_space
|
||||||
|
|
||||||
|
- name: Fail job if less than 50GB space
|
||||||
|
ansible.builtin.fail:
|
||||||
|
msg: ReaR NFS server {{ inventory_hostname }} has less than 50GB of space on filesystem."
|
||||||
|
when: (disk_space.stdout|int <= 50)
|
||||||
|
|
||||||
|
- name: Validate IP address fact
|
||||||
|
ansible.builtin.fail:
|
||||||
|
msg: "Missing client_ips variable"
|
||||||
|
when:
|
||||||
|
- client_ips is not defined
|
||||||
|
|
||||||
|
- name: Ensure share directory exists
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ share }}"
|
||||||
|
state: directory
|
||||||
|
mode: "0777"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
|
||||||
|
- name: Add remote hosts to /etc/exports
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /etc/exports
|
||||||
|
state: present
|
||||||
|
line: "{{ share }} {{ _options }}"
|
||||||
|
loop: "{{ client_ips | list | flatten }}"
|
||||||
|
vars:
|
||||||
|
_options: "{{ item }}(fsid=0,rw,sync,no_subtree_check,crossmnt)"
|
||||||
|
notify: Export share
|
2
roles/nfs_export/vars/main.yml
Normal file
2
roles/nfs_export/vars/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
share: "/backups/standalone"
|
@ -1,11 +1,2 @@
|
|||||||
---
|
---
|
||||||
rear_nfs_srv: "10.10.42.180/backups"
|
rear_nfs_srv: "10.10.42.180"
|
||||||
|
|
||||||
rear_backup_success_file: /var/log/IPE/IPU/bigboot_success
|
|
||||||
|
|
||||||
# rear_backup_initrd_modules_exclude:
|
|
||||||
# - scsi_debug
|
|
||||||
# - falcon_lsm_serviceable
|
|
||||||
# - falcon_nf_netcontains
|
|
||||||
# - falcon_kal
|
|
||||||
# - falcon_lsm_pinned_16407
|
|
||||||
|
@ -19,10 +19,10 @@
|
|||||||
when:
|
when:
|
||||||
- rear_force_backup | default(false) | bool
|
- rear_force_backup | default(false) | bool
|
||||||
block:
|
block:
|
||||||
- name: Execute ReaR backup
|
# - name: Execute ReaR backup
|
||||||
ansible.builtin.command: rear -d -v mkbackup
|
# ansible.builtin.command: rear -d -v mkbackup
|
||||||
changed_when: true
|
# changed_when: true
|
||||||
register: rear_mkbackup
|
# register: rear_mkbackup
|
||||||
|
|
||||||
- name: ReaR backup success
|
- name: ReaR backup success
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user