Lihuen
RSSRSS AtomAtom

Diferencia entre revisiones de «Pykota»

(Instalación)
 
(No se muestran 7 ediciones intermedias de un usuario)
Línea 1: Línea 1:
 +
Pykota es un software para implementar cuotas de impresión con cups o lprng. Permite acceder a la información de usuarios utilizando distintas bases de datos como postgresql y ldap.
 +
 +
En este documento se detalla como hacer una instalación sencilla de pykota utilizando postgresql como base de datos para guardar la información de impresoras y usuarios.
 +
 +
Para que los distintos usuarios puedan loguearse en el servidor para imprimir se puede usar el paquete de Lihuen 2.01 [[cupslogin]] que se integra con Gnome.
 
=Funcionamiento=
 
=Funcionamiento=
 
pykota agrega un backend para cups. Para utilizarlo debemos agregar en la url de la impresora "pykota://" al comienzo de el uri.
 
pykota agrega un backend para cups. Para utilizarlo debemos agregar en la url de la impresora "pykota://" al comienzo de el uri.
Línea 20: Línea 25:
 
Descomprimir el paquete y ejecutar "./pksetup debian", este script va a hacer un "apt-get update" y a descargar otros paquetes. Además crea una configuración por defecto, instala postgresql y crea su base de datos de usuarios ahí.
 
Descomprimir el paquete y ejecutar "./pksetup debian", este script va a hacer un "apt-get update" y a descargar otros paquetes. Además crea una configuración por defecto, instala postgresql y crea su base de datos de usuarios ahí.
  
Hay que chequear que se haya instaldo pkpgcounter que es una aplicación de pykota para contar las páginas por software. Sino hay que descargarlo desde la página de pykota e instalarlo.
+
Hay que chequear que se haya instalado pkpgcounter que es una aplicación de pykota para contar las páginas por software. Sino hay que descargarlo desde la página de pykota e instalarlo.
  
 
Archivos de configuración
 
Archivos de configuración
 
En /etc/pykota/ hay 2 archivos de configuración
 
En /etc/pykota/ hay 2 archivos de configuración
;pykota.conf : que tiene que poder ser leido por todos los usuarios  
+
;pykota.conf : que tiene que poder ser leído por todos los usuarios  
 
;pykotaadmin.conf : con datos de la base de datos, solo el usuario pykota y el grupo pykota tienen que poder leerlo.  
 
;pykotaadmin.conf : con datos de la base de datos, solo el usuario pykota y el grupo pykota tienen que poder leerlo.  
 
:Este archivo tiene el nombre de usuario y contraseña para acceder a la base de datos de pykota en modo administrador.
 
:Este archivo tiene el nombre de usuario y contraseña para acceder a la base de datos de pykota en modo administrador.
Línea 51: Línea 56:
 
  mailto : both
 
  mailto : both
  
Pasa los nombres de usuario a minuscula, esto es importante en dominios windows porque si
+
Pasa los nombres de usuario a minúscula, esto es importante en dominios windows porque si
 
este campo está seteado en "No" el usuario "IMPRESora" y "impresora" son dos usuarios distintos
 
este campo está seteado en "No" el usuario "IMPRESora" y "impresora" son dos usuarios distintos
 
con cuotas distintas.
 
con cuotas distintas.
Línea 58: Línea 63:
 
El siguiente campo determina que pasa cuando falla el backend (falla la impresión), se
 
El siguiente campo determina que pasa cuando falla el backend (falla la impresión), se
 
puede optar por descontar o no el trabajo de la cuota del usuario con charge y nocharge
 
puede optar por descontar o no el trabajo de la cuota del usuario con charge y nocharge
tambien existe la opcion "retry:numDeIntentos:delayEnSegundosEntreReintentos" para que pykota
+
también existe la opción "retry:numDeIntentos:delayEnSegundosEntreReintentos" para que pykota
 
vuelva a enviar el trabajo
 
vuelva a enviar el trabajo
 
  onbackenderror : nocharge
 
  onbackenderror : nocharge
Línea 64: Línea 69:
 
==Contadores de hojas==
 
==Contadores de hojas==
  
Metodo para contar las hojas antes de enviar el trabajo a la impresora (puede ser solamente
+
Método para contar las hojas antes de enviar el trabajo a la impresora (puede ser solamente
 
por software)
 
por software)
 
  preaccounter : software()
 
  preaccounter : software()
Metodo para contar las hojas luego de enviar el trabajo (puede ser hardware o software)
+
Método para contar las hojas luego de enviar el trabajo (puede ser hardware o software)
en hardware hay que poner un script entre los parentesis para que imprima en pantalla
+
en hardware hay que poner un script entre los paréntesis para que imprima en pantalla
 
el contador de hojas de la impresora, esta información se puede obtener por el puerto
 
el contador de hojas de la impresora, esta información se puede obtener por el puerto
 
paralelo, smnp o appletalk dependiendo de la impresora. En se pueden encontrar los
 
paralelo, smnp o appletalk dependiendo de la impresora. En se pueden encontrar los
Línea 86: Línea 91:
 
  preaccounter : software()
 
  preaccounter : software()
 
  accounter : software()
 
  accounter : software()
 +
==Gestión de cuentas de usuario==
 +
El siguiente campo define que hacer cuando un usuario que no está en la base de datos de pykota (entre otras cosas).
 +
Los valores posibles son deny, allow y external
 +
*deny: rechaza los trabajos de los usuarios que no estén en la base de datos
 +
*external: ejecuta un comando externo antes de permitirles imprimir
 +
El ejemplo de abajo agrega a los usuarios que quieran imprimir pero no existen en la base de datos.
 +
policy : external(pkusers --add --skipexisting --limitby noquota --description Added automatically\
 +
$PYKOTAUSERNAME && edpykota --add --skipexisting --printer $PYKOTAPRINTERNAME $PYKOTAUSERNAME)
 +
 +
=Comandos=
 +
==Gestión de impresoras==
 +
Ejemplos de uso pkprinters, la herramienta para agregar y configurar impresoras en pykota
 +
*Agregar una impresora
 +
pkprinters --add nombreImpresora
 +
*Agregar descripciones a las impresoras
 +
pkprinters --description descImpresora nombreImpresora
 +
Cada impresora puede tener una "tarifa" distinta a la hora de aplicar las cuotas.
 +
*Cambiar el costo de la impresión a 1 crédito por hoja
 +
pkprinters --charge 1 nombreImpresora
 +
*Cambiar el costo de la impresión a 1 crédito por hoja y 2 créditos por trabajo
 +
pkprinters --charge 1,2 nombreImpresora
 +
*Eliminar una impresora de la base de datos
 +
pkprinters --delete nombreImpresora
 +
*Listar los datos de las impresoras
 +
pkprinters -l
 +
==Gestión de usuarios==
 +
Ejemplos
 +
*Agregar 3 usuarios
 +
pkusers --add usuario1 usuario2 usuario3
 +
*Establecer la política que se aplicará a la hora de cobrarle al usuario
 +
pkusers --limitby balance
 +
Las políticas de cobro que se pueden aplicar a un usuario son
 +
*quota : limita la impresión por el número de hojas por impresora.
 +
*balance : limita la impresión por el número de créditos en la cuenta (los créditos se pueden usar en cualquier impresora en este caso).
 +
*noquota : no limita las impresiones pero cuenta las hojas/trabajos de todas maneras.
 +
*nochange : no limita las impresiones ni descuenta créditos al usuario.
 +
*noprint : el usuario tiene prohibida la impresión
 +
 +
*Balance: agregar 20 créditos a un usuario (pueden ser absolutos o relativos si se usa el prefijo + o -)
 +
pkusers -b +20 usuario
 +
*Balance: establecer que el usuario tiene exactamente 20 créditos
 +
pkusers -b 20 usuario
 +
*Eliminar un usuario
 +
pkusers --remove usuario
 +
*Hacer que a un usuario las impresiones les cuesten el doble de lo establecido por la impresora.
 +
pkusers --overcharge 2 usuario
 +
*Hacer que a un usuario las impresiones les cuesten la mitad de lo establecido por la impresora.
 +
pkusers --overcharge 0.5 usuario
 +
*Listar usuarios
 +
pkusers -L
 +
 +
Varios comandos pueden usarse sin pasar el nombre de usuario como argumento, en estos casos consideran que la acción se realiza en todos los usuarios.
 +
 +
Por ejemplo ponemos el valor de overcharge en 1 para todos los usuarios:
 +
pkusers --overcharge 1
 +
=Configuración extra=
 +
Además de lo configurado en pykota podemos automatizar la renovación de las cuotas utilizando cron.
 +
 +
Por ejemplo podemos agregar en /etc/cron.monthly/ un script, para que renueve las cuotas mensualmente, con el siguiente contenido:
 +
#!/bin/bash
 +
pkusers --balance 200
 +
=Fuentes y recursos=
 +
*/usr/share/pykota ejemplos de las configuraciones y ejemplos útiles
 +
*/usr/share/doc/pykota la documentación oficial de pykota y más ejemplos
 +
*http://www.pykota.com página oficial de pykota
 +
*http://osdir.com/ml/printing.pykota.user/2005-03/msg00048.html discusión del uso del accounter por hardware
 +
 +
[[Category:Documentación]]
 +
 +
  Ante cualquier duda o inconveniente no dudes en escribirnos un email a
 +
  '''soportelihuen arroba linti.unlp.edu.ar (Sin los espacios)'''
 +
  O visitar nuestros Foros.
 +
  '''http://lihuen.linti.unlp.edu.ar/foros'''

Última revisión de 13:47 27 nov 2008

Pykota es un software para implementar cuotas de impresión con cups o lprng. Permite acceder a la información de usuarios utilizando distintas bases de datos como postgresql y ldap.

En este documento se detalla como hacer una instalación sencilla de pykota utilizando postgresql como base de datos para guardar la información de impresoras y usuarios.

Para que los distintos usuarios puedan loguearse en el servidor para imprimir se puede usar el paquete de Lihuen 2.01 cupslogin que se integra con Gnome.

Funcionamiento

pykota agrega un backend para cups. Para utilizarlo debemos agregar en la url de la impresora "pykota://" al comienzo de el uri.

Por ejemplo una impresora compartida con samba con el siguiente uri.

smb://servidor/impresora

Pasaría a ser (para que pykota cuente los trabajos antes de enviarlos al servidor)

pykota://smb://servidor/impresora

O bien para el puerto paralelo

parallel:

Pasaría a ser

pykota://paralell:

Si no cambiamos el uri de esta manera pykota no podrá controlar los trabajos que pasan a la impresora.

Instalación

Descargar pykota desde http://www.pykota.com/software/pykota/download/

Descomprimir el paquete y ejecutar "./pksetup debian", este script va a hacer un "apt-get update" y a descargar otros paquetes. Además crea una configuración por defecto, instala postgresql y crea su base de datos de usuarios ahí.

Hay que chequear que se haya instalado pkpgcounter que es una aplicación de pykota para contar las páginas por software. Sino hay que descargarlo desde la página de pykota e instalarlo.

Archivos de configuración En /etc/pykota/ hay 2 archivos de configuración

pykota.conf 
que tiene que poder ser leído por todos los usuarios
pykotaadmin.conf 
con datos de la base de datos, solo el usuario pykota y el grupo pykota tienen que poder leerlo.
Este archivo tiene el nombre de usuario y contraseña para acceder a la base de datos de pykota en modo administrador.

En pykota.conf se pueden configurar la mayoría de las opciones de pykota (el resto se hace con unos comandos que pongo más adelante)

Dirección de correo a la que va a notificar cuando pykota falle

crashrecipient : pykotacrashed@librelogiciel.com

Configuración del servidor SMTP para las notificaciones

smtpserver : urldelservidordemail

Posfijo para las direcciones de mail de los usuarios. Si agregamos un usuario sin indicar su dirección de mail se asume este posfijo, si lo de abajo está en blanco se asume la url del servidor. Por ejemplo "pkusers --add usuario" asume que el usuario tiene la dirección de mail usuario@posfijo o usuario@urldelservidordemail dependiendo si llenamos el campo de abajo

maildomain :

Nombre del administrador

admin : cups

Email del administrador (para que reciba las notificaciones cuando los usuarios se quedan sin cuotas

adminmail :

El siguiente indica quien recibe un mail cuando un usuario se queda sin cuota las opciones son DevNull (no enviar mail), User, Admin y Both (el administrador y el usuario reciben un mail

mailto : both

Pasa los nombres de usuario a minúscula, esto es importante en dominios windows porque si este campo está seteado en "No" el usuario "IMPRESora" y "impresora" son dos usuarios distintos con cuotas distintas.

utolower : Yes

El siguiente campo determina que pasa cuando falla el backend (falla la impresión), se puede optar por descontar o no el trabajo de la cuota del usuario con charge y nocharge también existe la opción "retry:numDeIntentos:delayEnSegundosEntreReintentos" para que pykota vuelva a enviar el trabajo

onbackenderror : nocharge

Contadores de hojas

Método para contar las hojas antes de enviar el trabajo a la impresora (puede ser solamente por software)

preaccounter : software()

Método para contar las hojas luego de enviar el trabajo (puede ser hardware o software) en hardware hay que poner un script entre los paréntesis para que imprima en pantalla el contador de hojas de la impresora, esta información se puede obtener por el puerto paralelo, smnp o appletalk dependiendo de la impresora. En se pueden encontrar los archivos pagecount.* y el script waitprinter.sh para el accounter por hardware

accounter : software()

El campo de abajo indica que hacer si falla el accounter las opciones son stop o continue con stop se cancela el trabajo y con continue pueden inducirse trabajos gratuitos cuando falla el accounter

onaccountererror : stop

Configuración por impresora: se pueden configurar individualmente los accounters para cada impresora individualmente

[Virtual_Printer]
preaccounter : software()
accounter : software()

[Virtual_Printer_Pykota]
preaccounter : software()
accounter : software()

Gestión de cuentas de usuario

El siguiente campo define que hacer cuando un usuario que no está en la base de datos de pykota (entre otras cosas). Los valores posibles son deny, allow y external

  • deny: rechaza los trabajos de los usuarios que no estén en la base de datos
  • external: ejecuta un comando externo antes de permitirles imprimir

El ejemplo de abajo agrega a los usuarios que quieran imprimir pero no existen en la base de datos.

policy : external(pkusers --add --skipexisting --limitby noquota --description Added automatically\
$PYKOTAUSERNAME && edpykota --add --skipexisting --printer $PYKOTAPRINTERNAME $PYKOTAUSERNAME)

Comandos

Gestión de impresoras

Ejemplos de uso pkprinters, la herramienta para agregar y configurar impresoras en pykota

  • Agregar una impresora
pkprinters --add nombreImpresora
  • Agregar descripciones a las impresoras
pkprinters --description descImpresora nombreImpresora

Cada impresora puede tener una "tarifa" distinta a la hora de aplicar las cuotas.

  • Cambiar el costo de la impresión a 1 crédito por hoja
pkprinters --charge 1 nombreImpresora
  • Cambiar el costo de la impresión a 1 crédito por hoja y 2 créditos por trabajo
pkprinters --charge 1,2 nombreImpresora
  • Eliminar una impresora de la base de datos
pkprinters --delete nombreImpresora
  • Listar los datos de las impresoras
pkprinters -l

Gestión de usuarios

Ejemplos

  • Agregar 3 usuarios
pkusers --add usuario1 usuario2 usuario3
  • Establecer la política que se aplicará a la hora de cobrarle al usuario
pkusers --limitby balance

Las políticas de cobro que se pueden aplicar a un usuario son

  • quota : limita la impresión por el número de hojas por impresora.
  • balance : limita la impresión por el número de créditos en la cuenta (los créditos se pueden usar en cualquier impresora en este caso).
  • noquota : no limita las impresiones pero cuenta las hojas/trabajos de todas maneras.
  • nochange : no limita las impresiones ni descuenta créditos al usuario.
  • noprint : el usuario tiene prohibida la impresión
  • Balance: agregar 20 créditos a un usuario (pueden ser absolutos o relativos si se usa el prefijo + o -)
pkusers -b +20 usuario
  • Balance: establecer que el usuario tiene exactamente 20 créditos
pkusers -b 20 usuario
  • Eliminar un usuario
pkusers --remove usuario
  • Hacer que a un usuario las impresiones les cuesten el doble de lo establecido por la impresora.
pkusers --overcharge 2 usuario
  • Hacer que a un usuario las impresiones les cuesten la mitad de lo establecido por la impresora.
pkusers --overcharge 0.5 usuario
  • Listar usuarios
pkusers -L

Varios comandos pueden usarse sin pasar el nombre de usuario como argumento, en estos casos consideran que la acción se realiza en todos los usuarios.

Por ejemplo ponemos el valor de overcharge en 1 para todos los usuarios:

pkusers --overcharge 1

Configuración extra

Además de lo configurado en pykota podemos automatizar la renovación de las cuotas utilizando cron.

Por ejemplo podemos agregar en /etc/cron.monthly/ un script, para que renueve las cuotas mensualmente, con el siguiente contenido:

#!/bin/bash
pkusers --balance 200

Fuentes y recursos

 Ante cualquier duda o inconveniente no dudes en escribirnos un email a 
 soportelihuen arroba linti.unlp.edu.ar (Sin los espacios)
 O visitar nuestros Foros.
 http://lihuen.linti.unlp.edu.ar/foros