Tagwindows

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

© 2018 Blog do Vieira

Theme by Anders NorénUp ↑