--- - name: Install CUPS and create a print queue hosts: clients gather_facts: no become: yes vars: print_packages: - cups - avahi print_services: - avahi-daemon - cups print_ports: - mdns queue_name: "my-printer" dev_uri: "ipp://serverc.lab.example.com:631/printers/rht-printer" tasks: - name: Install the CUPS and Avahi packages yum: name: "{{ print_packages }}" state: latest - name: Enable and start the CUPS and Avahi services service: name: "{{ item }}" state: started enabled: yes loop: "{{ print_services }}" - name: Open the mDNS firewall port firewalld: service: "{{ item }}" state: enabled permanent: yes immediate: yes loop: "{{ print_ports }}" - name: Check if print queue already exists command: lpstat -p "{{ queue_name }}" register: cmdout ignore_errors: true changed_when: false - name: Create the print queue command: lpadmin -p "{{ queue_name }}" -v "{{ dev_uri }}" -m everywhere -E when: cmdout.rc != 0 - name: Check default print queue command: lpstat -d register: curr_dest changed_when: false - name: Make the new print queue the default command: lpadmin -d "{{ queue_name }}" when: curr_dest['stdout'] | regex_replace('^(.*):.') != queue_name