Sei sulla pagina 1di 43

Procedimento para instalação do Pykota e

JPykotaGUI.
Versão 0.0.1a

VOLUME I
Histórico das revisões

Data Versão Descrição Autor


11/01/12 0.0.1 Criação do documento. Rogério
Tomassoni
14/01/12 0.0.1a Adição de exemplo de fila roteada Rogério
para Pykota item 5.6. Correção do
ano na versão 0.0.1.
Sumário
1. Introdução................................................................................................................................6
1.1 Objetivos deste documento...............................................................................................6
1.2 Missão................................................................................................................................6
2. Origem do nome JPykotaGUI....................................................................................................6
2.1 Origem do projeto..............................................................................................................6
2.1.1 Os BUGS.......................................................................................................................6
3. Requisitos mínimos..................................................................................................................7
3.1 Requisitos de hardware......................................................................................................7
3.2 Requisitos de software.......................................................................................................7
4. Instalando o sistema operacional.............................................................................................7
5. Instalando o PyKota................................................................................................................19
5.1 Instalando dependências..................................................................................................19
5.2 Instalando o Pykota..........................................................................................................22
5.3 Configurando Postgresql..................................................................................................28
5.4 Criando banco de dados Pykota......................................................................................28
6. Instalando o JPykotaGUI.........................................................................................................31
6.1 Criando usuário para o primeiro acesso...........................................................................34
7. Dicas......................................................................................................................................36
8. Arquivos de exemplo..............................................................................................................39

Figuras
Figura 1- Iniciando instalação sistema operacional (so)...............................................................8
Figura 2- Instalando so.................................................................................................................8
Figura 3- Selecionado linguagem do so........................................................................................9
Figura 4- Dê um nome ao servidor...............................................................................................9
Figura 5- Configurando relógio.....................................................................................................9
Figura 6- Particionando o disco..................................................................................................10
Figura 7- Selecionado o disco.....................................................................................................10
Figura 8- Criando as novas partições..........................................................................................10
Figura 9- Iniciar criação da partição de troca swap....................................................................11
Figura 10- Criando partição de torca swap.................................................................................11
Figura 11- Definindo tamanho....................................................................................................11
Figura 12- Definindo tipo da partição.........................................................................................11
Figura 13- Selecionado onde deve inciar a partição...................................................................12
Figura 14- Alternado tipo do sistema de arquivos......................................................................13
Figura 15- Escolha Swap.............................................................................................................13
Figura 16- Finalize a criação da swap..........................................................................................14
Figura 17- Inciando a criação da partição raiz /..........................................................................14
Figura 18- Criando a nova partição.............................................................................................14
Figura 19- Definindo tamanho da nova partição........................................................................15
Figura 20- Definindo tipo da nova partição................................................................................15
Figura 21- Definindo tipo do sistema de arquivos e ponto de montagem /...............................15
Figura 22- Finalizando particionamento e gravando as alterações.............................................16
Figura 23- Efetivando particionamento......................................................................................16
Figura 24- Instalando sistema operacional básico......................................................................16
Figura 25- Criando usuário.........................................................................................................17
Figura 26- Efetivando criação usuário........................................................................................17
Figura 27- Criando senha para usuário.......................................................................................18
Figura 28- Confirmando senha mesmo que insegura.................................................................18
Figura 29- Configurando criptografia..........................................................................................18
Figura 30- Configurando proxy (Se existir na sua rede configure-o)...........................................18
Figura 31- Configurando os pacotes disponíveis, aguarde.........................................................18
Figura 32- Configurando atualizações do so...............................................................................19
Figura 33- Selecionando os pacotes necessários........................................................................19
Figura 34- Instalando GRUB........................................................................................................19
Figura 35- Instalação do so completo.........................................................................................20
Figura 36- Sistema instalado e operante....................................................................................20
Figura 37- Logando no sistema...................................................................................................21
Figura 38- Atualizando pacotes disponíveis................................................................................21
Figura 39- Apt-get atualizado.....................................................................................................21
Figura 40- Instalando dependências...........................................................................................22
Figura 41- Confirmando instalação das dependências...............................................................22
Figura 42- Baixando pkipplib com wget .....................................................................................22
Figura 43- Instalando pkipplib-0.07 ...........................................................................................23
Figura 44- Instalando PyKota126fixed........................................................................................23
Figura 45- Instalando unzip........................................................................................................23
Figura 46- unzip PyKota126fixed.zip...........................................................................................24
Figura 47- Checando dependências Pykota................................................................................25
Figura 48- Checando arquivos....................................................................................................26
Figura 49- Pykota instalado........................................................................................................26
Figura 50- Checando arquivos novamente.................................................................................27
Figura 51- Executando comando pkusers –help........................................................................27
Figura 52- Criando diretório.......................................................................................................27
Figura 53- Copiando arquivos.....................................................................................................27
Figura 54- Executando comando pkusers –help........................................................................28
Figura 55- Reiniciando Postgresql..............................................................................................29
Figura 56- Verificando serviço Postresql....................................................................................29
Figura 57- Criando a base de dados............................................................................................30
Figura 58- Executando comando pkusers –help com sucesso...................................................30
Figura 59- Executando comando pkprinters –help....................................................................30
Figura 60- Executando comando pkprinters –help com sucesso................................................31
Figura 61- Copiando o backend cupspykota...............................................................................31
Figura 62- Exemplo fila roteada para pykota..............................................................................32
Figura 63- Verificando serviço do Tomcat..................................................................................32
Figura 64- Reiniciando o serviço do Tomcat...............................................................................33
Figura 65- Página inicial Tomcat.................................................................................................33
Figura 66- Painel de controle Tomcat.........................................................................................33
Figura 67- Arquivo principal do JPykotaGUI..............................................................................34
Figura 68- Realizando deploy do JPyKotaGUI.............................................................................34
Figura 69- Deploy JPyKotaGUI ok..............................................................................................34
Figura 70- JPyKotaGUI no ar.......................................................................................................34
Figura 71- Login JPyKotaGUI.......................................................................................................35
Figura 72- Criando usuário........................................................................................................35
Figura 73- Primeiro acesso.........................................................................................................37
Figura 74- Alterando idioma navegador.....................................................................................38
Figura 75- Idioma alterado.........................................................................................................38
Figura 76- Login em inglês..........................................................................................................39
1. Introdução
1.1 Objetivos deste documento

Descrever e especificar como proceder a instalação do sistema operacional,


banco de dados, o backend Pykota, contêiner web Tomcat e o JPykotaGUI.
A final deste documento o sistema estará apto a ser usado em ambiente de
produção. Lembrando que o JPykotaGUI foi desenvolvido apenas com base de dados
Postgresql logo ele não irá funcionar com Active Directory, LDAP e com MySQL
ainda não foi testado (Planos para o futuro).

Publico alvo: Administradores e técnicos.

1.2 Missão
Dar suporte para as atividades relacionadas a instalação e configuração do
JpykotaGUI.
Este documento serve para instalação tanto em ambiente real como em ambiente
virtualizado. Logo se você possui uma máquina real com boa capacidade de
processamento e ela esteja ociosa crie um servidor de impressão virtualizado nela.
Espera-se que o leitor conheça o básico sobre Linux e seus comandos, pois não
entraremos nesse mérito.

2. Origem do nome JPykotaGUI

J → Derivado de Java.
PyKota → Nome do backend original (Py deriva de Python, linguagem utilizada
pelo desenvolvedor, Kota origina do ato de mensurar o que está sendo utilizado).
GUI → Do inglês Graphical User Interface (interface gráfica do utilizador).

2.1 Origem do projeto

Devido a dificuldade de gerenciar cotas no CUPS, encontrei a solução Pykota


então nas minhas férias resolvi criar uma interface gráfica para o projeto oficial.
Nasce então o JPykotaGUI este projeto não tem vinculo algum com projeto
oficial PyKota, logo qualquer erro ou BUG encontrado no mesmo, não diz respeito ao
autor do PyKota oficial.
As funções do Pykota continuam sendo feitas sem qualquer intervenção ou seja
ele permanece intacto.

2.1.1 Os BUGS

O projeto foi desenvolvido até o presente momento por uma única pessoa
(Rogério Tomassoni A. Jr.), logo ele deve esta cheio de Bugs de todas as maneiras.Logo
use por sua conta e risco. O fator fundos/investimento também pesa, pois todos os testes
que realizei foram feitos em ambiente virtual (Inclusive as filas de impressão).
Para que o software amadureça é preciso testes mais eficiente e em ambiente
real, busco doações por este motivo também (Para poder adquirir impressoras e
insumos). Doem (Através dos botões paypal encontrados no JPykotaGUI ), quem tiver
uma base de dados Postgres já em produção e bem populada e puder enviar para
jpykotagui@yahoo.com.br também será muito bem vindo, ela ajudará com o
desenvolvimento de relatórios mais detalhados.
Os Bugs e sugestões também podem ser enviados para este e-mail, porém
responderei assim que possível.

3. Requisitos mínimos
Novamente volto a lembrar a falta de fundos/investimento faz com que muitos
testes não sejam feitos. Doem

3.1 Requisitos de hardware


Não sei dizer quais os requisitos mínimos de hardware a não ser aqueles
exigidos para instalação do Ubuntu Server, que pode ser obtido através do site
oficial.
Realizei a instalação de todo ambiente em máquina virtual e a mesma ocupou
aproximadamente 2,5G.
Em nível de processamento não foi realizado testes mais detalhados, porem no
item 7 mostrarei como avaliar se o seu ambiente esta adequado.

3.2 Requisitos de software


Para instalação será necessário:
1. ISO do Ubuntu Server 11.10;
2. Postgresql 9.1;
3. CUPS 1.5.0;
4. PyKota 1.26_fixes_unofficial (Disponivel no sourceforge junto
com o projeto JPykotaGUI
http://sourceforge.net/projects/jpykotagui/files/PyKota/PyKota12
6fixed.zip/download) (Devido a falta de fundos/investimento não
possuo a versão oficial, por esse motivo doem);
5. Tomcat 6.
6. OpenOffice, é utilizado para gerar custo através da opção util.

4. Instalando o sistema operacional


De posse da ISO do Ubuntu server proceda a instalação como segue abaixo.
Caso já possua o sistema em funcionamento pule para o item 6.
Figura 1- Iniciando instalação sistema operacional (so).

Figura 2- Instalando so.


Figura 3- Selecionado linguagem do so.

Figura 4- Dê um nome ao servidor.

Figura 5- Configurando relógio.


Figura 6- Particionando o disco.

Figura 7- Selecionado o disco.

Figura 8- Criando as novas partições.


Figura 9- Iniciar criação da partição de troca swap.

Figura 10- Criando partição de torca swap.

Figura 11- Definindo tamanho.

Figura 12- Definindo tipo da partição.


Figura 13- Selecionado onde deve inciar a partição.

Figura 14- Alternado tipo do sistema de arquivos.

Figura 15- Escolha Swap.


Figura 16- Finalize a criação da swap.

Figura 17- Inciando a criação da partição raiz /.

Figura 18- Criando a nova partição.


Figura 19- Definindo tamanho da nova partição.

Figura 20- Definindo tipo da nova partição.

Figura 21- Definindo tipo do sistema de arquivos e ponto de montagem /.


Figura 22- Finalizando particionamento e gravando as alterações.

Figura 23- Efetivando particionamento.

A partir deste ponto começará a instalação do sistema operacional. Aguarde.

Figura 24- Instalando sistema operacional básico.


Figura 25- Criando usuário.

Figura 26- Efetivando criação usuário.

Figura 27- Criando senha para usuário.

Figura 28- Confirmando senha mesmo que insegura.


Figura 29- Configurando criptografia.

Figura 30- Configurando proxy (Se existir na sua rede configure-o).

Figura 31- Configurando os pacotes disponíveis, aguarde.

Figura 32- Configurando atualizações do so.

Na próxima janela selecione os pacotes necessários para o funcionamento do


nosso servidor.
Figura 33- Selecionando os pacotes necessários.

Figura 34- Instalando GRUB.


Figura 35- Instalação do so completo.

Figura 36- Sistema instalado e operante.

5. Instalando o PyKota
Para instalar o Pykota podemos seguir este documento ou usar o documento
disponível pelo próprio desenvolvedor em: http://www.pykota.com/wiki/how-to-install-
pykota-on-ubuntu-10-04-x86
Aqui descrevo os passos necessários para o funcionamento do mesmo de modo
mais enxuto.

5.1 Instalando dependências


Precisamos instalar todas a dependências que o Pykota necessita para funcionar.
Logue no servidor com usuário criado (Figura 25,26 e 27) e depois eleve sua
permissão como root.
Figura 37- Logando no sistema.

Instale as dependências da seguinte maneira:

• Atualize os pacotes do so:

Figura 38- Atualizando pacotes disponíveis.

Após atualizar será exibido algo semelhante a figura abaixo.

Figura 39- Apt-get atualizado.

• Instale as dependências da seguinte maneira:


# apt-get install pkpgcounter python-dev python-jaxml python-reportlab
python-reportlab-accel python-psyco python-pygresql python-osd python-egenix-
mxdatetime python-imaging python-pysnmp4 python-chardet python-pam
Figura 40- Instalando dependências.

Este processo deve demorar um pouco, muita calma, espere.

Figura 41- Confirmando instalação das dependências.

• Instale a lib pkipplib:


Precisamos baixar o pacote e instalar manualmente esta lib, vamos usar o utilitario wget
para baixar, depois desempacotaremos e descompactaremos e finalmente instalaremos
com o python, logo faça:
Dica: O pacote será baixado no diretório no qual o comando foi executado. Guarde
todos os pacotes, você pode precisar deles no futura para uma restauração/instalação
mais rápida no futuro.
# wget "http://www.pykota.com/software/pkipplib/download/tarballs/pkipplib-
0.07.tar.gz"
# tar -zxvf pkipplib-0.07.tar.gz && cd pkipplib-0.07 && python setup.py install
O símbolos && quer dizer que o comando mais a esquerda só será executado se o da
direita foi bem sucedido, veja que estamos execuando os 3 comandos em uma única
linha, mas cada um terá sua vez.

Figura 42- Baixando pkipplib com wget .

Após baixado, instale.


Figura 43- Instalando pkipplib-0.07 .

Dependências instaladas, vamos prosseguir estamos quase lá.

5.2 Instalando o Pykota


Chegou a hora de instalar o Pykota propriamente dito, mais atenção daqui para
frente, pois existe muitos detalhes.
Baixe o pacote do site oficial, porém a versão que usei na escrita de
desenvolvimento foi a versão 1.26_fixes, disponibilizei ela no sourgeforge em
http://sourceforge.net/projects/jpykotagui/files/PyKota/PyKota126fixed.zip/dow
nload

Para baixa use o utilitário svn como mostra no site oficial


# svn export http://svn.pykota.com/pykota/branches/1.26_fixes pykota
# cd /tmp/pykota

Lembre-se o svn também vai baixar o pacote no diretório que o comando foi
executado.
Com o pacote na mão vamos a instalação.

Figura 44- Instalando PyKota126fixed.

Veja fui descompactar e não possuía o utilitário unzip, então o gerenciador


orientou a instalação, façamos.

Figura 45- Instalando unzip.


Quando executar novamente o comando unzip PyKota126fixed.zip, terá como
exibição algo semelhante a figura 46.

Figura 46- unzip PyKota126fixed.zip.


O diretório PyKota126fixed será criado, entre nele e prossiga.
Dentro do diretório vamos checar as dependências que o Pykota precisa, se faltar
alguma vamos instalar antes de prosseguir com a instalação.
# cd /usr/local/
# python checkdeps.py
Figura 47- Checando dependências Pykota.

Note que obtivemos 4 não conformidades:


1. Checking for Python-SQLite availability : NO.
ERROR : Python-SQLite not available !
Python-SQLite is mandatory if you want to use SQLite as the quota
database backed.

2. Checking for MySQL-Python availability : NO.


ERROR : MySQL-Python not available !
MySQL-Python is mandatory if you want to use MySQL as the quota database
backend.

3. Checking for Python-LDAP availability : NO.


ERROR : Python-LDAP not available !
Python-LDAP is mandatory if you plan to use an LDAP

4. Checking for Python-Psyco availability : NO.


ERROR : Python-Psyco not available !
Python-Psyco speeds up parsing of print files, you should use it.
See http://psyco.sourceforge.net/

Não devemos nos preocupar com nenhuma, pois: A 1,2 e 3, dizem respeito aos
conectores de bancos de dados Python-SQLite, MySQL-Python e Python-LDAP,
como vamos usar o Postgresql, não importa estes avisos. E o 4 diz respeito a um plugin
que faz com que seja exibido estilo um popup no modo gráfico do Linux, como também
não vamos usar, ignore o aviso. Eu nunca usei essa opção, não sei nada sobre ela.
Logo tudo em ordem, vamos instalar, antes note o diretório /usr/local/bin,
atenção aqui, anote os arquivos que você tiver aqui, pois precisaremo mexer aqui assim
que instalamos o Pykota.
Aqui é onde será enviado os arquivos de funcionamento do Pykota,
precisaremos ajusta-los.

Figura 48- Checando arquivos.

Então vamos instalar.

# python setup.py install


Após executar um longuíssima lista de arquivos será exibida, o resultado final é
semelhante a figura 49.

Figura 49- Pykota instalado.

Note a versão que estamos usando pykota-1.26_fixes_unofficial.egg-info, não


esqueçam se achou esse conteúdo e os aplicativos uteis, doe.
Volte no diretório /usr/loca/bin e veja os arquivos que o script de instalação
criou.
Figura 50- Checando arquivos novamente.

Encontrei problemas com os arquivos do Pykota quando instalei pela primeira


vez, precisar editar todos os arquivos, por esse motivo temos que verificar os corretos,
assim não editamos arquivo desnecessários ou erroneos.
Neste ponto já temos o Pykota instalado, vamos testar executando um de seus
comandos. Vamos executar o help de um comando, assim:
#pkusers –help
Veja o retorno.

Figura 51- Executando comando pkusers –help.

Veja que a mensagem de erro, está nos dizendo que ou os arquivos de


configuração do Pykota estão faltando ou estão com permissão errada e/ou ambas
opções.
Vamos então corrigir, para isso vamos criar o diretório pykota em /etc, depois
fazer uma cópia dos arquivos de configuração fornecidos junto com o pacote de
instalação para o novo diretório e depois vamos ajustar o arquivo.

Figura 52- Criando diretório.

# cp /usr/local/share/pykota/conf/pykota.conf.sample /etc/pykota/pykota.conf
# cp /usr/local/share/pykota/conf/pykotadmin.conf.sample
/etc/pykota/pykotadmin.conf

Figura 53- Copiando arquivos.

Agora vamos editar os arquivos de configuração, por conter muitas opções vou
explicar as básicas, as demais fica a documentação do próprio arquivo que é auto
explicativo.
Altere os seguintes parâmetros do arquivo pykota.conf, deixando como os
abaixo:
• storagebackend: pgstorage → Banco de dados utilizado, o JPykotaGUI
também utiliza essa informação para estabelecer a conexão com o banco.
• storageserver: IP_DO_SERVIDOR → IP onde o banco de dados está
sendo executado.
• storagename: pykota → Nome do banco de dados, JPykotaGUI também
utiliza este parâmetro.
• storageuser : pykotauser → Nome do usuário com permissão de acesso
ao banco de dados, JPykotaGUI também utiliza este parâmetro.
• storageuserpw : readonlypw → Senha do usuário com permissão de
acesso (RW, leitura e escrita) ao banco de dados, JPykotaGUI também
utiliza este parâmetro.
• accounter: software(/usr/bin/pkpgcounter) → Como será contabilizado as
páginas. Verifique sempre se o pkpgcounter encontra-se neste caminho,
ajuste-o conforme seu ambiente.
• preaccounter: software(/usr/bin/pkpgcounter) → Igual ao item anterior,
só que este serve para pré contagem.

Agora vamos alterar o arquivo pykotadmin.conf deixando como os abaixo:


• storageadmin : pykotaadmin → Nome do usuário com permissão
de acesso ao banco de dados, JPykotaGUI também utiliza este
parâmetro.
• storageadminpw : readwritepw → Senha do usuário com
permissão de acesso (RW, leitura e escrita) ao banco de dados,
JPykotaGUI também utiliza este parâmetro.

Note que deixei as senhas padrões mas isso não é legal, use senhas seguras.

Arquivos configurados vamos testar novamente o comando pkusers –help.

Figura 54- Executando comando pkusers –help.

O erro mudou, agora está nos dizendo que ou a autenticação com banco de dados
falhou ou ele não existe ou não esta estabelecendo conexão ou todos juntos.
Mas no nosso caso faltou configurar o Postgresql bem como criar a base de
dados para o funcionamento do Pykota. Então vamos lá.
5.3 Configurando Postgresql

Vamos configurar o Postgresql alterando os arquivos de configuração localizados em


/etc/postgresql/9.1/main.
◦ Vamos adicionar a seguinte linha no arquivo pg_hba.conf
host all all 10.0.1.0/16 trust
O endereço de rede deve ser ajusta conforme sua rede 10.0.1.0/16
◦ E vamos alterar a linha do arquivo postgresql.conf
De: #listen_addresses = 'localhost' para listen_addresses = '*'

Após a alteração reinicie o postgresql

Figura 55- Reiniciando Postgresql.

Figura 56- Verificando serviço Postresql.

5.4 Criando banco de dados Pykota


Com Postgresql ok, vamos então criar a base de dados do Pykota, antes vamos
editar o script de criação do banco.
Ele esta localizado em /usr/local/share/pykota/postgresql e se chama pykota-
postgresql.sql
As linhas que precisam ser alteradas são:
• CREATE DATABASE pykota WITH ENCODING='UTF-8'; para
CREATE DATABASE pykota;
• CREATE USER pykotauser WITH UNENCRYPTED PASSWORD
'readonlypw' NOCREATEDB NOCREATEUSER;
• CREATE USER pykotaadmin WITH UNENCRYPTED PASSWORD
'readwritepw' NOCREATEDB NOCREATEUSER;

Note os itens em negrito, estes tem esta exatamente igual aos configurados nos
arquivos pykota.conf e pykotadmin.conf em /etc.

Alterado o arquivo vamos então executa-lo, para isso precisamos estar logado
com usuário do postgresql e usar o console de comando do postgresql que é o psql.
Logo faça
#su - postgres -c "psql -f /usr/local/share/pykota/postgresql/pykota-postgresql.sql
template1"
Ao final da execução será exibido algo parecido com a figura 57.
Figura 57- Criando a base de dados.

Uma boa ferramenta para manipular o banco de dados é pgAdmin III versão
1.14.0.
Até aqui tudo certo, então vamos novamente testar o comando pkusers –help
Se obtiver um resultado como da figura 58, bingo, está quase tudo funcionando,
pode ficar feliz.

Figura 58- Executando comando pkusers –help com sucesso.

Comando funcionou corretamente, vamos então testar um outro, o pkprinters –


help.

Figura 59- Executando comando pkprinters –help.

Note o erro, demorei para achar de onde vinha. Lembra la na figura 50, que
estávamos verificando os arquivos em /usr/local/bin? Os arquivos de funcionamento do
Pykota, então este é o erro que acontece se não ajustarmos cada um deles removendo o
espaço que existe entre o ! e / ( #!AQUI O ESPAÇO/usr/bin/env python).
Remova e execute o comando navamente.
Figura 60- Executando comando pkprinters –help com sucesso.

Notem os pequenos detalhes, foi útil para você então lembre-se do esforço e doe.

Voi-lá edite todos os arquivos e remova os espaços, após isso ter sido feito já
temos então o Pykota instalado.

5.5 Roteando impressoras do CUPS


Precisamos fazer com que os trabalhos de impressão sejam interceptados pelo Pykota,
para isso devemos mover o backend cupspykota para pasta do CUPS, lembre-se de
retirar o espaço dele também.
#cp /usr/local/share/pykota/cupspykota /usr/lib/cups/backend/cupspykota
Também é preciso criar um usuário para o pykota, logo faça:
#adduser --system --group --home /etc/pykota --gecos PyKota pykota

Figura 61- Copiando o backend cupspykota.

Não mostrarei como criar impressora pela interface do CUPS por existir muitos
tutoriais na internet de como fazer tal procedimento. O que precisa fica claro é que após
criada as impressoras no CUPS é preciso editar o arquivo /etc/printers.conf e colocar o
backed do pykota na linha DeviceURI da impressora.
Subsituir de DeviceURI smb://tomassoni@/10.0.1.2/FreePDF para
DeviceURI cupspykota:smb://tomassoni@/10.0.1.2/FreePDF
Verifique o log em /var/log/syslog, qualquer erro será exibido lá.

5.6 Exemplo fila de impressão roteada Pykota

Figura 62- Exemplo fila roteada para pykota.

6. Instalando o JPykotaGUI
Para colocarmos o JPykotaGUI para funcionar, precisaremos apenas do arquivo
jpykotagui-war-0.0.1.tar.gz.
Mas antes precisamos verificar se o contêiner web TomCat está funcionando,
para isso faça:
# ps aux | grep tomcat

Figura 63- Verificando serviço do Tomcat.

Note que esta ok, Tomcat funcionando, vamos editar o arquivo de configuração
para que possamos ter acesso ao painel de controle.
É através do painel de controle que faremos o que se chama de deploy, fazer
com que o Tomcat forneça nosso aplicativo.
Vamos então adiconar ao arquivo tomcat-users.xml localizado em /etc/tomcat6
a seguinte linha:
<user password="SENHA" roles="manager,admin"
username="administrador"/>
Coloque uma senha no lugar da palavra SENHA e manager,admin são nomes
de usuário, pode escolher a critério.
Alterado, reinicie o Tomcat e faça o teste de acesso por um navegador web.
#/etc/init.d/tomcat6 restart
Figura 64- Reiniciando o serviço do Tomcat.

Digite o IP do servidor seguido da porta padrão do Tomcat que é a 8080, ficando


assim: http://10.0.2.15:8080
Informe o usuário e a senha que foram configurados no arquivo tomcat-
users.xml e então o acesso será liberado figura 64.

Figura 65- Página inicial Tomcat.

Figura 66- Painel de controle Tomcat.


Com o arquivo war jpykotagui-war-0.0.1.tar.gz em mãos, descompacte e
desempacote.
# tar -zxvf jpykotagui-war-0.0.1.tar.gz
Será criado o arquivo jpykotagui.war

Figura 67- Arquivo principal do JPykotaGUI.

De posse do arquivo vamos fazer o deploy no painel de controle do Tomcat.

Figura 68- Realizando deploy do JPyKotaGUI.

Figura 69- Deploy JPyKotaGUI ok.

Figura 70- JPyKotaGUI no ar.

Clique sobre o link e veja o JPykota funcionando figura 69.


Figura 71- Login JPyKotaGUI.

Até aqui tudo certo, mas não temos ainda um usuário para logar no JPykotaGUI,
pois ele usa uma base de dados interna (HSQLDB) para armazenar as senhas.
A base interna faz referencia a base de dados Postgresql do Pykota, ou seja, para
que possamos logar o usuário tem que existir na base do Pykota e um registro também
tem que existir na base interna.
Como é nosso primeiro acesso vamos editar esse arquivo na mão.

6.1 Criando usuário para o primeiro acesso


Vamos criar o usuário (O nome não importa) com comando do Pykota assim:
# pkusers --add admin

Figura 72- Criando usuário.

Usuário criado com sucesso.


Agora precisamos editar a base de dados interna. A base de dados interna é
composta pro dois arquivos (jpykotagui.properties e jpykotagui.script), o
jpykotagui.script é o arquivo que mantem os usuários e suas senhas.
As senhas são composta por HASH, logo não é possível identifica-la.
Quando é feito o deploy do arquivo .war no Tomcat ele é desempacotado em
/var/lib/tomcat6/webapps/ no diretório jpykotagui e a base de dados (Arquivos) por sua
vez estão localizados em /var/lib/tomcat6/webapps/jpykotagui/database.
Importante: Sempre que for preciso fazer undeploy e deploy, faça
cópia/backp destes arquivos, pois eles serão perdidos. Logo se você tiver uma base com
muitos usuários e perder as senhas, irá gerar transtornos.
Deixe como boa prática sempre fazer backup destes arquivos, principalmente o
jpykotagui.script.
O conteúdo do arquivo padrão é:

CREATE SCHEMA PUBLIC AUTHORIZATION DBA


CREATE MEMORY TABLE USERS(ID INTEGER NOT NULL PRIMARY KEY,
PASSWORD VARCHAR(40) NOT NULL, ADMIN BOOLEAN NOT NULL)
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SET WRITE_DELAY 05
SET SCHEMA PUBLIC
INSERT INTO USERS
VALUES(1,'40bd001563085fc35165329ea1ff5c5ecbdbbeef',true)

A linha INSERT INTO USERS


VALUES(1,'40bd001563085fc35165329ea1ff5c5ecbdbbeef',true) é a mais importante, note
que a medida que for inserindo usuários haverá uma nova linha para cada um deles.
Explicando:
1 → É o userid da tabela de usuário do Postgresql, logo aqui ele está relacionado com o
usuário admin que criamos com comando pkusers –add admin (Caso aconteça erro verifique o
userid do usuário na tabela users do Postgres e deixe ambos iguais.)
40bd001563085fc35165329ea1ff5c5ecbdbbeef → Esta string de 40bits é um HASH
SHA-1 da senha 123. Isso mesmo a partir da senha 123 foi gerado o SHA-1 que deu origem a
esta string. Logo a senha padrão é 123 para o usuário admin.
true → É o identificador que da permissão total ao JPykotaGUI, isso quer dizer que
temos permissão de usar qualquer função do sistema. Para usuários esse paramento será false.

Pronto agora podemos logar no JPykotaGUI e usa-lo. Lembre-se de trocar as senhas


padrões.

Caso apresente qualquer anormalidade ou comportamento diferente, sempre olhe o log


do Tomcat em /var/log/tomcat6/catalina.out, os erros serão todos exibidos aqui.
#tail -f /var/log/tomcat6/catalina.out
No primeiro acesso dê atenção ao userid das tabelas elas tem que ser idênticas, caso
contrário não fará o login.
Caso precise alterar o jpykotagui.script pare o Tomcat com a opção stop, altere
o arquivo e start novamente.
Figura 73- Primeiro acesso.

Pronto JPykota em ação, lembre-se doe, assim consigueremos com que o projeto
evolua. Contribua baixe os fontes e adicione novas funcionalidades.

7. Dicas
1. Os icones podem ser alterados no através do caminho:
/var/lib/tomcat6/webapps/jpykotagui/images, basta salvar as novas imagens com mesmo
nome. Lembre-se de para o Tomcat e subi-lo novamente para entrar em vigor as
alterações;
2. Todos os textos são internacinalizaveis, ou seja da para traduzir para
qualquer língua basta alterar todos arquivos localizados em:
/var/lib/tomcat6/webapps/jpykotagui/messages e
/var/lib/tomcat6/webapps/jpykotagui/validation, copie o arquivo e mude para o localer
desejado, edite-o substituindo os
valore após o sinal de =; Caso você tenha traduzido algum envie para estarmos
adicionando ao repositório.
Para testar o locale troque a linguagem padrão do navegador mozzila em:Ferramentas
→ Opções → Aba Conteúdo → Idiomas → Selecionar
No presente momento só temos dois idiomas inglês e português do Brasil.
Figura 74- Alterando idioma navegador.

Figura 75- Idioma alterado.


Figura 76- Login em inglês.

3. Quais os principais arquivos a ser feito o backup


Sempre faça backup dos seguintes arquivos:
• /etc/cups/cupsd.conf → Arquivo de configuração do CUPS.
• /etc/cups/printers.conf → Usado pelo CUPS, todas impressoras.
• /etc/pykota/pykota.conf e /etc/pykota/pykotadmin.conf →
Arquivos de configuração do Pykota
• /var/lib/tomcat6/webapps/jpykotagui/database/jpykotagui.script
→ Contém todas as senhas dos usuários cadastrados e suas
permissões.IMPORTANTISSIMO.
Lembre-se todo deploy ele será sobrescrevido , não durma.
• /etc/samba/smb.conf → Contém as configurações do
compartilhamento via Samba.
Além do arquivos de configuração do sistema, fica a critério de cada um fazer os que
acha válido.

4. Como saber se seu servidor de impressão da conta do recado, simples,


verifique o numero de processadores que você tem, tanto socket quanto o
core e verifique o load average com os comando top e/ou uptime, alem
da informação estar disponivel no painel de administração do
JPykotaGUI.
O valor do load average não deve ultrapassar o número de processadores. Ex. Suponha
que você tenha apenas um processador com apenas um núcleo, um load average
saudável
não deve passar de 0.99, 0.99,0.99. Para cada nucleo o load pode chegar no máximo a 1.
Outro exemplo, suponha que exista 1 processador com 4 núcleos, logo o load poderia
chegar a 3.99,3.99,3.99.
Se o seu servidor chega em valores altos é preciso dar um upgrade nele, se não as
impressões começam a ficar lentas.
5. Outro aplicativo legal é o Lambda Pobe, para instala-lo basta fazer o
deploy no Tomcat e acessa-lo
(http://www.lambdaprobe.org/d/index.htm).
Gostou, serviu para algo nosso sistema...Então lembre-se doe, ajude o projeto a
prossiguir.

8. Arquivos de exemplo
• cups.conf
#
#
# Sample configuration file for the CUPS scheduler. See "man cupsd.conf" for
a
# complete description of this file.
#

# Log general information in error_log - change "warn" to "debug"


# for troubleshooting...
LogLevel warn

# Deactivate CUPS' internal logrotating, as we provide a better one,


especially
# LogLevel debug2 gets usable now
MaxLogSize 0

# Administrator user group...


SystemGroup lpadmin

# Only listen for connections from the local machine.


Listen 631
Listen /var/run/cups/cups.sock

# Show shared printers on the local network.


Browsing Off
BrowseOrder allow,deny
BrowseAllow all
BrowseLocalProtocols CUPS dnssd
BrowseAddress @LOCAL

# Default authentication type, when authentication is required...


DefaultAuthType Basic

# Web interface setting...


WebInterface Yes

# Restrict access to the server...


<Location />
Order deny,allow
Allow From *

</Location>

# Restrict access to the admin pages...


<Location /admin>
Order deny,allow
Allow From *

</Location>

# Restrict access to configuration files...


<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
</Location>

# Set the default printer/job policies...


<Policy default>
# Job/subscription privacy...
JobPrivateAccess all
JobPrivateValues none
SubscriptionPrivateAccess default
SubscriptionPrivateValues default

# Job-related operations must be done by the owner or an administrator...


<Limit Create-Job Print-Job Print-URI Validate-Job>
Order deny,allow
</Limit>

<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs


Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-
Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-
Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-
Document>
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>

# All administration operations require an administrator to authenticate...


<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class
CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>

# All printer operations require a printer operator to authenticate...


<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-
Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-
Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer
Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>

# Only the owner or an administrator can cancel or authenticate a job...


<Limit Cancel-Job CUPS-Authenticate-Job>
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>

<Limit All>
Order deny,allow
</Limit>
</Policy>

# Set the authenticated printer/job policies...


<Policy authenticated>
# Job/subscription privacy...
JobPrivateAccess all
JobPrivateValues none
SubscriptionPrivateAccess default
SubscriptionPrivateValues default

# Job-related operations must be done by the owner or an administrator...


<Limit Create-Job Print-Job Print-URI Validate-Job>
AuthType Default
Order deny,allow
</Limit>
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs
Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-
Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-
Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-
Document>
AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>

# All administration operations require an administrator to authenticate...


<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class
CUPS-Delete-Class CUPS-Set-Default>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>

# All printer operations require a printer operator to authenticate...


<Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-
Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-
Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer
Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>

# Only the owner or an administrator can cancel or authenticate a job...


<Limit Cancel-Job CUPS-Authenticate-Job>
AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>

<Limit All>
Order deny,allow
</Limit>
</Policy>

#
#

• smb.conf
#======================= Global Settings =======================

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP

# server string is the equivalent of the NT Description field


server string = Servidor de impressao

# This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no

# What naming service and in what order should we use to resolve host names
# to IP addresses
; name resolve order = lmhosts host wins bcast

#### Networking ####


# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
interfaces = 127.0.0.0/8 eth0

# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
bind interfaces only = yes

#### Debugging/Accounting ####

# This tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/log.%m

# Cap the size of the individual log files (in KiB).


max log size = 1000

# If you want Samba to only log through syslog then set the following
# parameter to 'yes'.
# syslog only = no

# We want Samba to log a minimum amount of information to syslog. Everything


# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something higher.
syslog = 0

# Do something sensible when Samba crashes: mail the admin a backtrace


panic action = /usr/share/samba/panic-action %d

print command= lpr -r -P'%p' -J'%s %J' %s"

####### Authentication #######

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
security = user

# You may wish to use password encryption. See the section on


# 'encrypt passwords' in the smb.conf(5) manpage before enabling.
encrypt passwords = true

# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = tdbsam

obey pam restrictions = yes

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
unix password sync = yes

# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-
muenchen.de> for
# sending the correct chat script for the passwd program in Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:*
%n\n *password\supdated\ssuccessfully* .
# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
pam password change = yes

# This option controls how unsuccessful authentication attempts are mapped


# to anonymous connections
map to guest = bad user

########## Printing ##########

load printers = yes


printing = cups
printcap name = cups

[printers]
comment = All Printers
browseable = yes
path = /var/spool/samba
printable = yes
guest ok = yes
read only = yes
create mask = 0700

# Windows clients look for this share name as a source of downloadable


# printer drivers
# Coloque aqui todos os drivers de todas as impressoras que você possui em
#sua rede.
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no

Potrebbero piacerti anche