To setup a satellite Avahi server, perform the following:
1. Enable iPrint Printers for AirPrint
Go to the iPrint Appliance Management Console:
https://<IP or DNS>:9443
Choose “iPrint Appliance Configuration”
Choose “Printers” (left frame)
Ensure the printer (or printers) is enabled for Mobile and AirPrint.
2. Connect any Linux system to the wireless network. This may be done via a wireless interface, or connected on the same network / VLAN that the wireless network uplinks to down the line.
3. Ensure the Avahi package is installed
rpm -qa |grep avahi
4. Copy the printer service files from the iPrint appliance server’s /etc/avahi/services directory to the satellite Avahi server.
5. Restart the Avahi daemon on the satellite server
SuSE based Linux distributions:
rcavahi-daemon restart
Ubuntu based Linux distributions
sudo service avahi-daemon restart
Other Linux distributions
Refer to their documentation
The printers are now advertised on the network where the Avahi satellite server is attached. Please note that this process can be repeated as necessary as new printers are added. If a printer is removed, make sure to remove the service file from the satellite servers as well.
A more elegant solution would be to rsync the contents of /etc/avahi/services to each satellite server on a regular interval to ensure that all systems stay in sync.
A less elegant solution, but workable solution, to automate the copying of service files from the iPrint Appliance to the satellite Avahi listener machine is to use cron. You can configure cron to copy the service files at whatever interval (minute, day, week, etc) you desire. The steps to set this up are:
Within a terminal session (putty or otherwise):
- Execute the ssh keygen command
- ssh-keygen -t rsa
- Hit ENTER three times
- Syntax:
- ssh-copy-id root@<IP address of satellite Linux machine>
- Example:
- ssh-copy-id root@172.16.3.9
- You may need to type ‘yes’ and hit ENTER (if prompted)
- Enter the root password of the satellite Linux machine
- Syntax:
- */10 * * * * root scp /etc/avahi/services/* root@<IP address of satellite Linux machine>:/etc/avahi/services/
- Example:
- */10 * * * * root scp /etc/avahi/services/* root@172.16.3.9:/etc/avahi/services/
- The update interval can be as frequent as you like. The above example copies the Avahi service files every 10 minutes.
- rccron restart