pykota
DESCRIPTION
.TRANSCRIPT
Gerencia de Quotas de Impressao 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 comoobjetivo explicar a instalacao e o funcionamento do aplicativo Pykota junto a um gerente deimpressao 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 pornumero de paginas. Neste manual, o pykota sera instalado e configurado para gerenciar as cotasdas impressoras por preco de pagina.
1 Obtencao do Aplicativo Pykota
E possıvel obter o aplicativo pykota diretamente atraves do sistema de controle de versao (CVS)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 proce-dimento 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 variavel de sistemacorrespondente:
export CVS RSH= ”ssh”
� Digite o comando a seguir para baixar o arquivo como anonimo:
cvs -z3 -d:ext:[email protected]:/cvsroot/pykota co pykota
1
2 Requisitos de Sistema
Para o funcionamento do pykota voce devera ter os seguintes servicos devidamente instalados econfigurados:
� Servico de diretorio e autenticacao LDAP.Serao necessarias informacoes sobre o servidor deste, alem de liberdade para adicao de in-formacoes 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 Python-SNMP que deve ser obtido de uma URL especıfica, e para isso e aconselhavel o uso do programawget. Este pacote, entretanto, nao e obrigatorio. Neste manual trataremos mensagens de impressaopor software.
Satisfeitas as condicoes basta executar os seguintes comandos:
aptitude install python2.3 python2.3-egenix-mxdatetime python2.3-osd \ 1
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
1Este comando deve ser executado numa unica linha; a ‘\’, neste caso, indica apenas a quebra da linha e naodeve ser utilizada na execucao do comando.
2
3 Instalacao do aplicativo
Tendo todos os aplicativos acima devidamente instalados, voce deve seguir o procedimento abaixopara 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 instalacao com o seguinte comando:
python setup.py install
� Serao feitas algumas perguntas no processo. Voce pode responder sim <Y> para todas elas eo 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 alteracoes fazerem efeito:
/etc/init.d/slapd restart
4 Criacao da base de dados Pykota no LDAP
Esta secao indicara como se deve criar a base de dados do Pykota no LDAP, assim como usuariosespeciais para acessar esta base. Os exemplos citados nesta secao utilizam como base as confi-guracoes de LDAP do servidor LibertasBR, as entradas devem, portanto, ser alteradas de acordocom seu servidor.
A primeira coisa a fazer e iniciar a base de dados do Pykota. Para isso voce deve ter acesso aoseu servidor LDAP e permissoes para a criacao de entradas na base de dados. Abaixo e mostradoum exemplo de como deve ser esta base de dados:
dn: ou=PyKota,dc=libertasbr,dc=org,dc=br
ou: PyKota
objectClass: organizationalUnit
3
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 conteudo acima para um arquivo chamado pykota.ldif eadicione 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 usuariosdevem 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 conteudo acima para um arquivo chamado usuarios.ldife 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 asseguintes:
by dn="cn=pykotaadmin,dc=libertasbr,dc=org,dc=br" write
by dn="cn=pykotauser,dc=libertasbr,dc=org,dc=br" read
Observacoes:
� Estas configuracoes nao sao obrigatorias, mas facilitam a instalacao e melhoram o servico.
� Nao esqueca de mudar as entradas para serem compatıveis com seu servidor LDAP.
5 Arquivos de Configuracao do Pykota
Agora voce deve configurar seu pykota de acordo com as caracterısticas de seus servidores CUPSe 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 confi-guracoes citadas anteriormente. Altere os devidos campos com as configuracoes especıficas de seusservidores.
# 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 user’s 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 CAN’T WRITE TO YOUR PRINT QUOTA
# DATABASE, OTHERWISE ANY USER WHO COULD READ THIS CONFIGURATION
# FILE COULD CHANGE HIS PRINT QUOTA.
5
#
#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 user’s 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 tratadosneste texto.
6
Outro arquivo que deve ser alterado e o arquivo /etc/pykota/pykotadmin. Ele deve ser alteradopara a seguinte forma:
[global]
# Quota Storage administrator’s name and password
storageadmin: cn=pykotaadmin,dc=libertasbr,dc=org,dc=br
storageadminpw: [sua senha]
Observacao: E necessaria a alteracao dos dados de acordo com seu servidor LDAP.
6 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 passoe adicionar uma impressora para o uso do pykota, ou entao modificar uma impressora existentepara suportar o pykota.
Para fazer isso, basta voce seguir os procedimentos indicados pelo seu manual de instalacaode impressoras padrao, tomando cuidado apenas para escolher o dispositivo a ser utilizado pelaimpressora, que deve ser precedido de Pykota managed. Veja a figura a baixo:
7 Comandos Basicos
Agora o seu sistema de quotas de impressao esta pronto para o uso. A primeira tarefa a ser feitae 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 comandoedpykota. 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. Oexemplo 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 respectivaspaginas de manual2.
2execute “man [nome do comando]”para acessar tais paginas
8
A Creditos
Documento Gerencia de Quotas de Impressao com CUPS e Pykota
Direitos Autorais Reservados (c)Universidade Federal de Minas GeraisDepartamento de Ciencia da ComputacaoProjeto LibertasBRMarcus Flavio de Lima - [email protected]
Esta documentacao e livre; voce pode redistribuı-la e/ou modifica-la sob os termos da LicencaPublica 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 util, porem, sem
nenhuma garantia; nem mesmo a garantia implıcita de comerciabilidade ou adequacao a
uma finalidade especıfica.Consulte a Licenca Publica Geral do GNU para mais detalhes.
http://creativecommons.org/licenses/GPL/2.0/
http://creativecommons.org/licenses/GPL/2.0/legalcode.pt
9