Tagocsinventory
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:
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.
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).
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.
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.
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).
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!
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
A busca irá retornar apenas os itens que correspondem com a requisição
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”.
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
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.
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:
– 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”
– 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”;
Selecione o arquivo e clique em “Envio”. Pronto, o “ocspackager.exe” já está publicado no nosso Communication Server.
Fonte:
OCS Packager
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
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
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
© 2021 Blog do Vieira
Theme by Anders Norén — Up ↑