====== Ambiente de desenvolvimento Pentaho ====== ===== Visão Geral ===== {{ :pres:gerti:infraestrutura_de_ti:pentaho:arquiteturapentaho.png?800 |}} ===== 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 [[:pres:gerti:infraestrutura_de_ti:pentaho: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 [[pres:gerti:infraestrutura_de_ti:jenkins:instalacao_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. {{:pres:gerti:infraestrutura_de_ti:jenkins_01.png?800|}} * 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. {{:pres:gerti:infraestrutura_de_ti:jenkins_source_code_management.png?800|}} * 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. {{:pres:gerti:infraestrutura_de_ti:jenkins_buildtriggers.png?800|}} * 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. {{:pres:gerti:infraestrutura_de_ti:jenkins_buildenvironment.png?800|}} * 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 {{:pres:gerti:infraestrutura_de_ti:jenkins_build.png?800|}} === Script de execução do Projeto PDI === Esse script fica salvo em **/pentaho/scripts/executarjob.sh**. Necessário dar permissão de execução para o usuário //jenkins//. #!/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 " KettleFileRepository $REPOSITORIO $REPOSITORIO $PATHREPOSITORIO N N " > ~/.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