From f1a508484a8474bff12e383a3128cdada78cff49 Mon Sep 17 00:00:00 2001 From: Rafael Gloria Date: Fri, 1 Jul 2016 10:49:02 -0300 Subject: [PATCH] First commit. --- README.md | 282 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 282 insertions(+), 0 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..e24ddcc --- /dev/null +++ b/README.md @@ -0,0 +1,282 @@ +# Simec - Sistema Integrado de Monitoramento, Execução e Controle + +#### Tabela de Conteúdo + +1. [Sobre](#sobre) +2. [Compatibilidade](#compatibilidade) +3. [Requisitos](#requisitos) +4. [Setup](#setup) +5. [ServerLess](#serverless) +6. [Uso](#uso) +7. [Classes](#classes) +8. [Parâmetros](#parametros) +9. [Acesso](#acesso) +10. [Pendente](#pendente) +11. [Referências](#referencias) + +## 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 + $ wget https://apt.puppetlabs.com/puppetlabs-release-stable.deb + $ sudo dpkg -i puppetlabs-release-stable.deb + $ 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/ + -- libgit2 0.21.2