Tagocsinventory

Ferramentas utilizadas para inventário de ativos de TI

Utilizando o OCS Teledeploy

O Teledeploy é uma ferramenta do OCS Inventory NG para deployment de pacotes, por isso vamos precisar do uso de certificados digitais e SSL para validar o servidor antes de tentar fazer o download dos pacotes. Para entender um pouco mais do uso de certificados digitais e SSL no apache, pode ser utilizado o post anterior clicando aqui.

Vamos adicionar o vitualhost abaixo (para uso das configurações ssl, configurações do php para envio de arquivos através do “Teledeploy” e configurações do diretório /download) no nosso arquivo de configurações “/etc/httpd/conf.d/ocsinventory-reports.conf”.

<Virtualhost *:443>
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
SSLCertificateFile /etc/pki/tls/certs/ca/inventario.crt
SSLCertificateKeyFile /etc/pki/tls/private/inventario.key
SSLCACertificateFile /etc/pki/tls/certs/ca/cacert.pem

ServerName   ocsvm01
ServerAlias  ocsvm01.home.local
DocumentRoot /usr/share/ocsinventory-reports/ocsreports

php_flag file_uploads           on
php_value post_max_size         51M
php_value upload_max_filesize   50M

Alias /download /var/lib/ocsinventory-reports/download
<Directory /var/lib/ocsinventory-reports/download>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
</Directory>
</Virtualhost>

Vamos liberar o acesso ao apache na porta 443 pelo iptables

# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

Criando um pacote

Existem três formas de criação de pacotes: STORE, EXECUTE e LAUNCH. Cada uma delas tem um comportamento diferente, o STORE faz o download de um arquivo e armazena em um diretório, o EXECUTE tanto executa um comando como um programa com um comando, e o LAUNCH faz o download de um arquivo, descompacta, e em seguida, executa a sua instalação. Para criar o pacote, é necessário o usuário “apache” ter acesso de gravação para a pasta “/var/lib/ocsinventory-reports/download/”.

Antes de tudo, iremos definir alguns ajustes de configuração do “Deployment server” e “Redistribution Servers”.

Vamos entrar na interface Web do OCS Inventory, selecionar o ícone “Config”, opção “Config”, e clicar na aba “Deployment”. Iremos alterar as opções DOWNLOAD de OFF para ON (habilitar a função de distribuição automatica do deploy), nos campos DOWNLOAD_URI_FRAG e DOWNLOAD_URI_INFO iremos definir o nome do nosso servidor e clicar em UPDATE conforme a imagem abaixo:

config_deploy

Ainda nas configurações do servidor vá para a aba “Redistribution Servers” e altere a opção DOWNLOAD_REDISTRIB de ON para OFF e clicar em UPDATE(desabilitar a função de servidores de redistribuição, pois os pacotes somente serão utilizados pelo nosso “Deployment Server”)

Então… vamos criar um primeiro pacote:

Vamos novamente entrar na interface Web do OCS Inventory, selecionar o ícone “Deployment” e “Build” para a criação do pacote.

deploy_build

Devemos atribuir um nome para o pacote, Descrição do pacote, Plataforma, Protocolo e Prioridade (opção que vai priorizar a ordem de execução do pacote no cliente, o menor terá a maior prioridade). Na hora de fazer upload de arquivos e programas, é necessário comprimir em .zip ou .tar.gz antes. Vamos escolher uma ação (podemos usar variáveis do sistema, como %SYSTEMDRIVE%, %TEMP%, %USERPROFILE%, %PROGRAMFILES%, etc) para armazenar o arquivo ou comando a ser executado. É possível escolher se queremos que o usuário seja avisado sobre a execução do pacote, e até mesmo para permitir ao usuário para atrasar a execução (útil para implantações de pacote de serviço, etc).

build_package1

A próxima etapa vai nos permitir criar os fragmentos (quantidade de partes que o pacote será dividido para permitir uma melhor implementação, para em caso de erros, realizar apenas o download dos fragmentos com falha novamente, etc), bem como a soma de verificação para validade dos dados.

build_package2

Seu pacote será criado em seguida em “/var/lib/ocsinventory-reports/download/#Pkgid#”.

Ativando um pacote

Quando criamos o pacote, é criado um arquivo “info” (com informações das ações do pacote) e os fragmentos de pacotes, podemos tê-los somente em um servidor ou dividir entre diferentes servidores (Redistribution Servers) tendo que especificar onde está localizado cada pacote antes de usá-lo em nossas máquinas. Este processo é chamado de “ativação”.

Ainda na interface Web do OCS Inventory, vamos selecionar o ícone “Deployment” e “Activate”, para a ativação do pacote desejado.

deploy_activate

Será exibida uma lista com os pacotes criados e prontos para ativação, vamos clicar no ícone ativar do pacote que iremos realizar a ativação (você pode observar que é criado um hiperlink sobre o nome dos pacotes que já estão ativados).

activate_package1

Após clicar em ativar vamos verificar se os campos “Fragments url” e Https url” estão configurados conforme definimos acima, vamos clicar em “Enable this alteration” e o pacote agora está criado e ativado!

activate_package

 

 

Aplicando pacotes nos computadores

Nessa etapa podemos aplicar pacotes selecionando um (com a exibição de propriedades do computador, selecionando o ícone de personalização e adicionando o pacote) ou vários computadores. A melhor forma é aplicar os pacotes usando a busca avançada.

O certificado “cacert.pem” que foi gerado através da CA, deverá estar presente no diretório do agente do OCS Inventory NG no Windows (geralmente em “C:\Program Files\OCS Inventory Agent”) e no Linux (/etc/ocsinventory-client). Desconsidere isso no caso em que o certificado tenha sido anexado no “OcsPackage.exe”.

No exemplo abaixo, vamos através da busca avançada aplicar os pacotes em todos computadores Windows

aplicando_package1

A busca irá retornar apenas os itens que correspondem com a requisição

aplicando_package

Podemos selecionar apenas alguns computadores que foram encontrados, como podemos aplicar os pacotes para todo o resultado da busca. Para isso, basta clicar em “deploy”, escolher o pacote desejado e clicar em “Update”.aplicando_package3

Note que o status do pacote irá ficar como WAITING NOTIFICATION até o agente conectar novamente ao Communication Server.

Seguem abaixo alguns exemplos de STATUS do pacote

Status code Meaning
WAITING NOTIFICATION Server is waiting for agent communication to notify there is something to download.
NOTIFIED Agent has been notified there is something to download. Now server waiting for result code.
SUCCESS Agent has successfully download package and launch command or stored extracted data. With “Launch” action, this status may be completed with command execution return code. (return code 0).
ERR_EXIT_CODE_xxx Agent has successfully download package, BUT command of execution or data store associated terminated in error (return code xxx).
ERR_ALREADY_SETUP Package was previously installed successfully on this computer.
ERR_BAD_ID Agent is unable to download package because it cannot find package ID on deployment server.
ERR_BAD_DIGEST Downloaded data are has bad digest, so agent does not execute associated command.
ERR_DOWNLOAD_INFO Agent was unable to download INFO file associated to the package.
ERR_DOWNLOAD_PACK Agent was unable to download ZIP or TAR.GZ file.
ERR_BUILD Agent was unable to rebuild package fragments.
ERR_UNZIP Agent was unable to uncompress downloaded ZIP or TAR.GZ file.
ERR_OUT_OF_SPACE There is not enought space available on disk to uncompress and execute ZIP or TAR.GZ package.
ERR_BAD_PARAM A INFO file parameter of the package is incorrect.
ERR_EXECUTE_PACK Any execution command is specified in INFO file of package.
ERR_EXECUTE Agent was unable to execute associated package command.
ERR_CLEAN Agent was unable to clean downloaded package.
ERR_DONE_FAILED Agent can’t retrieve execution result in package cache (cache is used to store result if the server is not responding at the end of package execution).
ERR_TIMEOUT Agent was unable to download package during DOWNLOAD_TIMEOUT days.
ERR_ABORTED User canceled package command execution (you’ve choosen to notify him, and allowed him to cancel).

Fonte:
Wiki OCS Inventory NG

Utilizando o OcsLogon

Olá pessoal, venho hoje com mais um post sobre o OCS Inventory. Hoje irei criar um script que irá executar o “OcsLogon.exe” passando os parâmetros apropriados à ele. O pacote “OcsLogon.exe” vem acompanhado do pacote OCS Inventory NG Agent quando feito download.

Por padrão o OcsLogon na hora que executado irá primeiramente checar se o OCS Inventory NG Agent está instalado, caso não esteja, ele irá buscar o OCS Inventory NG Agent no Communication Server utilizando a URL “http://ocsinventory-ng/ocsinventory”. Seguem abaixo alguns parâmetros aceitos pelo OcsLogon.

– /PACKAGER instala o “ocspackage.exe” (veja neste post como criar um “ocspackage.exe”) através do servidor especificado em “/SERVER”; caso o usuário não tenha privilégios de administrador na máquina;

– /GPO informa no script que o arquivo a ser instalado deverá ser baixado no mesmo diretório que está o “OcsLogon.exe”, esta opção deverá er utilizada em caso de uso de GPO, para o OcsLogon não buscar o instalador do agente no Communication Server (não iremos utilizar neste post);

– /URL=http[s]://ip-do-servidor:porta/caminho-do-arquivo-para-download.exe informa no script que o arquivo a ser instalado está na URL informada, diferente do padrão no Communication Server.

– /DEPLOY=a.b.c.d garante que a versão do agente informada será instalada na máquina, só funcionará se para atualização de versões anteriores à informada;

– /FORCE força a reinstalação do agente, mesmo se existir uma versão mais atual que a  utilizada;

– /TIMEOUT=x modificar o timeout padrão que é 60 segundos, deverá ser informado o valor em millissegundos;

– /UNINSTALL desinstala o agente ao invés de instalar;

Também podem ser inseridos parâmetros para a instalação do agente:

– /SERVER=http[s]:/ip-do-servidor:porta/ocsinventory, para utilizar uma diferente URL para connectar ao OCS Inventory NG Communication Server.

– /NO_SERVICE não registra o OCS Inventory NG Agent no gerenciador de serviços do Windows. O agente somente será executado ao executar o script do ocs, e não através do serviço do Windows;

– /EDITLOG exibir logs gerados do OcsLogon através de utilização de /DEBUG. Esse parâmetro somente funciona com script do ocs ou GPO.

Nota: O OcsLogon.exe sempre cria um arquivo de log “OcsLogon.log” em uma pasta temporária, geralmente em “C:\Documents and Settings\User Profile\Local settings\Temp” ou “C:\Users\User Profile\AppData\Local\Temp”.

Utilizando o script ocs:

– Copie o arquivo “OcsLogon.exe” para uma pasta compartilhada na rede, recomendo na pasta “netlogon”, pois a mesma terá acesso de leitura para todos seus usuários do domínio.

– Vamos criar um arquivo “ocs.bat” e através do bloco de notas inserir o local do compartilhamento com o arquivo “OcsLogon.exe” e seus parâmetros.

\\servidor-de-arquivos\compartilhamento\OcsLogon.exe /PACKAGER /SERVER=http://ip-do-servidor/ocsinventory

No caso acima, somente estou utilizando o parâmetro /PACKAGER (para informar que irei utilizar o ocspackage.exe e não um agente padrão) e o /SERVER seguido do caminho do Communication server.

Recomendo que o script “ocs.bat” seja salvo na pasta “netlogon” (também poderá ser adicionada somente a linha do script ocs.bat em um script de logon já existente, caso não necessite utilizar um novo script) para ser mapeado para todos o usuários e por fim quando os usuários realizarem novos logons, o OCS Inventory NG Agent será instalado ou executado conforme os parâmetros inseridos.

Utilizando o OCS Packager

Bom galera, o OCS Packager é uma ferramenta feita para preparar pacotes de instalação automatizada do OCS Inventory Agent para o windows. Ele é uma maneira mais rápida de instalar e implementar o OCS Inventory Agent em computadores, baseado em script NSIS (ferramenta que permite aos programadores criar tais instaladores para Windows) e RemCom tool (ferramenta que permite executar comandos em sistemas MS Windows remotos).

O Funcionamento do OCS Packager é simples, ele gera um arquivo “ocspackage.exe” com base nos parâmetros que você determina, permitindo em um clique, uma instalação em silent mode, etc. Utilizado com o “OcsLogon” fará um serviço de implantação muito rápido, fácil e útil no MS Windows (será assunto para outro post).

Algumas opções de comando para o OCS Inventory NG Agent:

  • /S – executa o instalador em silent mode (sem interação do usuário);
  • /NOSPLASH – desabilita a tela inicial do instalador;
  • /UPGRADE – implementa um novo agente através do recurso de deployment do OCS;
  • /NO_SERVICE – não registra o OCS Inventory NG Agent no gerenciador de serviços do Windows;
  • /NO_SYSTRAY – não cria um ícone ao lado do relógio do Windows;
  • /NOW – executa o OCS Inventory NG Agent ao final da instalação;
  • /NOSOFTWARE – ignora se o software está instalado;
  • /D – instala o OCS Inventory NG Agent em outro diretório;
  • /SERVER= – local do servidor OCS Inventory;

– Baixe o OCS Packager e o OCS Agent na seção de downloads no site do OCS Inventory;
– Execute o OcsPackager.exe e aceite o termo de licença;
A seguinte tela irá aparecer:

packager1

 

– No campo “Agent Setup file”, adicione o OcsAgentSetup.exe que foi feito download;
– No campo “Certificate file” deveremos adicionar o arquivo “.pem” que será utilizado pelo Teledeploy;
– No campo “Plugins to include” permite que sejam adicionados plugins, porém essa parte irei tratar em outro post;
– No campo “comand line options” deverão ser especificadas todas as opções necessárias para criar o “ocspackage.exe” do ocs (no meu caso, /NO_SERVICE /S /SERVER=http://192.168.1.12/ocsinventory /proxy_type=0 /NOW).
– No campo “Label” será criado um arquivo de etiqueta contendo seu prompt do usuário. Na primeira execução do OcsInventory.exe, será exibido uma janela pop-up com este aviso. O valor inserido pelo usuário é chamado TAG, não utilizei esse campo também.
– Os campos “User” e “Password” não serão utilizados neste exemplo. Caso você tenha necessidade de utilizar autenticação remota no agente Windows para fornecer permissão de execução, recomendo o uso desses campos, bastando somente ter o “PsExec.exe” na mesma pasta do OCS Packager e inserir as credenciais de usuário e senha.

Clique em “next”

packager2

 

– Escolha o local onde o “ocspackage.exe” será salvo e clique em “Ok”;
– Após isso, o “ocspackage.exe”será criado e você já poderá executar e publicar no Communication Server para ser executado através do “OcsLogon.exe”. Então vamos publicar!

Por padrão o MySQL só permite que sejam anexados arquivos com o tamanho de até 1MB, então edite o arquivo “my.cnf” e insira ou modifique o valor da variável “max_allowed_packet”. No meu caso, irei alterar para 10MB.

# vim /etc/my.cnf
max_allowed_packet=10MB

Reinicie o MySQL

# /etc/init.d/mysqld restart

Acesse “http://ip-do-server/ocsreports”, faça login com suas credenciais, clique no ícone “Configuração” e na aba “Agente”;

packager4

 

Selecione o arquivo e clique em “Envio”. Pronto, o “ocspackager.exe” já está publicado no nosso Communication Server.

Fonte:
OCS Packager

Instalação do OCS Inventory RHEL/CentOS 6.x

Pré-requisitos para instalação do OCS Inventory NG
– Apache 1.3.33 ou superior;
– Mod_perl 1.29 ou superior;
– Mod_php 4.3.2 ou superior;
– PHP 4.3.2 ou superior com suporte a ZIP e GD habilitados;
– PERL 5.6 ou superior;
– Perl module XML::Simple versão 2.12 ou superior;
– Perl module Compress::Zlib versão 1.33 ou superior;
– Perl module DBI versão 1.40 ou superior;
– Perl module DBD::Mysql versão 2.9004 ou superior;
– Perl module Apache::DBI versão 0.93 ou superior;
– Perl module Net::IP versão 1.21 ou superior;
– Perl module SOAP::Lite versão 0.66 ou superior (opcional);
– MySQL 4.1.0 ou superior com engine InnoDB habilitada;

Para instalar o MySQL, pode ser utilizado o meu post anterior clicando aqui.

Os pacotes do ocs não vêm nos repositórios padrão do RHEL/CentOS. Iremos instalar a versão 2.1.2 do ocs, pois já traz bastante melhoria de recursos comparada à versões anteriores, para isso vamos instalar o epel e o remi como repositório adicional.

# yum install epel-release
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -Uvh remi-release-6*.rpm

O yum resolverá todas dependências informadas no início do post. Vamos instalar o OCS Inventory habilitando o uso do remi.

# yum --enablerepo=remi install ocsinventory

Vamos liberar o acesso ao apache e ao mysql nas portas 80 e 3306 pelo iptables

# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

E deixar o SElinux no modo permissivo

# vim /etc/selinux/config
SELINUX=permissive

Vamos criar o banco de dados “ocsweb”, criar o usuário “ocs” e dar acesso ao banco.

# mysql -u root -p
CREATE DATABASE ocsweb;
GRANT ALL PRIVILEGES ON ocsweb.* to ocs@localhost IDENTIFIED BY 'senha';
FLUSH PRIVILEGES;
QUIT

Vamos agora checar se será necessário realizar alguma alteração nas informações do banco instalado

# vim /etc/httpd/conf.d/ocsinventory-server.conf
# Master Database settings
  # Replace localhost by hostname or ip of MySQL server for WRITE
  PerlSetEnv OCS_DB_HOST localhost
  # Replace 3306 by port where running MySQL server, generally 3306
  PerlSetEnv OCS_DB_PORT 3306
  # Name of database
  PerlSetEnv OCS_DB_NAME ocsweb //verifique se é o nome do banco que foi criado
  PerlSetEnv OCS_DB_LOCAL ocsweb //verifique se é o nome do banco que foi criado
  # User allowed to connect to database
  PerlSetEnv OCS_DB_USER ocs //verifique se é o nome do usuário do banco com permissões
  # Password for user
  PerlSetVar OCS_DB_PWD ocs //altere para a senha definida

Vamos iniciar o serviço httpd

# /etc/init.d/httpd start

Define a inicialização do httpd nos níveis padrão de inicialização do sistema

# chkconfig http on

Acesse o endereço “http://ip-do-servidor/ocsreports/install.php” e preencha conforme abaixo

ocs_database

Ao clicar em send, será executado o script install.php que realizará a configuração do banco de dados do OCS Inventory.
Acesse o endereço “http://ip-do-servidor/ocsreports” para acessar o OCS Inventory e use as credenciais abaixo

User: admin
Password: admin

ocs_home

Após o login, poderão aparecer alertas na tela informando que o script install.php está presente no servidor, conforme imagem acima. O usuário e senha do banco e da interface web de administração estão definidos como padrão. Altere as senhas no banco de dados e na interface web de administração e apague o script conforme abaixo.

# rm -f /usr/share/ocsinventory-reports/ocsreports/install.php

Pronto. O serviço do OCS Inventory está instalado, configurado, executando e aguardando por novos inventários, instale o agente na sua estação e verifique!

Fonte:
Wiki OCS Inventory NG

© 2018 Blog do Vieira

Theme by Anders NorénUp ↑