README.md
Simec - 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
CentOS
$ sudo rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-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 --version 1.3.2
# puppet module install puppetlabs-apache --version 1.10.0
# puppet module install herculesteam-augeasproviders_postgresql --version 2.0.3
# puppet apply /tmp/meusimec.pp
obs.: /tmp/meusimec.pp é o arquivo com a declaração da classe (Veja mais em Uso).
Uso
Para instalar o SIMEC com banco local (o padrão é banco remoto) e parâmetros padrões:
class { '::simec':
vhost => 'meusimec.dominio',
install_db => true
}
Para instalar o SIMEC com banco remoto:
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.)
class {'::simec':
vhost => 'meusimec.dominio',
source => 'http://repositorioSVNdosimec',
datadir => '/var/www/simec',
vcsprovider => 'svn'
}
Exemplo de uma declaração com TODOS os parâmetros:
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).
- 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.