OCS-NG - Solução de Inventário com Software Livre(Parte 2)
segunda-feira, 5 de julho de 2010
Caro leitor,
Esta é a Parte 2 do HOWTO - OCS-NG - Solução de Inventário com Software Livre. O objetivo principal desse artigo é mostrar o funcionamento interno desta ferramenta(composta de muitas outras ferramentas) e por fim documentar o passo a passo da implementação desta ferramenta num ambiente isolado(virtualizado).
Na primeira parte deste artigo foi apresentada algumas ferramentas(inventário, ferramentas para deployment, etc...) do ONS-NG. A seguir será abordado com mais detalhes a Arquitetura do OCS-NG e o funcionamento de uma de suas ferramentas internas, o Package Deployment.
Arquitetura do Componentes do OCS Inventory NG
O OCS Inventory NG utiliza um agente, executado na máquina cliente, e o servidor de gerencia, que centraliza todos os dados de inventário e permite obter informações sobre os equipamentos inventariados e executar/criar o deployment de pacotes.
A comunicação entre o agente instalado na máquina cliente e o servidor de gerência ocorre através dos protocolos HTTP/HTTPS. Toda a informação é formatada em XML e compactada em Zlib a fim de reduzir ao máximo a quantidade de tráfego de dados na rede.
Os agentes devem ser instalados nos computadores clientes(é disponibilizado na página do OCSNG uma ferramenta para a instalação automatizada(deployment) do agente em máquinas Microsoft Windows® através de scripts de login(SAMBA ou GPO via Active Directory)). Em máquinas Linux o agente deve ser instalado manualmente.
O servidor de gerenciamento possui 4 componentes principais:
Estes 4 componentes podem ser hospedados em uma única máquina ou em diferentes máquinas(permitindo o balanceamento de carga). Segundo a própria documentação do projeto, para mais de 10000(dez mil) computadores inventariados, recomenda-se o uso de pelo menos 2(dois) servidores diferentes, um atuando como servidor de Banco de Dados mais Servidor de Comunicação e outro como Réplica do Banco de Dados mais Servidor de Administração mais Servidor de Deployment(ver esquema na imagem abaixo):
Nota: Se você deseja utilizar múltiplos servidores para hospedar o servidor de gerenciamento OCS Inventory NG, recomenda-se que você configure este serviço em máquinas Linux. O OCS Inventory NG para Windows acompanha todos os pacotes necessários em sua instalação (apache, perl, mod_perl, mysql...).
Pré-requisitos:
O Servidor de Banco de Dados, somente MySQL (versão 4.1, ou mais recentes);
O Servidor de Comunicação, Servidor Web Apache (versões 1.3.X/2.X) e módulo PERL. Por quê? Porque PERL script é compilado quando o Apache inicia, e não a cada requisição realizada. Isto é melhor por questões de performance. O Servidor de Comunicação pode demandar requisitar módulos PERL adicionais, dependendo da distribuição utilizada.
O Console/Interface de Administração é escrito em PHP 4.1 (ou versões mais recentes) e é executado no Servidor Web Apache 1.3.X/2.X (mas pode ser executado em servidores web diferentes). O Servidor de Administração necessita do ZIP e GD habilitados no PHP para que seja possível utilizar a ferramenta de Deployment.
O Agente Windows é escrito em C++ (necessita do MS Visual C++ Service Pack 5 ou mais recente e MS Platform SDK February 2003 ou mais recentes para compilar) e scripts NSIS para scripts de logon ou ferramenta GPO para deployment automatizado.
O Agente Linux é escrito em linguagem PERL e C e pode necessitar de alguns módulos PERL para tratar compressões XML e Zlib, dependendo da distribuição utilizada. Ele também usa o dmidecode.
Package Deployment através do OCS Inventory NG
O OCS Inventory NG inclue a ferramenta interna de Package Deployment para as máquinas clientes. Do servidor de Gerenciamento Central, é possível fazer o upload de pacotes/softwares que serão baixados através de requisições HTTP/HTTPS e executadas pelo agente na máquina cliente.
Um pacote contém 4 componentes principais:
Existem 11 níveis de prioridade, do nível 0 ao nível 10. O nível 0 é a prioridade mais alta e o nível 10 o mais baixo. O pacote de prioridade 0 será entregue antes do pacote de prioridade 1. O pacote de prioridade 1 será entregue antes do pacote de prioridade 2 ...
A Ação está associada ao arquivo que será entregue ou comando a ser executado. Este trio pode assumir uma das opções listadas abaixo:
Você pode criar o pacote a ser distribuído/deployed nas máquinas clientes através da Interface/Console de Administração . Ele é automaticamente descrito por:
Assim que o pacote estiver pronto você deve ativá-lo. Ele indica onde o servidor com SSL habilitado (ex.: servidores de deployment) está localizado, de onde o agente baixará o arquivo de informação e os arquivo fragmentado.
Finalmente, você deve selecionar em que computador você deseja "entregar" o pacote criado.
Então, o agente está habilitado a baixar o pacote.
Quando o agente contacta o Servidor de Comunicação, o Servidor de Comunicação avisa ao agente se tem um ou mais pacotes a serem baixados, como nível de prioridade de cada pacote, e onde ele pode achar os arquivos de informações.
O agente começa a baixar os pacotes, e quando termina, ele executa a ação do pacote, e manda de volta ao Servidor de Comunicação o resultado da ação.
Continua...
Esta é a Parte 2 do HOWTO - OCS-NG - Solução de Inventário com Software Livre. O objetivo principal desse artigo é mostrar o funcionamento interno desta ferramenta(composta de muitas outras ferramentas) e por fim documentar o passo a passo da implementação desta ferramenta num ambiente isolado(virtualizado).
Na primeira parte deste artigo foi apresentada algumas ferramentas(inventário, ferramentas para deployment, etc...) do ONS-NG. A seguir será abordado com mais detalhes a Arquitetura do OCS-NG e o funcionamento de uma de suas ferramentas internas, o Package Deployment.
Arquitetura do Componentes do OCS Inventory NG
O OCS Inventory NG utiliza um agente, executado na máquina cliente, e o servidor de gerencia, que centraliza todos os dados de inventário e permite obter informações sobre os equipamentos inventariados e executar/criar o deployment de pacotes.
A comunicação entre o agente instalado na máquina cliente e o servidor de gerência ocorre através dos protocolos HTTP/HTTPS. Toda a informação é formatada em XML e compactada em Zlib a fim de reduzir ao máximo a quantidade de tráfego de dados na rede.
Os agentes devem ser instalados nos computadores clientes(é disponibilizado na página do OCSNG uma ferramenta para a instalação automatizada(deployment) do agente em máquinas Microsoft Windows® através de scripts de login(SAMBA ou GPO via Active Directory)). Em máquinas Linux o agente deve ser instalado manualmente.
O servidor de gerenciamento possui 4 componentes principais:
- Servidor de Banco de Dados, responsável por armazenar toda a informação do inventário;
- Servidor de Comunicação, responsável por manter a comunicação entre o Banco de Dados e os agentes via HTTP;
- Servidor de Deployment, responsável por armazenar toda a configuração de deployment de pacotes(pré-requisito: HTTPS);
- Console/Interface de Administração, que permitirá aos Administradores fazer requisições ao Banco de Dados através de qualquer navegador Web.
Estes 4 componentes podem ser hospedados em uma única máquina ou em diferentes máquinas(permitindo o balanceamento de carga). Segundo a própria documentação do projeto, para mais de 10000(dez mil) computadores inventariados, recomenda-se o uso de pelo menos 2(dois) servidores diferentes, um atuando como servidor de Banco de Dados mais Servidor de Comunicação e outro como Réplica do Banco de Dados mais Servidor de Administração mais Servidor de Deployment(ver esquema na imagem abaixo):
Nota: Se você deseja utilizar múltiplos servidores para hospedar o servidor de gerenciamento OCS Inventory NG, recomenda-se que você configure este serviço em máquinas Linux. O OCS Inventory NG para Windows acompanha todos os pacotes necessários em sua instalação (apache, perl, mod_perl, mysql...).
Pré-requisitos:
O Servidor de Banco de Dados, somente MySQL (versão 4.1, ou mais recentes);
O Servidor de Comunicação, Servidor Web Apache (versões 1.3.X/2.X) e módulo PERL. Por quê? Porque PERL script é compilado quando o Apache inicia, e não a cada requisição realizada. Isto é melhor por questões de performance. O Servidor de Comunicação pode demandar requisitar módulos PERL adicionais, dependendo da distribuição utilizada.
O Console/Interface de Administração é escrito em PHP 4.1 (ou versões mais recentes) e é executado no Servidor Web Apache 1.3.X/2.X (mas pode ser executado em servidores web diferentes). O Servidor de Administração necessita do ZIP e GD habilitados no PHP para que seja possível utilizar a ferramenta de Deployment.
O Agente Windows é escrito em C++ (necessita do MS Visual C++ Service Pack 5 ou mais recente e MS Platform SDK February 2003 ou mais recentes para compilar) e scripts NSIS para scripts de logon ou ferramenta GPO para deployment automatizado.
O Agente Linux é escrito em linguagem PERL e C e pode necessitar de alguns módulos PERL para tratar compressões XML e Zlib, dependendo da distribuição utilizada. Ele também usa o dmidecode.
Package Deployment através do OCS Inventory NG
O OCS Inventory NG inclue a ferramenta interna de Package Deployment para as máquinas clientes. Do servidor de Gerenciamento Central, é possível fazer o upload de pacotes/softwares que serão baixados através de requisições HTTP/HTTPS e executadas pelo agente na máquina cliente.
Um pacote contém 4 componentes principais:
- A Prioridade;
- A Ação;
- Opcionalmente um arquivo ZIP ou TAR.GZ incluindo quantos arquivos e/ou diretórios você deseja;
- e opcionalmente um comando a ser executado.
Existem 11 níveis de prioridade, do nível 0 ao nível 10. O nível 0 é a prioridade mais alta e o nível 10 o mais baixo. O pacote de prioridade 0 será entregue antes do pacote de prioridade 1. O pacote de prioridade 1 será entregue antes do pacote de prioridade 2 ...
A Ação está associada ao arquivo que será entregue ou comando a ser executado. Este trio pode assumir uma das opções listadas abaixo:
- Ação Lançar/Launch: entregar um arquivo ZIP ou TAR.GZ e executar com ou sem parâmetros um arquivo executável incluído no arquivo ZIP ou TAR.GZ.
O arquivo ZIP ou TAR.GZ será descomprimido num diretório temporário, e o comando(nome do arquivo executável sem o caminho!) associado será executado neste diretório temporário.
Esta ação permite a visualização do resultado do comando executado. - Ação Executar/Execute: entregar um arquivo ZIP ou TAR.GZ (opcional), e executar com o sem parâmetros um arquivo executável incluído ou não no arquivo ZIP ou TAR.GZ.
Se o executável não estiver incluído no arquivo ZIP ou TAR.GZ, ele poderá ser chamado como um comando padrão Windows do tipo Windows Installer, RPM, DPKG ou TAR.GZ caso esteja usando Linux.
O arquivo ZIP ou TAR.GZ será descomprimido num diretório temporário, e o comando(nome do arquivo executável sem o caminho!) associado será executado neste diretório temporário.
Esta ação não permite a visualização no resultado do comando executado. Entretanto, esta ação permite que você execute comandos nas máquinas clientes sem a necessidade de entregar um arquivo. Por exemplo, você pode usá-lo para executar um comando de operação específico de um sistema. - Ação Armazenar/Store: entregar um arquivo ZIP ou TAR.GZ e armazenar seu conteúdo num diretório na máquina cliente.
Não há nenhum comando associado a esta ação, somente o caminho para especificar onde os arquivos serão descompactados.
Você pode criar o pacote a ser distribuído/deployed nas máquinas clientes através da Interface/Console de Administração . Ele é automaticamente descrito por:
- Uma referência no banco de dados, usado pelo Servidor de Comunicação para "perguntar" ao agente da máquina cliente;
- Um arquivo de informação, nomeado "info". Que é na verdade um arquivo XML descrevendo o pacote e a ação que o agente deverá executar;
- 0 ou mais fragmentos dos arquivos. O arquivo que você fará o upload (se existir algum) será dividido em pequenas partes permitindo aos agente baixar parte a parte, e então resumir o download que falhar. Se o download de um fragmento do arquivo falhar, somente este fragmento será baixado em outro momento, e não todo o pacote. É possível escolher o tamanho do fragmento de acordo com a capacidade da rede. E também controlar o uso de banda na rede.
Assim que o pacote estiver pronto você deve ativá-lo. Ele indica onde o servidor com SSL habilitado (ex.: servidores de deployment) está localizado, de onde o agente baixará o arquivo de informação e os arquivo fragmentado.
Finalmente, você deve selecionar em que computador você deseja "entregar" o pacote criado.
Então, o agente está habilitado a baixar o pacote.
Quando o agente contacta o Servidor de Comunicação, o Servidor de Comunicação avisa ao agente se tem um ou mais pacotes a serem baixados, como nível de prioridade de cada pacote, e onde ele pode achar os arquivos de informações.
O agente começa a baixar os pacotes, e quando termina, ele executa a ação do pacote, e manda de volta ao Servidor de Comunicação o resultado da ação.
Esquema Package Deployment
Continua...
Fontes:
Páginas Web
OCSNG. 2010. OCS Inventory NG, Architecture Components. Último acesso em 08/07/2010. Disponível em: http://www.ocsinventory-ng.org/index.php?page=architecture
OCSNG. 2010. OCS Inventory NG, Package Deployment through. Último acesso em 08/07/2010. Disponível em: http://www.ocsinventory-ng.org/index.php?page=package-deployment



Olá!
Tenho o OCS agente em maquinas com Ubuntu e Windows XP e eventualmente preciso instalar ou atualizar programas.
Saberia me informar como crio o pacote com o(s) arquivo(s) e como envio o pacote para as maquinas executarem?
Postar um comentário