Commit 0c75b230ce0925023241fead5a30de7eee386a2d

Authored by Guto Carvalho
1 parent aa74b719
Exists in master

Adicionado o readme do modulo

Showing 1 changed file with 338 additions and 0 deletions   Show diff stats
README.md 0 → 100644
... ... @@ -0,0 +1,338 @@
  1 +# SEI AIO
  2 +
  3 +Módulo Puppet SEI AIO (All-in-One).
  4 +
  5 +#### Tabela de conteudo
  6 +
  7 +1. [Overview](#overview)
  8 +2. [Compatibilidade](#compatibilidade)
  9 +3. [Setup](#setup)
  10 +4. [Uso](#uso)
  11 +5. [Limites](#limites)
  12 +6. [Pendende](#pendente)
  13 +7. [Referencias](#referencias)
  14 +
  15 +## Overview
  16 +
  17 +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.
  18 +
  19 +## Autores e desenvolvedores
  20 +
  21 + * Guto Carvalho (gutocarvalho@instruct.com.br)
  22 + * Miguel Filho (gutocarvalho@instruct.com.br)
  23 +
  24 +## Colaboradores
  25 +
  26 + * Thiago Silva (e-mail)
  27 + * Jeimerson (e-mail)
  28 +
  29 +## Coordenadores
  30 +
  31 + * Christian
  32 + * Francisco
  33 + * Rogério
  34 + * Diego
  35 +
  36 +## Projeto e Parceria
  37 +
  38 +O desenvolvimento deste módulo ocorreu através de uma iniciativa do Ministério da Cultura e Instruct.
  39 +
  40 +## Compatibilidade
  41 +
  42 + * Esse módulo é compatível com CentOS >= 7
  43 + * Esse módulo foi escrito usando recursos do Puppet 4.
  44 +
  45 +## Setup
  46 +
  47 +### O que esse modulo gerencia?
  48 +
  49 +#### classe seaio::cron
  50 +
  51 + * Agendamento cron para script AgendamentoTarefaSEI.php
  52 + * Agendamento cron para script AgendamentoTarefaSIP.php
  53 + * Agendamento cron para limpeza do diretório ${docroot}/sei/upload/*
  54 + * Agendamento cron para limpeza do diretório ${docroot}/sip/upload/*
  55 +
  56 +#### classe seaio::database
  57 +
  58 + * Instalação do MariaDB Server (via puppetlabs-mysql)
  59 + * Configuração do MYSQL Server
  60 + * Criação de base de dados SEI
  61 + * Cria estrutura da base de dados do SEI
  62 + * Define nome da organização em tabelas do banco SEI
  63 + * Criação de base de dados SIP
  64 + * Cria estrutura da base de dados do SIP
  65 + * Define nome da organização em tables do banco SIP
  66 + * Define página inicial do SIP na base SIP
  67 + * Define página incial do SEI na base SEI
  68 + * Gerencia do serviço do MariaDB
  69 +
  70 +#### classe seiaio::fonts
  71 +
  72 + * Instala pacotes
  73 + * openssl, libxml2, curl, cabextract
  74 + * fontconfig, xorg-x11-font-utils
  75 + * Faz download do pacote msttcore-fonts-installer-2.6-1.noarch.rpm
  76 + * Instala pacote msttcore-fonts-installer-2.6-1.noarch.rpm
  77 +
  78 +#### classe seiaio::httpd
  79 +
  80 + * Instalação do Apache HTTPd (via puppetlabs-apache)
  81 + * Configurações de do MOD PREFORK
  82 + * Instalação do apache::mod::php
  83 + * Instalação do apache::mod::rewrite
  84 + * Instalação do apache::mod::ssl
  85 + * Criacao de VHOST ${dominio}
  86 + * Configuração de alias /sip
  87 + * Configuração de alias /infra_js
  88 + * Configuração de alias /infra_css
  89 + * Configuração de alias /infra_php
  90 + * Configurações de PHP para vhost
  91 + * Criação do diretório ${docroot} base para o SEI
  92 + * Gerenciar o serviço do httpd
  93 + * Configuração de perms para diretório base
  94 + * Criação do diretório ${seidados}
  95 + * Ajusta de permissão do binário 'wkhtmltopdf-amd64'
  96 +
  97 +#### classe seiaio::jdk
  98 +
  99 + * Instalação do JDK para o tomcat e jetty
  100 +
  101 +#### clase seiaio::jodc
  102 +
  103 + * Criação do group tomcat
  104 + * Criação do usuário tomcat
  105 + * Criação do diretório /opt/jodconverter
  106 + * Ajuste nas permissões do diretório /opt/jodconverter
  107 + * Instalação do tomcat
  108 + * Instalação do Jod Converter
  109 + * Instalação do LibreOffice
  110 + * Configuração do serviço do soffice
  111 + * Gerência do servico soffice
  112 + * Gerência do serviço tomcat/jodc
  113 +
  114 +#### classe seiaio::memcached
  115 +
  116 + * Instalação do pacote memcached
  117 + * Gerência do serviço memcached
  118 +
  119 +#### classe seiaio::php
  120 +
  121 + * Instalação de pacotes php
  122 + * php-cli
  123 + * php-pear
  124 + * php-bcmath
  125 + * php-gd
  126 + * php-imap (confirmar dependencia)
  127 + * php-ldap
  128 + * php-mbstring
  129 + * php-mysql
  130 + * php-pdo
  131 + * php-soap
  132 + * php-xml
  133 + * php-intl
  134 + * php-odbc
  135 + * php-snmp (confirmar dependencia)
  136 + * php-xmlrpc
  137 + * php-pspell
  138 + * php-pecl-apc
  139 + * php-pecl-apc-devel
  140 + * php-pecl-memcache
  141 + * php-zts
  142 + * Instalação do pacote gcc (para compilacao do uploadprogress)
  143 + * Instalação/compilação do uploadprogress via pecl
  144 + * Configuração do uploadprogess.ini para carregar no php.d
  145 + * Ajustes no php.ini para scripts do cron
  146 + * post_max_size
  147 + * default_charset
  148 + * short_open_tag
  149 + * default_socket_timeout
  150 + * include_path
  151 + * session_gc_maxlifetime
  152 + * date_timezone
  153 +
  154 +#### classe seiaio::seifontes
  155 +
  156 + * Download dos fontes do SEI de repositório GIT
  157 +
  158 +#### classe seiaio::solr
  159 +
  160 + * Criação do grupo solr
  161 + * Criação do usuário solr
  162 + * Criação do diretório /opt/solr
  163 + * Ajuste nas permissões do diretório /opt/solr
  164 + * Define configurações de inicilização do jetty
  165 + * Define configurações de inicialização do solr
  166 + * Cria diretório /var/log/solr
  167 + * Cria diretório /opt/solr/indices
  168 + * Cria diretorio e configura indices "protocolos"
  169 + * Cria diretório e configura indices "base de conhecimento"
  170 + * Cria diretório e configura indices "publicacao"
  171 + * Executa script para criação de indices no solrd
  172 +
  173 +## Uso das classes
  174 +
  175 +### classe principal
  176 +
  177 +Neste módulo temos uma classe pública, basta chamá-la que o sei será instalado.
  178 +
  179 +#### declarando classe seiaio (classe principal)
  180 +
  181 +```puppet
  182 + class { seiaio:
  183 + docroot => '/var/www/html/appsei',
  184 + diretorio_seidados => '/var/www/seidados'
  185 + root_mysql => 'OGbBv1rf87zNAr198cOA3ygyj',
  186 + sei_mysql_pass => 'mA8357mHmsJszBl',
  187 + sip_mysql_pass => 'mA8357mHmsJszBl',
  188 + mysql_ipaddr => 'localhost',
  189 + dominio => 'sei.funai.gov.br',
  190 + git_repo => 'git@bitbucket.org:instruct/seiaio.git',
  191 + sigla_organizacao => 'FUNAI',
  192 + nome_organizacao => 'Fundacao Nacional do Indio',
  193 +}
  194 +```
  195 +### classes privadas
  196 +
  197 +As classes privadas normalmente não são chamadas diretamente, a classe principal já faz a chamada a estas classes.
  198 +
  199 +#### declarando classe seiaio::fontes (classe privada)
  200 +
  201 +```puppet
  202 +class { 'seiaio::seifontes':
  203 + docroot => 'git@bitbucket.org:instruct/seiaio.git',
  204 + sei_git_repo => $git_repo,
  205 +}
  206 +```
  207 +
  208 +#### declarando classe seiaio::httpd (classe privada)
  209 +
  210 +```puppet
  211 + class { 'seiaio::httpd':
  212 + docroot => $docroot,
  213 + owner => $owner,
  214 + group => $group,
  215 + dominio => $dominio,
  216 + seidados => $diretorio_seidados,
  217 + }
  218 +```
  219 +
  220 +#### declarando classe seiaio::database (classe privada)
  221 +
  222 +```puppet
  223 +class { 'seiaio::database':
  224 + root_mysql => $root_mysql,
  225 + sei_mysql_pass => $sei_mysql_pass,
  226 + sip_mysql_pass => $sip_mysql_pass,
  227 + dominio => $dominio,
  228 + mysql_ipaddr => $mysql_ipaddr,
  229 + sigla_organizacao => $sigla_organizacao,
  230 + nome_organizacao => $nome_organizacao,
  231 +}
  232 +```
  233 +
  234 +#### delcarando classe sei::memcached (classe privada)
  235 +
  236 + include seiaio::memcached
  237 +
  238 +#### delcarando classe sei::jdk (classe privada)
  239 +
  240 + include seiaio::jdk
  241 +
  242 +#### delcarando classe sei::fonts (classe privada)
  243 +
  244 + include seiaio::fonts
  245 +
  246 +#### delcarando classe sei::php (classe privada)
  247 +
  248 +```puppet
  249 +class { 'seiaio::php':
  250 + docroot => '/var/www/html/seiapp',
  251 +}
  252 +```
  253 +
  254 +#### delcarando classe sei::cron (classe privada)
  255 +
  256 +```puppet
  257 +class { 'seiaio::cron':
  258 + docroot => $docroot,
  259 +}
  260 +```
  261 +
  262 +#### delcarando classe sei::solr (classe privada)
  263 +
  264 + include seiaio::solr
  265 +
  266 +#### delcarando classe sei::jodc (classe privada)
  267 +
  268 + include seiaio::jodc
  269 +
  270 +### repositório git do sei
  271 +
  272 +O código do sei tem que estar em um repositório GIT com a seguinte estrutura na raiz do repositório
  273 +
  274 + db
  275 + infra_css
  276 + infra_js
  277 + infra_php
  278 + sei
  279 + sip
  280 +
  281 +Se a estrutura não for essa o módulo não irá funcionar.
  282 +
  283 +## Instalação para iniciantes
  284 +
  285 +Em seu CentOS 7 instale o repositório do puppet
  286 +
  287 + # yum install http://yum.puppetlabs.com/el/7/PC1/x86_64/puppetlabs-release-pc1-0.9.2-1.el7.noarch.rpm -y
  288 +
  289 +Depois instale o puppet
  290 +
  291 + # yum install puppet-agent -y
  292 +
  293 +Você precisa instalar o módulo no diretório de módulos.
  294 +
  295 + # cd /etc/puppetlabs/code/environment/production/modules
  296 + # git clone https://bitbucket.org/culturagovbr/puppet-sei-aio.git seiaio
  297 +
  298 +Depois de instalado crie um manifest para chamar o módulo
  299 +
  300 + # vim /root/seiaio.pp
  301 +
  302 +E adicione o conteúdo abaixo, ajustando as informações conforme seu ambiente
  303 +
  304 +```puppet
  305 +class { seiaio:
  306 + docroot => '/var/www/html/appsei',
  307 + diretorio_seidados => '/var/www/seidados'
  308 + root_mysql => 'OGbBv1rf87zNAr198cOA3ygyj',
  309 + sei_mysql_pass => 'mA8357mHmsJszBl',
  310 + sip_mysql_pass => 'mA8357mHmsJszBl',
  311 + mysql_ipaddr => 'localhost',
  312 + dominio => 'sei.funai.gov.br',
  313 + git_repo => 'git@bitbucket.org:instruct/seiaio.git',
  314 + sigla_organizacao => 'FUNAI',
  315 + nome_organizacao => 'Fundacao Nacional do Indio',
  316 +}
  317 +```
  318 +
  319 +Após criar o manifest execute o puppet contra o manifest
  320 +
  321 + # puppet apply /root/seiaio.pp
  322 +
  323 +Aguarde a instalação do SEI, após a instalação use o manual do SEI para acessá-lo e configurá-lo.
  324 +
  325 +## Acesso pós-instalação
  326 +
  327 +
  328 +
  329 +## Limites
  330 +
  331 + 1. Só funciona em CentOS 7
  332 + 2. Só funciona com Puppet 4.2
  333 +
  334 +## Pendente
  335 +
  336 + 1. Inserir manual de acesso pós-instalação
  337 +
  338 +## Referências
0 339 \ No newline at end of file
... ...