--- # tasks file for cups - name: Install CUPS and associated utilities pacman: name: - cups - cups-pdf - ghostscript - gsfonts become: yes - name: Install brother Driver aur: name: brother-dcpl2530dw skip_installed: yes - name: Add accounts to lpadmin group (CUPS admin) user: name: "{{ user.name }}" append: yes groups: "cups" become: yes - name: check printers command: lpstat -p Brother_DCP-L2530DW_series register: printers ignore_errors: True changed_when: printers.failed==true - debug: msg: "{{printers}}" - name: copy printers.conf copy: dest: /etc/cups/ # required. Remote absolute path where the file should be copied to. If I(src) is a directory, this must be a directory too. If I(dest) is a nonexistent path and if either I(dest) ends with "/" or I(src) is a directory, I(dest) is created. If I(src) and I(dest) are files, the parent directory of I(dest) isn't created: the task fails if it doesn't already exist. src: printers.conf # not required. Local path to a file to copy to the remote server; can be absolute or relative. If path is a directory, it is copied recursively. In this case, if path ends with "/", only inside contents of that directory are copied to destination. Otherwise, if it does not end with "/", the directory itself with all contents is copied. This behavior is similar to Rsync. group: cups # not required. Name of the group that should own the file/directory, as would be fed to I(chown). become: yes notify: restart cups when: printers.changed == true - name: Enable and start CUPS service service: name: cups-browsed.service enabled: True state: started become: yes