home-server/roles/printscan/tasks/main.yml

93 lines
2.4 KiB
YAML

---
# The home-server project produces a multi-purpose setup using Ansible.
# Copyright © 2018 Y. Gablin, under the GPL-3.0-or-later license.
# Full licensing information in the LICENSE file, or gnu.org/licences/gpl-3.0.txt if the file is missing.
### UPSTREAM BEGIN ⇒ ###
- name: pull prerequisites from upstream
include_role: name=etckeeper.inc allow_duplicates=true tasks_from=upstream.yml
vars:
msg: printer and scanner
### ⇐ UPSTREAM BEGIN ###
- name: ignore printers.conf, which almost changes on a daily basis
lineinfile:
path: /etc/.gitignore
regexp: "^/cups/printers.conf"
line: "/cups/printers.conf*"
insertafter: EOF
- name: install software
package:
name: "{{item}}"
with_items:
- cups
- hplip
- sane
### UPSTREAM END ⇒ ###
- name: merge upstream
include_role: name=etckeeper.inc allow_duplicates=true tasks_from=merge.yml
vars:
msg: printer and scanner
### ⇐ UPSTREAM END ###
- name: enable and start avahi-daemon
systemd:
daemon_reload: true
name: avahi-daemon.service
enabled: true
state: started
- name: enable and start cups
systemd:
daemon_reload: true
name: org.cups.cupsd.service
enabled: true
state: started
- name: configure cups
command: |
/usr/bin/cupsctl --remote-admin --share-printers --user-cancel-any
- name: enable the chosen sane drivers
replace:
path: /etc/sane.d/dll.conf
regexp: "^#\\s*({{sane_drivers | regex_escape() | replace('\\ ', '|')}})\\s*$"
replace: '\1'
- name: disable other sane drivers
replace:
path: /etc/sane.d/dll.conf
regexp: "^(?!\\s*(?:{{sane_drivers | regex_escape() | replace('\\ ', '|')}})\\s*)(\\s*[^#\\s].*)$"
replace: '#\1'
- name: enable network-scanning
lineinfile:
path: /etc/sane.d/saned.conf
regexp: "^\\+$"
line: "+"
insertafter: "^## Access list"
- name: set the sane port-range
lineinfile:
path: /etc/sane.d/saned.conf
regexp: "^#?\\s*data_portrange\\s*="
line: "data_portrange = 6515 - 6565"
insertafter: "^## Daemon options"
- name: enable and start sane
systemd:
daemon_reload: true
name: saned.socket
enabled: true
state: started
### LOCAL COMMIT ⇒ ###
- name: commit local changes
include_role: name=etckeeper.inc allow_duplicates=true tasks_from=local.yml
vars:
msg: printer and scanner
### ⇐ LOCAL COMMIT ###
- meta: flush_handlers