Name Last Update
examples Loading commit data...
files Loading commit data...
manifests Loading commit data...
templates Loading commit data...
README.md Loading commit data...

README.md

SEI AIO

Módulo Puppet SEI AIO (All-in-One).

Tabela de conteudo

  1. Sobre
  2. Autores
  3. Colaboradores
  4. Coordenadores
  5. Projeto
  6. Requisitos
  7. Classes
  8. GIT
  9. Setup
  10. Acesso
  11. Pendente
  12. Referencias

Sobre

Este módulo puppet foi desenvolvimento com o objetivo de facilitar a instalação do SEI em ambiente virtualizado para fins de teste, treinamento ou mesmo para produção em pequenos ambientes.

Autores

Desenvolvedores e criadores do módulo

Colaboradores

Profissionais que deram apoio na revisão e testes do módulo

  • Thiago Ferreira
  • Jeimerson Chaves

Coordenadores

Coordenadores do projeto SEI na CGTI-MINC

  • Diego Aguilera
  • Rogério Pereira
  • Christian Miranda
  • Francisco Morais

Projeto

O desenvolvimento deste módulo ocorreu através de uma iniciativa do Ministério da Cultura e Instruct durante o projeto de implantação de SEI no MINC em 2015.

Requisitos

Do sistema operacional

  • Esse módulo deve ser utilizado em CentOS 6

Da versão do puppet

  • Esse módulo deve ser executado com Puppet 4

Do módulo puppet

  • Este módulo depende do módulo puppetlabs-apache
  • Este módulo depende do módulo puppetlabs-mysql
  • Este módulo depende do módulo puppetlabs-stdlib
  • Este módulo depende do módulo puppetlabs-vcsrepo
  • Este módulo depende do módulo puppetlabs-staging
  • Este módulo depende do módulo puppetlabs-concat
  • Este módulo depende do módulo puppetlabs-inifile

Do hypervisor

  • Hypervisor Virtualbox ou VMWARE Workstation
    • Pelo menos 4 gigas de RAM para subir a VM
    • Pelo menos 10 gigas de disco para subir a VM
    • VM com CentOS 6 instalado
    • Acesso a internet para instalação de pacotes

Do código fonte

  • Código fonte do SEI disponível em algum repositório GIT

Classes

O que esse modulo gerencia?

classe seaio::cron

  • Agendamento cron para script AgendamentoTarefaSEI.php
  • Agendamento cron para script AgendamentoTarefaSIP.php
  • Agendamento cron para limpeza do diretório ${docroot}/sei/upload/*
  • Agendamento cron para limpeza do diretório ${docroot}/sip/upload/*

classe seaio::database

  • Instalação do MariaDB Server (via puppetlabs-mysql)
  • Configuração do MYSQL Server
  • Criação de base de dados SEI
  • Cria estrutura da base de dados do SEI
  • Define nome da organização em tabelas do banco SEI
  • Criação de base de dados SIP
  • Cria estrutura da base de dados do SIP
  • Define nome da organização em tables do banco SIP
  • Define página inicial do SIP na base SIP
  • Define página incial do SEI na base SEI
  • Gerencia do serviço do MariaDB

classe seiaio::fonts

  • Instala pacotes
    • openssl, libxml2, curl, cabextract
    • fontconfig, xorg-x11-font-utils
  • Faz download do pacote msttcore-fonts-installer-2.6-1.noarch.rpm
  • Instala pacote msttcore-fonts-installer-2.6-1.noarch.rpm

classe seiaio::httpd

  • Instalação do Apache HTTPd (via puppetlabs-apache)
  • Configurações de do MOD PREFORK
  • Instalação do apache::mod::php
  • Instalação do apache::mod::rewrite
  • Instalação do apache::mod::ssl
  • Criacao de VHOST ${dominio}
    • Configuração de alias /sip
    • Configuração de alias /infra_js
    • Configuração de alias /infra_css
    • Configuração de alias /infra_php
    • Configurações de PHP para vhost
  • Criação do diretório ${docroot} base para o SEI
  • Gerenciar o serviço do httpd
  • Configuração de perms para diretório base
  • Criação do diretório ${seidados}
  • Ajusta de permissão do binário 'wkhtmltopdf-amd64'

classe seiaio::jdk

  • Instalação do JDK para o tomcat e jetty

clase seiaio::jodc

  • Criação do group tomcat
  • Criação do usuário tomcat
  • Criação do diretório /opt/jodconverter
  • Ajuste nas permissões do diretório /opt/jodconverter
  • Instalação do tomcat
  • Instalação do Jod Converter
  • Instalação do LibreOffice
  • Configuração do serviço do soffice
  • Gerência do servico soffice
  • Gerência do serviço tomcat/jodc

classe seiaio::memcached

  • Instalação do pacote memcached
  • Gerência do serviço memcached

classe seiaio::php

  • Instalação de pacotes php
    • php-cli
    • php-pear
    • php-bcmath
    • php-gd
    • php-imap (confirmar dependencia)
    • php-ldap
    • php-mbstring
    • php-mysql
    • php-pdo
    • php-soap
    • php-xml
    • php-intl
    • php-odbc
    • php-snmp (confirmar dependencia)
    • php-xmlrpc
    • php-pspell
    • php-pecl-apc
    • php-pecl-apc-devel
    • php-pecl-memcache
    • php-zts
  • Instalação do pacote gcc (para compilacao do uploadprogress)
  • Instalação/compilação do uploadprogress via pecl
  • Configuração do uploadprogess.ini para carregar no php.d
  • Ajustes no php.ini para scripts do cron
    • post_max_size
    • default_charset
    • short_open_tag
    • default_socket_timeout
    • include_path
    • session_gc_maxlifetime
    • date_timezone

classe seiaio::seifontes

  • Download dos fontes do SEI de repositório GIT

classe seiaio::solr

  • Criação do grupo solr
  • Criação do usuário solr
  • Criação do diretório /opt/solr
  • Ajuste nas permissões do diretório /opt/solr
  • Define configurações de inicilização do jetty
  • Define configurações de inicialização do solr
  • Cria diretório /var/log/solr
  • Cria diretório /opt/solr/indices
  • Cria diretorio e configura indices "protocolos"
  • Cria diretório e configura indices "base de conhecimento"
  • Cria diretório e configura indices "publicacao"
  • Executa script para criação de indices no solrd

Uso das classes

classe principal

Neste módulo temos uma classe pública, basta chamá-la que o sei será instalado.

declarando classe seiaio (classe principal)

  class { seiaio:
    docroot            => '/var/www/html/appsei',
    diretorio_seidados => '/var/www/seidados'
    root_mysql         => 'OGbBv1rf87zNAr198cOA3ygyj',
    sei_mysql_pass     => 'mA8357mHmsJszBl',
    sip_mysql_pass     => 'mA8357mHmsJszBl',
    mysql_ipaddr       => 'localhost',
    dominio            => 'sei.funai.gov.br',
    git_repo           => 'git@bitbucket.org:instruct/seiaio.git',
    sigla_organizacao  => 'FUNAI',
    nome_organizacao   => 'Fundacao Nacional do Indio',
}

classes privadas

As classes privadas normalmente não são chamadas diretamente, a classe principal já faz a chamada a estas classes.

declarando classe seiaio::fontes (classe privada)

class { 'seiaio::seifontes':
  docroot      => 'git@bitbucket.org:instruct/seiaio.git',
  sei_git_repo => $git_repo,
}

declarando classe seiaio::httpd (classe privada)

 class { 'seiaio::httpd':
   docroot  => $docroot,
   owner    => $owner,
   group    => $group,
   dominio  => $dominio,
   seidados => $diretorio_seidados,
 }

declarando classe seiaio::database (classe privada)

class { 'seiaio::database':
  root_mysql        => $root_mysql,
  sei_mysql_pass    => $sei_mysql_pass,
  sip_mysql_pass    => $sip_mysql_pass,
  dominio           => $dominio,
  mysql_ipaddr      => $mysql_ipaddr,
  sigla_organizacao => $sigla_organizacao,
  nome_organizacao  => $nome_organizacao,
}

delcarando classe sei::memcached (classe privada)

include seiaio::memcached

delcarando classe sei::jdk (classe privada)

include seiaio::jdk

delcarando classe sei::fonts (classe privada)

include seiaio::fonts

delcarando classe sei::php (classe privada)

class { 'seiaio::php':
  docroot => '/var/www/html/seiapp',
}

delcarando classe sei::cron (classe privada)

class { 'seiaio::cron':
  docroot => '/var/www/html/appsei',
}

delcarando classe sei::solr (classe privada)

include seiaio::solr

delcarando classe sei::jodc (classe privada)

include seiaio::jodc

Git

O código do sei tem que estar em um repositório GIT com a seguinte estrutura na raiz do repositório:

db
infra_css
infra_js
infra_php
sei
sip

Se a estrutura não for essa, o módulo não irá funcionar.

Setup

Em seu CentOS 7 instale o repositório do puppet

# yum install http://yum.puppetlabs.com/el/7/PC1/x86_64/puppetlabs-release-pc1-0.9.2-1.el7.noarch.rpm -y

Depois instale o puppet

# yum install puppet-agent -y

Você precisa instalar o módulo no diretório de módulos.

# cd /etc/puppetlabs/code/environment/production/modules
# git clone https://bitbucket.org/culturagovbr/puppet-sei-aio.git seiaio    

Depois de instalado crie um manifest para chamar o módulo

# vim /root/seiaio.pp

E adicione o conteúdo abaixo, ajustando as informações conforme seu ambiente

class { seiaio:
  docroot            => '/var/www/html/appsei',
  diretorio_seidados => '/var/www/seidados'
  root_mysql         => 'OGbBv1rf87zNAr198cOA3ygyj',
  sei_mysql_pass     => 'mA8357mHmsJszBl',
  sip_mysql_pass     => 'mA8357mHmsJszBl',
  mysql_ipaddr       => 'localhost',
  dominio            => 'sei.funai.gov.br',
  git_repo           => 'git@bitbucket.org:instruct/seiaio.git',
  sigla_organizacao  => 'FUNAI',
  nome_organizacao   => 'Fundacao Nacional do Indio',
}

Após criar o manifest execute o puppet contra o manifest

# puppet apply /root/seiaio.pp

Aguarde a instalação do SEI, após a instalação use o manual do SEI para acessá-lo e configurá-lo.

Acesso

Pendente

  1. Inserir manual de acesso ao sei pós-instalação
  2. Inserir informações para configuração de DNS/Hosts
  3. Criar testes unitários para classes puppet
  4. Criar testes de aceitação para classes puppet

Referências

Sobre o SEI/PEN

Sobre o módulo