# create backup copies of system files on managed node # # https://www.freekb.net/Article?id=759 # https://docs.ansible.com/ansible/latest/collections/ansible/builtin/copy_module.html # https://docs.ansible.com/ansible/latest/collections/ansible/builtin/file_module.html # https://docs.ansible.com/ansible/latest/collections/ansible/builtin/copy_module.html # https://phoenixnap.com/kb/ansible-check-if-file-exists # https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_variables.html#registering-variables # https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_conditionals.html # # https://www.howtouselinux.com/post/ansible-copy-module-examples-to-copy-file-to-remote-server # --- - name: "09 - custom ansible - backup system files on controller" hosts: localhost tasks: - name: check backup directory status ansible.builtin.stat: path: "{{ backup_etc_dir }}" register: backup_dir tags: ['backup_dir_status'] - name: create backup directory if it does not exist ansible.builtin.file: path: "{{ backup_etc_dir }}" state: directory when: backup_dir.stat.isdir is not defined tags: ['create_backup_dir'] #- name: Print a debug message # ansible.builtin.debug: # msg: "isdir isn't defined (path doesn't exist)" # when: backup_dir.stat.islnk is not defined - name: backup special '/etc/' files locally ansible.builtin.shell: | sudo cp -a /etc/hosts.allow {{ backup_etc_dir }}/ cp -a /etc/hosts.deny {{ backup_etc_dir }}/ cp -a /etc/inetd.conf {{ backup_etc_dir }}/ cp -a /etc/sudoers {{ backup_etc_dir }}/ cp -a /etc/hosts {{ backup_etc_dir }}/ cp -a /etc/fstab {{ backup_etc_dir }}/ cp -a /etc/inittab {{ backup_etc_dir }}/ exit 0 delegate_to: localhost run_once: true when: backup_dir.stat.isdir is defined tags: ['backup_files']