# create backup copies of system files on control 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 # # # had to run the command like so: # # ansible-playbook 09-playbook-copy-system-files.yml --ask-become-pass # # -or- # # ansible-playbook 09-playbook-copy-system-files.yml -K # # -or- # # ansible-playbook 09-playbook-copy-system-files.yml --become -K # --- - name: "09 - custom ansible - backup system files" 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 '/etc/fstab' # ansible.builtin.copy: # src: /etc/fstab # remote_src: true # dest: "{{ backup_etc_dir }}/fstab" ## backup: true # when: backup_dir.stat.isdir is defined # delegate_to: localhost # run_once: true # tags: ['fstab'] # - name: backup '/etc/fstab' locally # ansible.builtin.shell: sudo cp -a /etc/fstab {{ backup_etc_dir }}/ # delegate_to: localhost # run_once: true # when: backup_dir.stat.isdir is defined # tags: ['fstab'] - 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: ['fstab']