printer-create.yml 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. ---
  2. - name: Install CUPS and create a print queue
  3. hosts: clients
  4. gather_facts: no
  5. become: yes
  6. vars:
  7. print_packages:
  8. - cups
  9. - avahi
  10. print_services:
  11. - avahi-daemon
  12. - cups
  13. print_ports:
  14. - mdns
  15. queue_name: "my-printer"
  16. dev_uri: "ipp://serverc.lab.example.com:631/printers/rht-printer"
  17. tasks:
  18. - name: Install the CUPS and Avahi packages
  19. yum:
  20. name: "{{ print_packages }}"
  21. state: latest
  22. - name: Enable and start the CUPS and Avahi services
  23. service:
  24. name: "{{ item }}"
  25. state: started
  26. enabled: yes
  27. loop: "{{ print_services }}"
  28. - name: Open the mDNS firewall port
  29. firewalld:
  30. service: "{{ item }}"
  31. state: enabled
  32. permanent: yes
  33. immediate: yes
  34. loop: "{{ print_ports }}"
  35. - name: Check if print queue already exists
  36. command: lpstat -p "{{ queue_name }}"
  37. register: cmdout
  38. ignore_errors: true
  39. changed_when: false
  40. - name: Create the print queue
  41. command: lpadmin -p "{{ queue_name }}" -v "{{ dev_uri }}" -m everywhere -E
  42. when: cmdout.rc != 0
  43. - name: Check default print queue
  44. command: lpstat -d
  45. register: curr_dest
  46. changed_when: false
  47. - name: Make the new print queue the default
  48. command: lpadmin -d "{{ queue_name }}"
  49. when: curr_dest['stdout'] | regex_replace('^(.*):.') != queue_name