mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-03-26 21:33:05 +00:00
ansible-core 2.19 is not automatically converting empty and non empty lists to bool values. Conditionals must have a boolean result. The solution is to evaluate the length of the lists instead.
438 lines
11 KiB
YAML
438 lines
11 KiB
YAML
---
|
|
- name: Test ansible-freeipa backup role
|
|
hosts: ipaserver
|
|
become: yes
|
|
gather_facts: yes
|
|
|
|
tasks:
|
|
- name: List all directories on server backup directory
|
|
ansible.builtin.find:
|
|
path: /var/lib/ipa/backup
|
|
file_type: directory
|
|
register: backup_dirs
|
|
|
|
- name: List all files on server backup directory
|
|
ansible.builtin.find:
|
|
path: /var/lib/ipa/backup
|
|
file_type: file
|
|
register: backup_files
|
|
|
|
- name: Remove all files and directories on server backup directory
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: absent
|
|
loop: "{{ backup_dirs.files + backup_files.files }}"
|
|
loop_control:
|
|
label: "{{ item.path }}"
|
|
|
|
- name: List all existing backups on controller
|
|
ansible.builtin.find:
|
|
path: "{{ lookup('env', 'PWD') }}"
|
|
pattern: "{{ ansible_facts.fqdn }}*"
|
|
file_type: directory
|
|
register: backups
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
- name: Remove all existing backups on controller
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: absent
|
|
loop: "{{ backups.files }}"
|
|
loop_control:
|
|
label: "{{ item.path }}"
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
# TESTS
|
|
|
|
# Test simple backup on server
|
|
- name: Remove all backup from server.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: absent
|
|
ipabackup_name: all
|
|
|
|
- name: Backup ipaserver and leave data files on server
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: present
|
|
|
|
- name: Verify backup on server.
|
|
ansible.builtin.find:
|
|
paths: /var/lib/ipa/backup/
|
|
recurse: no
|
|
file_type: directory
|
|
register: result
|
|
failed_when: result.files | length == 0
|
|
|
|
# Test backup and copy to controller, don't keep copy on server
|
|
- name: Remove all backup from server.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: absent
|
|
ipabackup_name: all
|
|
|
|
- name: List all existing backups on controller
|
|
ansible.builtin.find:
|
|
path: "{{ lookup('env', 'PWD') }}"
|
|
pattern: "{{ ansible_facts.fqdn }}*"
|
|
file_type: directory
|
|
register: backups
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
- name: Remove all existing backups on controller
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: absent
|
|
loop: "{{ backups.files }}"
|
|
loop_control:
|
|
label: "{{ item.path }}"
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
- name: Backup ipaserver copying files to controller
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: present
|
|
ipabackup_to_controller: yes
|
|
|
|
- name: Verify backup on server.
|
|
ansible.builtin.find:
|
|
paths: /var/lib/ipa/backup
|
|
recurse: no
|
|
file_type: directory
|
|
register: backups
|
|
failed_when: backups.files | length > 0
|
|
|
|
- name: Verify backup on controller.
|
|
ansible.builtin.find:
|
|
path: "{{ lookup('env', 'PWD') }}"
|
|
pattern: "{{ ansible_facts.fqdn }}*"
|
|
file_type: directory
|
|
register: backups
|
|
failed_when: backups.files | length == 0
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
# Test backup and copy to controller, keep copy on server
|
|
- name: Remove all backup from server.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: absent
|
|
ipabackup_name: all
|
|
|
|
- name: List all existing backups on controller
|
|
ansible.builtin.find:
|
|
path: "{{ lookup('env', 'PWD') }}"
|
|
pattern: "{{ ansible_facts.fqdn }}*"
|
|
file_type: directory
|
|
register: backups
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
- name: Remove all existing backups on controller
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: absent
|
|
loop: "{{ backups.files }}"
|
|
loop_control:
|
|
label: "{{ item.path }}"
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
- name: Backup ipaserver copying files to controller, keep copy on server
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: present
|
|
ipabackup_to_controller: yes
|
|
ipabackup_keep_on_server: yes
|
|
|
|
- name: Verify backup on server.
|
|
ansible.builtin.find:
|
|
paths: /var/lib/ipa/backup
|
|
recurse: no
|
|
file_type: directory
|
|
register: result
|
|
failed_when: result.files | length == 0
|
|
|
|
- name: Verify backup on controller.
|
|
ansible.builtin.find:
|
|
path: "{{ lookup('env', 'PWD') }}"
|
|
pattern: "{{ ansible_facts.fqdn }}*"
|
|
file_type: directory
|
|
register: backups
|
|
failed_when: backups.files | length == 0
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
# Copy all backups from server
|
|
- name: List all existing backups on server
|
|
ansible.builtin.find:
|
|
path: /var/lib/ipa/backup
|
|
recurse: no
|
|
file_type: directory
|
|
register: server_backups
|
|
|
|
- name: List all existing backups on controller
|
|
ansible.builtin.find:
|
|
path: "{{ lookup('env', 'PWD') }}"
|
|
pattern: "{{ ansible_facts.fqdn }}*"
|
|
file_type: directory
|
|
register: backups
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
- name: Remove all existing backups on controller
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: absent
|
|
loop: "{{ backups.files }}"
|
|
loop_control:
|
|
label: "{{ item.path }}"
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
- name: Copy all backups from server.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: copied
|
|
ipabackup_name: all
|
|
ipabackup_to_controller: yes
|
|
|
|
- name: Check all existing backups on controller
|
|
ansible.builtin.find:
|
|
path: "{{ lookup('env', 'PWD') }}"
|
|
pattern: "{{ ansible_facts.fqdn }}*"
|
|
file_type: directory
|
|
register: backups
|
|
failed_when: backups.files | length == 0
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
# Copy backup from controller to server
|
|
- name: Remove all backup from server.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: absent
|
|
ipabackup_name: all
|
|
|
|
- name: List all existing backups on controller
|
|
ansible.builtin.find:
|
|
path: "{{ lookup('env', 'PWD') }}"
|
|
pattern: "{{ ansible_facts.fqdn }}*"
|
|
file_type: directory
|
|
register: backups
|
|
failed_when: backups.files | length == 0
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
- name: Copy backup from controller to server.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: copied
|
|
ipabackup_name: "{{ ipa_backup_data.path | split('/') | last }}"
|
|
ipabackup_from_controller: yes
|
|
with_items: "{{ backups.files }}"
|
|
loop_control:
|
|
loop_var: ipa_backup_data
|
|
|
|
- name: Check all existing backups on server
|
|
ansible.builtin.find:
|
|
path: /var/lib/ipa/backup
|
|
file_type: directory
|
|
register: backups
|
|
failed_when: backups.files | length == 0
|
|
|
|
# Copy backup from server to controller
|
|
- name: List all existing backups on controller
|
|
ansible.builtin.find:
|
|
path: "{{ lookup('env', 'PWD') }}"
|
|
pattern: "{{ ansible_facts.fqdn }}*"
|
|
file_type: directory
|
|
register: backups
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
- name: Remove all existing backups on controller
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: absent
|
|
loop: "{{ backups.files }}"
|
|
loop_control:
|
|
label: "{{ item.path }}"
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
- name: List all existing backups on server
|
|
ansible.builtin.find:
|
|
path: /var/lib/ipa/backup
|
|
recurse: no
|
|
file_type: directory
|
|
register: server_backups
|
|
failed_when: server_backups.files | length == 0
|
|
|
|
- name: Copy backup from server to controller.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: copied
|
|
ipabackup_name: "{{ server_backup_data.path | split('/') | last }}"
|
|
ipabackup_to_controller: yes
|
|
loop: "{{ server_backups.files }}"
|
|
loop_control:
|
|
loop_var: server_backup_data
|
|
label: server_backup_data.path
|
|
|
|
- name: List all existing backups on controller
|
|
ansible.builtin.find:
|
|
path: "{{ lookup('env', 'PWD') }}"
|
|
pattern: "{{ ansible_facts.fqdn }}*"
|
|
file_type: directory
|
|
register: backups
|
|
failed_when: backups.files | length == 0
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
# Remove all backups from server
|
|
- name: List all existing backups on server
|
|
ansible.builtin.find:
|
|
path: /var/lib/ipa/backup
|
|
recurse: no
|
|
file_type: directory
|
|
register: backups
|
|
failed_when: backups.files | length == 0
|
|
|
|
- name: Remov all backup from server.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: absent
|
|
ipabackup_name: all
|
|
|
|
- name: List all existing backups on server
|
|
ansible.builtin.find:
|
|
path: /var/lib/ipa/backup
|
|
recurse: no
|
|
file_type: directory
|
|
register: backups
|
|
failed_when: backups.files | length > 0
|
|
|
|
# Remove all backups from server
|
|
- name: Create a backup on the server
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: present
|
|
|
|
- name: Remove all backup from server.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: absent
|
|
ipabackup_name: all
|
|
|
|
- name: List all existing backups on server
|
|
ansible.builtin.find:
|
|
path: /var/lib/ipa/backup
|
|
recurse: no
|
|
file_type: directory
|
|
register: backups
|
|
failed_when: backups.files | length > 0
|
|
|
|
# Remove all backup from server
|
|
- name: Remove all backup from server.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: absent
|
|
ipabackup_name: all
|
|
|
|
- name: Create a backup on the server
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: present
|
|
|
|
- name: List all existing backups on server
|
|
ansible.builtin.find:
|
|
path: /var/lib/ipa/backup
|
|
recurse: no
|
|
file_type: directory
|
|
register: server_backups
|
|
failed_when: server_backups.files | length == 0
|
|
|
|
- name: Remove backup from server.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: absent
|
|
ipabackup_name: "{{ server_backup_data.path | split('/') | last }}"
|
|
loop: "{{ server_backups.files }}"
|
|
loop_control:
|
|
loop_var: server_backup_data
|
|
label: server_backup_data.path
|
|
|
|
# Test issue #900
|
|
- name: Remove all backup from server.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: absent
|
|
ipabackup_name: all
|
|
|
|
- name: Test issue 900 fix.
|
|
block:
|
|
- name: Invalid role configuration that should not produce a backup on the server.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: present
|
|
ipabackup_name: this_must_fail
|
|
rescue:
|
|
- name: List all existing backups on server
|
|
ansible.builtin.find:
|
|
path: /var/lib/ipa/backup
|
|
recurse: no
|
|
file_type: directory
|
|
register: server_backups
|
|
failed_when: server_backups.files | length > 0
|
|
|
|
# CLEANUP
|
|
|
|
- name: List all existing backups on controller
|
|
ansible.builtin.find:
|
|
path: "{{ lookup('env', 'PWD') }}"
|
|
pattern: "{{ ansible_facts.fqdn }}*"
|
|
file_type: directory
|
|
register: backups
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
- name: Remove all existing backups on controller
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: absent
|
|
loop: "{{ backups.files }}"
|
|
loop_control:
|
|
label: "{{ item.path }}"
|
|
delegate_to: localhost
|
|
become: no
|
|
|
|
- name: Remove all backup from server.
|
|
ansible.builtin.include_role:
|
|
name: ipabackup
|
|
vars:
|
|
state: absent
|
|
ipabackup_name: all
|