Essa é uma revisão anterior do documento!
Ambiente de desenvolvimento Pentaho
Visão Geral
Servidor de Produção
Servidor dedicado ao publicação de componentes BI.
Acesso via endereço https://relatorios.tce.go.gov.br.
Servidor de Desenvolvimento
Servidor dedicado ao desenvolvimento de componentes BI. Acesso via endereço https://devbi.tce.go.gov.br.
Servidor de Integração
Servidor dedicado à integração e execução de cargas ETL de modo automatizado.
Gerenciamento das versões das cargas
Foi utilizado o software livre Colabnet CSVN, uma interface web para gestão de repositórios Subversion.
Detalhes da configuração do CSVN estão descritos em Subversion Edge SVN Server .
Ambiente de Integração
Foi utilizado o software livre Jenkins. Para informações sobre a instalação e configuração, veja artigo Ambiente de Integração com Jenkins.
Criando Projeto
Como exemplo, vamos criar o projeto de construção RelatorioGeral_PROD..
- Na aba General:
- Preencher o campo Project name. Esse nome deve ser único no sistema, pois será criado um diretório no workspace do Jenkins com esse nome.
- Para limpar periodicamente o workspace, marcar a opção Discard old builds. Em Strategy marcar a opção Log Rotation. Em Max # of builds to keep informar o número máximo de builds que serão mantidos.
- Na aba Source Code Management:
- Informar os dados do repositório SVN onde estão guardados os arquivos das cargas. Em Repository URL colocar exatamente o endereço o repositório.
- Em Credentials informar um usuário com acesso ao repositório. O Jenkins permite cadastrar diversas credenciais.
- Em Check-out Strategy marcar a opção Emulate clean checkout by first deleting unversioned/ignored files, then 'svn update' para baixar apenas arquivos necessários.
- Na aba Build Triggers:
- marcar a opção Build periodically e informar Schedule quando a construção será realizada. Essa escrita segue o padrão do CRON do Linux.
- Na aba Build Environment:
- Marcar a opção Delete workspace before build starts para limpar o worspace do Jenkins antes de fazer um novo build.
- Na aba Build:
- Criar um Build Step do tipo Execute shell com o seguinte conteúdo:
#Nome do repositorio PDI export REPOSITORIO=RelatorioGeral #Nome do arquivo principal do Job, sem extensao export JOB=Job_Carga_DW #Path do repositorio. Normalmente o proprio Worspace da Build no Jenkins export PATHREPOSITORIO=$WORKSPACE #Executar scripts internos da transformacao bash /pentaho/scripts/executarjob.sh
Script de execução do Projeto PDI
Esse script fica salvo em /pentaho/scripts/executarjob.sh.
#!/bin/bash
##########################################################################################################################
## @Nome: executarjob.sh ##
## @Autor: Mauricio Barros ##
## @Data: Jan/2017 ##
## @Objetivo: a partir de uma chamada jenkins, criar arquivo de execução de job do PDI ##
## @Variaveis: 1. $REPOSITORIO: nome do repositorio PDI; 2. $PATHREPOSITORIO: Path do repositorio na maquina local ##
## @Algoritmo: 1. Criar arquivo xml "~/.kettle/repositories.xml" com configuracao do repositorio. ##
## 2. Criar arquivo executavel "~/.kettle/executar.sh" contendo a chamada para o programa PDI Kitchen ##
## 3. Executar arquivo "~/.kettle/executar.sh" ##
##########################################################################################################################
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<repositories>
<repository><id>KettleFileRepository</id>
<name>$REPOSITORIO</name>
<description>$REPOSITORIO</description>
<base_directory>$PATHREPOSITORIO</base_directory>
<read_only>N</read_only>
<hides_hidden_files>N</hides_hidden_files>
</repository>
</repositories>" > ~/.kettle/repositories.xml
echo "/opt/pdi/pdi-7/kitchen.sh -rep:$REPOSITORIO -job:$JOB -file:$PATHREPOSITORIO$JOB.kjb" > ~/.kettle/executar.sh
bash ~/.kettle/executar.sh





