Manual do Administrador do Sistema Cacic¶
Informações sobre o Sistema Cacic
O sistema CACIC - Configurador Automático e Coletor de Informações Computacionais trabalha com o uso de software para as plataformas MS-Windows e GNU/Linux e funciona essencialmente a partir do trabalho de módulos agentes, onde utiliza como base conceitual a metodologia MaSE (Multi-agentCACIC - Configurador Automático e Coletor de informações Computacionais Software Engineering). Na plataforma MS-Windows, os agentes são programas compilados e não criam dependências ao seu funcionamento. Dessa forma, qualquer empresa/órgão que queira utilizar o CACIC não necessitará de softwares adicionais para a implantação do Sistema.
O Cacic é capaz de fornecer um diagnósco preciso do parque computacional e disponibilizar informações como o número de equipamentos e sua distribuição nos mais diversos órgãos, os tipos de softwares utilizados e licenciados, configurações de hardware, entre outras. Também pode fornecer informações patrimoniais e a localização física dos equipamentos, ampliando o controle do parque computacional e a segurança na rede.
Requisitos para Implantação¶
Requisitos Mínimos
HARDWARE | |
---|---|
CPU: | Pentium/AMD quadcore (ou superior) |
Memória RAM: | 4 Gbytes |
Disco rígido: | 100 Gbytes |
Interface de rede |
SOFTWARE | ||
---|---|---|
SISTEMA OPERACIONAL: | Sistema desenvolvido para qualquer distribuição GNU/Linux;) | |
Servidor Web: | PHP5: 5.4.13 | |
Servidor de banco de dados: | PostgreSQL 9.3 | |
PHP: |
|
|
|
||
|
||
|
||
|
||
|
||
APACHE: |
|
Para o Agente Linux são necessários o ambiente de desenvolvimento em C;
Maiores informações podem ser obtidas nos sítios dos respectivos fabricantes: Apache; MYSQL; PHP; Source Forge; PROFTPD
Pré condição: É necessário estar conectado a internet, e banco de dados PostgreSQL instalado.
Instalação Manual¶
Este roteiro irá orientá-lo como fazer uma NOVA instalação do Gerente Cacic 3.1 em máquinas com Sistema Operacional Linux.
A instalação ocorre basicamente por linhas de comando através do Terminal, para tanto, acesse o Painel Inicial (Launcher) que fica localizado no canto superior esquerdo de sua tela.
Após aparecer a opção de busca digite “Terminal
” e pressione a tecla “Enter
”. Agora seguiremos com os comandos dentro do Terminal.
Caso não o encontre utilize as teclas de atalho “CTRL + ALT + T
”.
Utilizando o Terminal
Observação sobre o uso do terminal:
Dentro do terminal o cursor ficará sempre depois de “$
” ou “#
”.
Sempre que o comando a ser copiado for precedido por “$
”, significa que este é um comando de usuário normal;
Sempre que o comando a ser copiado for precedido por “#
”, significa que este é um comando de usuário “root
”.
Caso o comando a ser copiado não seja precedido por “$
” nem por “#
”, significa que este comando pode ser executado sem restrições.
Para acessar como “root
” digite “sudo su
”.
Foi utilizado para este tutorial o “Terminal” em idioma inglês, então as confirmações apresentadas aqui estão em (Yes/Y ou No/N), caso seu sistema esteja em português confirme com (Sim/S ou Não/N).
Siga a instalação passo a passo. Caso algum procedimento venha a falhar, não desconsidere pois pode ocasionar outros erros. Corrija-os antes de prosseguir com a instalação.
Instalação em CentOS 6¶
Preparação inicial.
- Instale o software de suporte:
cd /tmp
yum install wget java-1.8.0-openjdk
- Configure mirror da globo.com para software SCL
echo "
[SCL]
name=CentOS-\$releasever - SCL
baseurl=http://mirror.globo.com/centos/6/SCL/\$basearch/
gpgcheck=1
Priority=1
enabled=1
gpgkey=http://mirror.globo.com/centos/RPM-GPG-KEY-CentOS-Testing-6" >
/etc/yum.repos.d/CentOS-SCL-globo.repo
rpm --import http://mirror.globo.com/centos/RPM-GPG-KEY-CentOS-Testing-6
- PHP
yum install php54 php54-php php54-php-xml php54-php-pdo php54-php-gd php54-php-mcrypt php54-php-pgsql php54-php-intl php54-php-pecl-apc
- Habilite nova versão do PHP
scl enable php54 "php -v"
source /opt/rh/php54/enable
rm /etc/httpd/conf.d/php.conf
/usr/sbin/apachectl -t
/etc/init.d/httpd restart
- Instale o mcrypt
cd /tmp
wget
https://www.softwarecollections.org/repos/remi/php54more/epel-6-x86_64/php54-php-mcrypt-5.4.16-3.el6.x86_64.rpm
- Corrija o fuso horário do php:
vi /opt/rh/php54/root/etc/php.ini
date.timezone = America/Sao_Paulo
Ajustes de parâmetros
max_execution_time = 300
memory_limit = 512M
- Baixe o Código do Gerente
cd /srv
wget https://github.com/lightbase/cacic/archive/v3.1.14.tar.gz
tar -xzvf v3.1.14.tar.gz
ln -s cacic-3.1.14 cacic
Obs.: Para escolher outra release acesse a página do Cacic e veja a última disponível: Releases Cacic
Configuração inicial¶
Configure o Apache para responder na raiz.
- Abra o arquivo /etc/httpd/conf/httpd.conf e altere as seguintes linhas:
#DocumentRoot "/var/www/html"
DocumentRoot "/srv/cacic/web"
#<Directory "/var/www/html">
<Directory "/srv/cacic/web">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options -Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>
- Desabilite o SELinux:
setenforce Permissive
- Salve a alteração abrindo o arquivo /etc/selinux/config:
SELINUX=disabled
- Adicione as seguintes linhas no arquito /etc/sysconfig/iptables:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
# SSH somente nas redes autorizadas
-A INPUT -s 10.209.57.0/24 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -s 10.209.156.0/24 -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# Portas HTTP e HTTPS
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
# Samba
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 445 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 139 -j ACCEPT
# Libera FTP
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -m comment --comment "Allow ftp connections on port 21"
-A OUTPUT -p tcp -m tcp --dport 21 -j ACCEPT -m comment --comment "Allow ftp connections on port 21"
-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT -m comment --comment "Allow ftp connections on port 20"
-A OUTPUT -p tcp -m tcp --dport 20 -j ACCEPT -m comment --comment "Allow ftp connections on port 20"
-A INPUT -p tcp -m tcp --sport 1024: --dport 1024: -j ACCEPT -m comment --comment "Allow passive inbound connections"
-A OUTPUT -p tcp -m tcp --sport 1024: --dport 1024: -j ACCEPT -m comment --comment "Allow passive inbound connections"
# Libera saída nas portas 80 e 443
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
# Liera saída para o PostgreSQL
-A OUTPUT -p tcp -m tcp --dport 5432 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 9999 -j ACCEPT
# Bloqueia saída nas portas SMTP
-A OUTPUT -p tcp -m tcp --dport 25 -j DROP
-A OUTPUT -p tcp -m tcp --dport 587 -j DROP
# Bloqueia o resto
-A INPUT -j REJECT --reject-with icmp-host-prohibited
# Bloqueia o Forward
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
- Carregue alterações no iptables:
service iptables restart
Configurações do Symfony¶
Como pré-requisito já deve haver um banco de dados PostgreSQL configurado para o Cacic.
- Carregue as configurações iniciais:
cp /srv/cacic/app/config/cacic-dist-parameters.yml /srv/cacic/app/config/parameters.yml
- Altere as configurações no arquivo
/srv/cacic/app/config/parameters.yml
parameters:
database_driver: pdo_pgsql
database_host: 10.209.8.151
database_port: null
database_name: cacic
database_user: cacic
database_password: null
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: pt_BR
#locale: en_US
# generate your own site secret
#secret: e410b10b0cdc810ea6bb943caa542bb42b3
database_path: null
Altere o campo secret com um valor gerado no seguinte endereço: http://nux.net/secret
Instalando o Symfony¶
- Baixe e instale os vendors:
cd /srv/cacic
php composer.phar install
- Instale o Symfony para o Cacic:
cd /srv/cacic
php app/console assets:install --symlink
php app/console assetic:dump --env=prod
php app/console assetic:dump --env=dev
php app/console doctrine:schema:update --force
php app/console doctrine:migrations:migrate
- Corrija as permissões:
cd /srv/cacic
chown -R apache.apache
Terminada a instalação e configuração do Gerente Cacic 3.1, execute o navegador.
Instalação em Debian / Ubuntu¶
Instalando os Pacotes necessários:¶
Instale os pacotes que você vai precisar:
apt-get -y install git postgresql apache2 php5 php5-pgsql php5-gd php5-mcrypt libapache2-mod-php5 php5-ldap php-pear php-apc subversion git openjdk-7-jre php5-intl
Configurando o PostgreSQL:
O arquivo “php.ini” vem com fuso horário da Europa, logo precisamos configurá-lo para o Brasil.
- Abra o arquivo “php.ini” através do comando abaixo:
nano /etc/php5/apache2/php.ini
Quando o arquivo abrir digite “CTRL + W
” para abrir a ferramenta de busca e digite “Module Settings
“
Você verá o comando abaixo:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
- Na linha imediata abaixo digite:
date.timezone = America/Sao_Paulo
Em alguns casos, pode ser que já tenha na linha ";date.timezone ="
, neste caso complete com “America/Sao_Paulo”.
Não esqueça de remover o “ponto e vírgula”
Caso já esteja atualizado, continue.
Digite “CTRL + X
” para salvar,
Confirme a alteração com “Y + Enter”
Como “root” reinicie o Apache.
# /etc/init.d/apache2 restart
Montando ambiente de desenvolvimento¶
- Clone o arquivo dentro de localhost:
# cd /srv
# git clone https://github.com/lightbase/cacic
# chown -R www-data.www-data cacic
- Crie um link simbólico da sua pasta web para o Apache:
# ln -s /srv/cacic/web /var/www/cacic
A versão do apache2 que foi publicado com o lançamento do Ubuntu 14.04 é o 2.4.7 e começando com esta versão, por razões de segurança, o novo diretório raiz para o servidor é:
/var/www/html
A partir de agora, é aqui que você deve lincar o CACIC.
# ln -s /srv/cacic/web /var/www/html/cacic
Caso você queira mudar este diretório, você tem que modificar (como root) a seguinte linha do arquivo /etc/apache2/sites-available/000-default.conf (sudo nano /etc/apache2/sites- available/000-default.conf):
DocumentRoot /var/www/html
Para:
DocumentRoot /var/www
- Para entrar em vigor as novas mudanças, você deve reiniciar o servidor apache com o seguinte comando:
# sudo /etc/init.d/apache2 restart
Crie banco de dados para o Symfony - PostgreSQL¶
(É possível que já exista o banco de dados criado, caso isso ocorra passe para o próximo item).
Execute os seguintes comandos no terminal:
$ sudo su
# su - postgres
$ createuser cacic
- Responda tudo “n”, conforme abaixo:
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
- Digite a linha abaixo:
$ createdb -O cacic cacic
Liberando acesso ao banco de dados¶
# nano /etc/postgresql/9.3/main/pg_hba.conf``
- Procure as linhas abaixo. (estão logo no início do texto)
# PostgreSQL Client Authentication Configuration File
# ===================================================
#
# Refer to the "Client Authentication" section in the PostgreSQL
# documentation for a complete description of this file. A short
# synopsis follows.
#
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access. Records take one of these forms:
#
# local DATABASE USER METHOD [OPTIONS]
# host DATABASE USER ADDRESS METHOD [OPTIONS]
# hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
- Agora, acrescente as próximas linhas. Sem o “#”:
host cacic cacic 127.0.0.1/32 trust
host cacic cacic localhost trust
Digite “CTRL + X” para sair, confirme com “y” e “enter”.
- Reinicie o banco de dados:
$ /etc/init.d/postgresql restart
Testando a conexão com o banco de dados:¶
- Execute a linha a baixo e verifique se a mesma se encontra igual ao exemplo:
“exit” para sair de “root”
$ psql -U cacic -h localhost cacic
psql (9.1.9)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.
cacic=>
- Digite “q”, depois “exit”
$ exit
Configurando o arquivo parameters.yml¶
- Abra o arquivo “parameters.yml” conforme o comando abaixo:
# nano /srv/cacic/app/config/parameters.yml
- Adicione as seguintes linhas: (este arquivo conterá somente essas linhas)
parameters:
database_driver: pdo_pgsql
database_host: IP_BancoDeDados
database_port: null
database_name: cacic
database_user: cacic
database_password: null
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: pt_BR
secret: d7c123f25645010985ca27c1015bc76797
database_path: null
É necessário seguir um padrão de identação para que não ocorra erros na instalação do composer.phar.
Note que as linhas do arquivo parameters.yml possuem uma tabulação de 4 espaços que deverá ser preservada.
Digite “CTRL+X” para fechar
Confirme com “Y + Enter”
Executando comandos do Symfony¶
Execute os comandos do Symfony necessários para o sistema funcionar:
# su - www-data
$ bash
$ cd /srv/cacic
Caso apareça a mensagem: “This Accont is currently not available.”
- Acesso o arquivo passwd (digite nano /etc/passwd)
Altere a seguinte linha linha:
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
para:
www-data:x:33:33:www-data:/var/www:/bin/bash
- Instale dos vendors:
$ php composer.phar install
Aguarde o fim da instalação (este processo pode levar alguns minutos)
- Carregando os assets: (necessário haver o “java” instalado).
Ainda com o usuário www-data execute:
$ php app/console doctrine:schema:update --force
$ php app/console assets:install --symlink
$ php app/console assetic:dump
Carregando dados iniciais¶
# php app/console doctrine:fixtures:load
- Digite o comando “exit” e depois digite o mesmo comando “exit” novamente.
Caso apareça a mensagem:
“Could not open input file: app/console”
Finalize o terminal com “exit”
Terminada a instalação e configuração do Gerente Cacic 3.0, execute o navegador.
Configurando o FTP (Opcional)¶
- Abra o navegador e digite:
Pressione “enter”.
- Clique em app_dev.php
Entre com o usuário e a senha.
Usuário: admin
Senha: 123456
Instalando e configurando o FTP (Debian)
Atenção:
- A instalação do FTP é OPCIONAL. Continue este passo da instalação conforme sua necessidade.
Para que os Agentes consigam coletar, é necessário instalar e configurar um serviço de FTP. O procedimento abaixo deve ser executado como usuário root:
# apt-get install proftpd-basic
Quando perguntado, selecione o modo autônomo (standalone) para o servidor de FTP. Em seguida, abra o arquivo de configurações:
# vim /etc/proftpd/proftpd.conf
- Descomente as linhas abaixo:
# Use this to jail all users in their homes
DefaultRoot ~
# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
RequireValidShell off
A versão do apache2 que foi publicado com o lançamento do Ubuntu 14.04 é o 2.4.7 e começando com esta versão, parece que, por razões de segurança, o novo diretório raiz para o servidor é:
/var/www/html
Adicione um usuário que será usado pelo CACIC para download dos updates. No exemplo a seguir, adicionamos uma conta ftpcacic:
# adduser --shell /bin/false --home /var/www/html/ftpcacic ftpcacic
Preencha a senha do usuário quando perguntado.
Observe que o HOME deste usuário é: /var/www/html/ftpcacic
Nesse mesmo diretório crie uma pasta “agentes” utilizando os comandos a seguir:
# mkdir /var/www/html/ftpcacic/agentes
# chown ftpcacic.ftpcacic /var/www/html/ftpcacic/agentes
- Teste a conexão.
Primeiro você deverá reiniciar o proftpd com o comando a seguir:
# /etc/init.d/proftpd restart
Execute depois os comandos a seguir para testar a conexão FTP:
- Windows:
C:\ftp ip_do_servidor_cacic
login: ftpcacic
senha: senha_do_ftpcacic
ftp quit
- Linux:
$ telnet ip_do_servidor_cacic 21
Quando abrir a tela do telnet, digite os seguintes comandos:
user ftpcacic
pass senha_ftp
quit
O FTP deve estar funcionando e conectando.