README.md
imec - Sistema Integrado de Monitoramento, Execução e Controle
Tabela de Conteúdo
- Sobre
- Compatibilidade
- Requisitos
- Setup
- ServerLess
- Uso
- Classes
- Parâmetros
- Acesso
- Pendente
- Referências
Sobre
O SIMEC é uma ferramenta web escrita em linguagem PHP e com servidor de banco de dados PostgreSQL. O sistema em PHP é responsável pela lógica do servidor com interfaces do lado do cliente escritas em Javascript, enquanto o PostgreSQL faz o papel de repositório de dados.
Esse módulo pode instalar e configurar o Apache, baixar o código de um repositório remoto, instalar o banco de dados PostgresSQL localmente ou configurar o acesso a um banco remoto.
Compatibilidade
Compatível com CentOS 7 e Debian >= 7
- Escrito com recursos do Puppet 3.
- O Simec utiliza APACHE 2 e PostgreSQL 8.4 ou superior.
- Este módulo usa PostgreSQL 9.3.
Requisitos
* Pelo menos 2 gigas de RAM * Pelo menos 10 gigas de disco * Acesso a internet para instalação de pacotes ## Setup **Install Puppet** Instale o repositório do puppet para o seu Sistema Operacional. Debian 7 $ wget https://apt.puppetlabs.com/puppetlabs-release-wheezy.deb $ sudo dpkg -i puppetlabs-release-wheezy.deb Debian 8 $ wget https://apt.puppetlabs.com/puppetlabs-release-jessie.deb $ sudo dpkg -i puppetlabs-release-jessie.deb Pós instalação do repositório puppet para o Debian $ sudo apt-get update $ sudo apt-get install puppet-agent CentOS $ sudo rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm # yum install puppet-agent Em caso de instalações ServerLess, será preciso instalar o módulo no diretório de módulos de acordo com o S.O. Gerelamente no Debian: obs.: PASTADOMODULO deve ter o nome de **"simec"** Ex: /etc/puppet/modules/simec # cp -av PASTADOMODULO /etc/puppetlabs/code/environment/production/modules/PASTADOMODULO ou Geralmente no CentOS # cp -av PASTADOMODULO /etc/puppet/modules/PASTADOMODULO Dependendo do Sistema Operacional. ## ServerLess Após criar o manifest, execute o puppet em modo serverless. (obs.: é necessário instalar os módulos de dependência.) # puppet module install puppetlabs-vcsrepo # puppet module install puppetlabs-apache # puppet module install herculesteam-augeasproviders_postgresql # puppet apply /tmp/meusimec.pp obs.: /tmp/meusimec.pp é o arquivo com a declaração da classe (Veja mais em [Uso](#uso)). ## Uso Para instalar o SIMEC com banco local (o padrão é banco remoto) e parâmetros padrões: ```puppet class { '::simec': vhost => 'meusimec.dominio', install_db => true } ``` Para instalar o SIMEC com banco remoto: ```puppet class {'::simec': vhost => 'meusimec.dominio', install_db => false, db_name => 'nomedabase', db_username => 'usuariodeconexao', db_password => 'SenhaSuperForte', db_host => 'HostRemotodoBanco', #Ex: '192.168.1.1' } ``` Para especificar um repositório, DocumentRoot e um sistema de controle de versão diferente do git, use: (obs.: é necessário um repositório com permissão de clone (git) ou chekout (svn) sem exigir autenticação.) ```puppet class {'::simec': vhost => 'meusimec.dominio', source => 'http://repositorioSVNdosimec', datadir => '/var/www/simec', vcsprovider => 'svn' } ``` Exemplo de uma declaração com TODOS os parâmetros: ```puppet class {'::simec': vhost => 'meusimec.dominio', source => 'http://repositoriodosimec', datadir => '/var/www/simec', install_db => true, db_name => 'dbsimec', db_username => 'usrsimec', db_password => 'MinhaSenhaForte', db_host => '192.168.1.1', db_port => '5432', emails => 'meuemail@meudominio ; outroemail@outrodominio', vcsprovider => 'git', apacheuser => 'apache', repoensure => 'present' } ``` ## Classes ### Resumo das Classes #### Classe simec::apache * Instalação e configuração do Apache * Módulos do Apache * Configuração do Vhost com Aliases, etc. * Configuração do Parâmetros do PHP no Vhost via php_value e php_admin. #### Classe simec::postgresql * Instalação do Servidor PostgreSQL. * Configuração do Repositório oficial do PostgreSQL. * Instalação dos pacotes do PostGis (GeoProcessamento). * Criação da Base de Dados. * Configuração do pg_hba.conf. * Restore do Dump da Base de Dados. #### Classe simec::install * Instalação dos Pacotes php. * Instalação do Pacote do Provider para o VCSREPO (Controle de versionamento, git, svn, etc.). * Clone, etc. do Repositório com o código do SIMEC para o $datadir definido. #### Classe simec::config * Configuração dos arquivos do SIMEC via Template ERB. * Arquivo principal do simec (config.inc). * Arquivo de Configuração para conexão com o Banco (database.php). #### Classe simec::params * Configuração dos parâmetros padrões. * Definição do $apacheuser de acordo com o facter osfamily (RedHat e Debian). * Definição dos pacotes a serem instalados. #### Classe simec:init * Classe principal para saber como chamar (Veja mais em [Uso](#uso)). * Verificação do valor da variável $instal_db para decidir se há necessidade de instalação do banco localmente ou não. ## Parâmetros ### Informações do Parâmetros [**vhost**] Domínio que será configurado no vhost ex.: simec.seudominio.gov. **Valor Padrão: simec.dominio.gov.br** [**datadir**] Local em que o código será baixado e serão feitos os apontamentos no vhost. **Valor Padrão: /var/www/html/simec** [**apacheuser**] Usuário do serviço apache, definido automaticamente pelo facter osfamily caso seja RedHat ou Debian [**db_username**] Nome do usuário de conexão com o banco de dados. **Valor Padrão: user_simec** [**db_password**] Senha de conexão com o banco de dados. **Valor Padrão: 841j8K9J67p788x** [**db_name**] Nome da base de dados. **Valor Padrão: db_simec** [**db_host**] IP ou nome do servidor de banco de dados. **Valor Padrão: $::ipaddress** [**db_port**] Porta de Conexão com o servidor de banco de dados. **Valor Padrão: 5432** [**vcsprovider**] Pacote do Sistema de Controle de Versionamento. **Valor Padrão: git** [**repoensure**] Definição se será realizado o download do código via VCSREPO. **Valor Padrão: present** (Fazer Download) [**source**] URL do Repositório do código. **Valor padrão: https://softwarepublico.gov.br/gitlab/simec/simec.git** [**emails**] Emails configurados no arquivo de configuração principal do SIMEC config.inc para receber informações do sistema. [**install_db**] Variável booleana para definir se será instalado o banco de dados localmente. **Valor Padrão: false** ### Acesso Sistema instalado e o apontamento no DNS para o domínio escolhido ($vhost) ao menos na máquina com o navegador. Acesso ao endereço no navegador Ex:"http://simec.dominio.gov.br". Carregada a página de login, o sistema solicitará o CPF e a SENHA para acesso. Acesso administrativo: **CPF: 86274565426** **Senha: 123456** ### Pendente Configuração do módulo para outros Sistemas Operacionais. ### Referências * https://softwarepublico.gov.br/social/simec/
- Escrito com recursos do Puppet 3.