Você está na página 1de 9

Ger

encia de Quotas de Impress


ao com CUPS e
Pykota
Projeto LibertasBR
http://www.libertasbr.org.br
16 de junho de 2005

Direcionado para administradores de laboratorios de informatica, este documento tem como


objetivo explicar a instalacao e o funcionamento do aplicativo Pykota junto a um gerente de
impressao e uma base de dados (CUPS e LDAP respectivamente).
O Pykota e um aplicativo que gerencia as quotas de impressao do CUPS por preco ou por
n
umero de paginas. Neste manual, o pykota sera instalado e configurado para gerenciar as cotas
das impressoras por preco de pagina.

Obtenc
ao do Aplicativo Pykota

possvel obter o aplicativo pykota diretamente atraves do sistema de controle de versao (CVS)
E
ou comprando pacotes para seu sistema.
Para obter os pacotes pagos do aplicativo, voce pode acessar a pagina:
http://www.librelogiciel.com/software/PyKota/action\_Presentation
E para obter diretamente do CVS, voce deve ter o servico de CVS instalado e seguir o procedimento a seguir:
Escolha ou crie um diretorio para o arquivo ser baixado.
Digite o comando a seguir para adicionar o meio de acesso ao CVS na vari
avel de sistema

correspondente:
export CVS RSH= ssh
Digite o comando a seguir para baixar o arquivo como anonimo:

cvs -z3 -d:ext:anoncvs@savannah.nongnu.org:/cvsroot/pykota co pykota

Requisitos de Sistema

Para o funcionamento do pykota voce devera ter os seguintes servicos devidamente instalados e
configurados:
Servico de diretorio e autenticac
ao LDAP.

Serao necessarias informacoes sobre o servidor deste, alem de liberdade para adicao de informacoes na base de dados.
Servico de Impressao CUPS.

Sera necessario liberdade para modificacao ou instalacao de novos dispositivos de impressao.


Alem desses sevicos, alguns pacotes sao necessarios para a instalacao do Pykota. Sao eles:
Python v2.1 ou superior
Modulo Python eGenix mxDateTime
Modulo Python-JAXML
Modulo Python-SNMP
Modulo Python-OSD
Modulo Python-PSYCO
Ferramentas SNMP
Netatalk
Modulo Python-LDAP

Os pacotes acima podem ser obtidos atraves do repositorio apt, a nao ser o modulo PythonSNMP que deve ser obtido de uma URL especfica, e para isso e aconselhavel o uso do programa
wget. Este pacote, entretanto, nao e obrigatorio. Neste manual trataremos mensagens de impressao
por software.
Satisfeitas as condicoes basta executar os seguintes comandos:
aptitude install python2.3 python2.3-egenix-mxdatetime python2.3-osd \

python2.3-psyco python2.3-ldap
apt-get install snmp netatalk jaxml
wget http://kent.dl.sourceforge.net/sourceforge/pysnmp/pysnmp-3.4.2.tar.gz
tar -zxvf pysnmp-3.4.2.tar.gz
cd pysnmp-3.4.2
python setup.py install
1 Este comando deve ser executado numa u
nica linha; a \, neste caso, indica apenas a quebra da linha e n
ao
deve ser utilizada na execuc
ao do comando.

Instalac
ao do aplicativo

Tendo todos os aplicativos acima devidamente instalados, voce deve seguir o procedimento abaixo
para instalar o Pykota:
Entre no diretorio onde voce baixou o arquivo do CVS.
Descomprima o arquivo com o comando:

tar -zxvf [nome do arquivo]


Entre no diretorio criado:

cd [nome do diretorio]
Execute o Script de instalac
ao com o seguinte comando:

python setup.py install


Serao feitas algumas perguntas no processo. Voce pode responder sim <Y> para todas elas e

o processo de instalacao sera encerrado.


Copie o arquivo pykota.schema do diretorio [diretorio pykota]/initscripts/ldap/ para o di-

retorio /etc/ldap/schema, utilizando o comando:


cp [diretorio pykota]/initscripts/ldap/pykota.schema /etc/ldap/schema
Reinicie o servico LDAP para as alterac
oes fazerem efeito:

/etc/init.d/slapd restart

Criac
ao da base de dados Pykota no LDAP

Esta sec
ao indicara como se deve criar a base de dados do Pykota no LDAP, assim como usuarios
especiais para acessar esta base. Os exemplos citados nesta secao utilizam como base as configuracoes de LDAP do servidor LibertasBR, as entradas devem, portanto, ser alteradas de acordo
com seu servidor.
A primeira coisa a fazer e iniciar a base de dados do Pykota. Para isso voce deve ter acesso ao
seu servidor LDAP e permissoes para a criacao de entradas na base de dados. Abaixo e mostrado
um exemplo de como deve ser esta base de dados:

dn: ou=PyKota,dc=libertasbr,dc=org,dc=br
ou: PyKota
objectClass: organizationalUnit

dn: ou=Impressoras,ou=PyKota,dc=libertasbr,dc=org,dc=br
ou: Impressoras
objectClass: organizationalUnit
dn: ou=UQuotas,ou=PyKota,dc=libertasbr,dc=org,dc=br
ou: UQuotas
objectClass: organizationalUnit
dn: ou=GQuotas,ou=PyKota,dc=libertasbr,dc=org,dc=br
ou: GQuotas
objectClass: organizationalUnit
dn: ou=Jobs,ou=PyKota,dc=libertasbr,dc=org,dc=br
ou: Jobs
objectClass: organizationalUnit
dn: ou=LastJobs,ou=PyKota,dc=libertasbr,dc=org,dc=br
ou: LastJobs
objectClass: organizationalUnit

Para adicionar estas entradas, copie o conte


udo acima para um arquivo chamado pykota.ldif e
adicione este arquivo `a base de dados com o seguinte comando:
ldapadd -f pykota.ldif -x -W -D [usuario administrativo]
Agora sera necessaria a adicao de usuarios para manipular essa base de dados. Os usuarios
devem ter os seguintes atributos:

dn: cn=pykotauser,dc=libertasbr,dc=org,dc=br
cn: pykotauser
objectClass: simpleSecurityObject
objectClass: organizationalRole
description: Usuario do PyKota
userPassword: {CRYPT}us6EKZMmfBVwI
dn: cn=pykotaadmin,dc=libertasbr,dc=org,dc=br
cn: pykotaadmin
objectClass: simpleSecurityObject
objectClass: organizationalRole
description: Administrador do PyKota
userPassword: {CRYPT}usKrzwzEa4ibs

Para adicionar estes usuarios, copie o conte


udo acima para um arquivo chamado usuarios.ldif
e adicione este arquivo `a base de dados com o seguinte comando:
4

ldapadd -f usuarios.ldif -x -W -D [usuario administrativo]


Para dar as devidas permissoes para estes usuarios, e necessario alterar o arquivo:
/etc/ldap/slapd.conf .
Devem ser inseridas duas linhas adicionais na secao access to *. Essas linhas devem ser as
seguintes:

by dn="cn=pykotaadmin,dc=libertasbr,dc=org,dc=br" write
by dn="cn=pykotauser,dc=libertasbr,dc=org,dc=br" read

Observa
c
oes:
Estas configurac
oes nao sao obrigatorias, mas facilitam a instalacao e melhoram o servico.
Nao esqueca de mudar as entradas para serem compatveis com seu servidor LDAP.

Arquivos de Configurac
ao do Pykota

Agora voce deve configurar seu pykota de acordo com as caractersticas de seus servidores CUPS
e LDAP. O arquivo de configuracao geral a ser editado e o /etc/pykota/pykota.conf.
Abaixo estao dispostas as linhas alteradas com os valores corretos de acordo com as configuracoes citadas anteriormente. Altere os devidos campos com as configuracoes especficas de seus
servidores.

# the postgresql value is deprecated, use pgstorage instead.


# storagebackend: pgstorage
# Quota Storage Server hostname (and optional port)
# e.g. db.example.com:5432
# storageserver: localhost
#
# name of the Quota Storage Database
#storagename: pykota
#
# Quota Storage normal users name and password
# These two fields contain a username and optional password
# which may give readonly access to your print quota database.
#
# PLEASE ENSURE THAT THIS USER CANT WRITE TO YOUR PRINT QUOTA
# DATABASE, OTHERWISE ANY USER WHO COULD READ THIS CONFIGURATION
# FILE COULD CHANGE HIS PRINT QUOTA.

#
#storageuser: pykotauser
# storageuserpw: Comment out if unused, or set to Quota Storage user
password
# LDAP example, uncomment and adapt it to your own configuration :
storagebackend: ldapstorage
storageserver: ldap://127.0.0.1:389
storagename: dc=libertasbr,dc=org,dc=br
storageuser: cn=pykotauser,dc=libertasbr,dc=org,dc=br
storageuserpw: [sua senha]
#
# Here we define some helpers to know where
# to plug into an existing LDAP directory
userbase: ou=usuarios,dc=libertasbr,dc=org,dc=br
userrdn: uid
balancebase: ou=usuarios,dc=libertasbr,dc=org,dc=br
balancerdn: uid
groupbase: ou=grupos,dc=libertasbr,dc=org,dc=br
grouprdn: cn
printerbase: ou=Impressoras,ou=PyKota,dc=libertasbr,dc=org,dc=br
printerrdn: cn
jobbase: ou=Jobs,ou=PyKota,dc=libertasbr,dc=org,dc=br
userquotabase: ou=UQuotas,ou=PyKota,dc=libertasbr,dc=org,dc=br
groupquotabase: ou=GQuotas,ou=PyKota,dc=libertasbr,dc=org,dc=br
lastjobbase: ou=LastJobs,ou=PyKota,dc=libertasbr,dc=org,dc=br
...
# a possible value:

newuser: attach(posixAccount, warn)

newuser: attach(posixAccount, warn)


newgroup: attach(posixgroup, warn)
# LDAP attribute which stores the users email address
usermail : mail
#
# Choose what attribute contains the list of group members
# common values are : memberUid, uniqueMember, member
groupmembers: memberUid
...

O restante do arquivo trata de dados de servico de mensagens e email que nao serao tratados
neste texto.
6

Outro arquivo que deve ser alterado e o arquivo /etc/pykota/pykotadmin. Ele deve ser alterado
para a seguinte forma:

[global]
# Quota Storage administrators name and password
storageadmin: cn=pykotaadmin,dc=libertasbr,dc=org,dc=br
storageadminpw: [sua senha]

necessaria a alterac
Observa
c
ao: E
ao dos dados de acordo com seu servidor LDAP.

Adicionar Impressora com suporte a Pykota

O primeiro passo e adicionar um novo backend para o CUPS poder utilizar o pykota. Para faze-lo,
execute os seguintes comandos:
cd /usr/lib/cups/backend
ln -s /usr/share/pykota/cupspykota cupspykota
/etc/init.d/cupsys restart
Agora o CUPS ja e capaz de enxergar dispositivos para utilizar o pykota. O proximo passo
e adicionar uma impressora para o uso do pykota, ou entao modificar uma impressora existente
para suportar o pykota.
Para fazer isso, basta voce seguir os procedimentos indicados pelo seu manual de instalacao
de impressoras padrao, tomando cuidado apenas para escolher o dispositivo a ser utilizado pela
impressora, que deve ser precedido de Pykota managed. Veja a figura a baixo:

Comandos Basicos

Agora o seu sistema de quotas de impressao esta pronto para o uso. A primeira tarefa a ser feita
e popular a base de dados com as impressoras e usuarios do pykota.
Para adiconar uma impressora ao sistema de quotas voce pode utilizar o comando pkprinters.
O exemplo abaixo adiciona a impressora impressora1 com o custo de 0.05 por folha.
pkprinters add charge 0.05 impressora1
Para adicionar usuarios que possam utilizar esta impressora, voce deve utilizar o comando
edpykota. O exemplo abaixo adiciona os usuarios Jose e Joao `a impressora1 com um balanco
(saldo) de 10 unidades:
edpykota add -P impressora1 limitby balance balance 10 Jose Joao
Para ver as quotas de impressao dos usuarios, voce pode utilizar o comando repykota. O
exemplo abaixo mostra a quota de impressao de todos os usuarios da impressora1:
7

Figura 1: Exemplo do dispositivo da impressora


repykota printer impressora1
Para maiores informacoes sobre como utilizar estes comandos, basta consultar suas respectivas
paginas de manual2 .

2 execute

man [nome do comando]para acessar tais p


aginas

Cr
editos

Documento Ger
encia de Quotas de Impress
ao com CUPS e Pykota
Direitos Autorais Reservados (c)
Universidade Federal de Minas Gerais
Departamento de Ciencia da Computacao
Projeto LibertasBR
Marcus Flavio de Lima - mflima@dcc.ufmg.br

Esta documentacao e livre; voce pode redistribu-la e/ou modifica-la sob os termos da Licenca
P
ublica Geral GNU conforme publicada pela Free Software Foundation; tanto na sua versao 2,
como qualquer versao posterior (a seu criterio) .
A distribuicao desta documentacao e feita na expectativa de que ela seja u
til, porem, sem
nenhuma garantia; nem mesmo a garantia implcita de comerciabilidade ou adequa
c
ao a
uma finalidade especfica.
Consulte a Licenca P
ublica Geral do GNU para mais detalhes.

http://creativecommons.org/licenses/GPL/2.0/
http://creativecommons.org/licenses/GPL/2.0/legalcode.pt

Você também pode gostar