# - a bit of a contrived example of backing up files on a managed host # # https://stackoverflow.com/questions/24162996/how-to-move-rename-a-file-using-an-ansible-task-on-a-remote-system --- - 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 become: true become_user: root when: backup_dir.stat.isdir is not defined tags: ['create_backup_dir'] - name: backup of system files ansible.builtin.copy: src: /etc/{{ item }} remote_src: true dest: "{{ backup_etc_dir }}/" mode: preserve with_items: - hosts.allow~ - hosts.deny~ - inetd.conf - sudoers.dist - hosts - fstab - inittab become: true become_user: root tags: ['backup_system_files'] - name: backup slackpkg files ansible.builtin.copy: src: /etc/slackpkg/{{ item }} remote_src: true dest: "{{ backup_etc_dir }}/" mode: preserve with_items: - blacklist~ - mirrors~ become: true become_user: root tags: ['backup_slackpkg_files'] - name: rename our test files ansible.builtin.shell: | sudo mv {{ backup_etc_dir }}/hosts.allow~ {{ backup_etc_dir }}/hosts.allow sudo mv {{ backup_etc_dir }}/hosts.deny~ {{ backup_etc_dir }}/hosts.deny sudo mv {{ backup_etc_dir }}/sudoers.dist {{ backup_etc_dir }}/sudoers sudo mv {{ backup_etc_dir }}/blacklist~ {{ backup_etc_dir }}/blacklist sudo mv {{ backup_etc_dir }}/mirrors~ {{ backup_etc_dir }}/mirrors exit 0 tags: ['rename_files']