Você está na página 1de 7

A integrao de servios como requisito fundamental no processo de migrao para uma plataforma livre Mauro Tapajs Santos Renata

Abadia Rodrigues de Oliveira Universidade Catlica de Braslia tapajs@abordo.com.br, renatarodrigues@ucb.br

Resumo Dentro de uma organizao, a primeira questo a ser levantada num processo de migrao para plataforma livre a manuteno de servios essenciais para o seu funcionamento. Exemplo disto gesto de um Servio de Diretrios, soluo que permite gerenciar de forma centralizada as informaes associadas infraestrutura de recursos numa rede como usurios, impressoras, servidores, aplicaes, etc. Entretanto, faltam ferramentas de administrao de ambientes de TI que propiciem uma gerncia no s eficiente, mas tambm integrada desses servios bsicos, permitindo no s administr-los isoladamente, mas tambm integr-los de forma facilitada para prover, por exemplo, autenticao nica de usurios para todos os servios de rede, gerenciamento do servio de impresso, mapeamento automtico de drivers em servidores, distribuio automtica de pacotes de software para estaes de trabalho, backup automtico, etc. Dentro deste contexto, prope-se um servio de distribuio automtica de pacotes de software como o primeiro de uma srie de servios que iro compor uma arquitetura centralizada de gerncia de TI, baseada em software livre e capaz de atender a ambientes corporativos de maior porte. 1. Introduo O ambiente de TI atual exige determinados servios de rede que garantem a operao normal de redes corporativas. No mundo das plataformas livres estes servios esto disponveis porm de forma desagregada. A integrao destes servios fundamental para a adoo da plataforma livre em redes corporativas. Apresenta-se ento o mecanismo de distribuio de software como servio bsico de rede. Este servio extremamente importante para o correto funcionamento da arquitetura e serve de base para muitos dos demais servios. 2. O Ambiente de TI Atual Um ambiente de TI operacional exige atualmente servios bsicos como:

Autenticao de usurios na rede (atravs dos processos de login) para que estes possam utilizar os recursos de rede disponveis Personalizaes no processo de login do usurio (uso de scripts de inicializao, avisos e alertas) para automatizar processos internos Impresso via rede de acordo com regras e quotas pr-definidas Acesso a arquivos em servidores em rede com controle de acesso adequado Execuo controlada e agendada de cpias de redundncia de arquivos backup Disponibilizao de softwares anti-vrus e suas atualizaes Instalaes e atualizaes automticas de aplicaes nas estaes de trabalho Gerao automtica de inventrio do parque de TI para gerenciamento de configurao Gerao e tratamento de arquivos de logs dos sistemas

Com isso se verifica que para garantir o correto funcionamento destes servios necessrio uma integrao de todos. Com esse objetivo se costuma inserir neste contexto um servidor de diretrios cuja funo centralizar as informaes necessrias utilizao dos servios citados. O servidor de diretrios armazena dados como senhas de usurios, privilgios de impresso, sistemas de arquivos disponveis em rede, servidores em operao, controle de acesso aos recursos de rede e permisses de execuo de softwares. O servidor de diretrios um banco de dados cujo objetivo atender da forma mais eficaz e rpida a questionamentos de aplicaes externas, ou seja, um banco de dados otimizado para operaes de leitura. O servio de diretrios aparece ento como componente essencial dentro de uma arquitetura integrada de TI. Em vista de sua importncia, o servio de diretrios normalmente implementado em

solues redundantes e, em alguns casos, distribudas de forma a atender melhor s requisies de clientes em rede. O acesso um servidor de diretrios tambm um elemento importante que pode influir diretamente no tempo de resposta que aplicaes tero ao questionar o diretrio. O protocolo mais usado para acesso a servidores de diretrios em ambiente livre o LDAP . um protocolo leve e muito popular com bom nmero de implementaes, inclusive no mundo de plataformas livres como o software livre OpenLDAP1. 3. Operao Integrada de Servios de TI Em ambiente proprietrio, existem algumas alternativas para um ambiente totalmente integrado como as solues de fabricantes como Novell e Microsoft. Em todas estas esto presentes as caractersticas do mundo proprietrio: dependncia de um nico fabricante, opes de suporte restritas e caras, polarizao para um conjunto limitados de plataformas ou tecnologias, custos de licenciamento altos, nenhuma liberdade de atuao no cdigo fonte e uma evoluo ditada apenas por diretrizes de negcio dos fabricantes. Em ambientes livres, muitas das caractersticas de desenvolvimento dos sistemas UNIX so herdadas, sendo considerada aqui, principalmente, a estratgia de se desenvolver funcionalidades em modo atmico para depois integr-las. Esta abordagem vlida tambm para os servios de rede em discusso. Desta forma, no existe atualmente em plataforma livre uma soluo completa e integrada de servios de rede para um ambiente de TI livre e de porte corporativo. Dentro da proposta de um sistema livre integrado, haver de existir no seu ncleo um servio de diretrios nico e saudvel acessado por servios e aplicaes externas via protocolo LDAP. Estas aplicaes obtem, assim, as informaes necessrias para realizar as tarefas normais de um ambiente de TI. A figura 1 ilustra esta abordagem. Este o primeiro passo rumo integrao dos diversos servios.

Figura 1 Servios de Rede numa Arquitetura Integrada 4. Aplicaes em Plataforma Livre Usurios em workstations necessitam de aplicaes para realizar seus trabalhos. Um dos servios de rede primordiais num ambiente de TI a distribuio de aplicaes para usurios em workstations. Esta tarefa no simples por que atua no mago do sistema computacional: seus programas e os arquivos que o implementam. Nos ambientes mais simples a estratgia manter uma equipe que v fisicamente em cada estao e realize o trabalho de instalao, atualizao e desinstalao de componentes e aplicaes de software. Obviamente no a soluo desejada diante do custo e das dificuldades de gerenciamento. Numa arquitetura de administrao integrada para plataforma livre, este processo deve ser automatizado para permitir um controle total de que aplicaes esto sendo instaladas e atualizadas, mantendo as informaes relacionadas no servio de diretrios. Uma aplicao constituda por alguns ou todos os seguintes elementos:

Arquivos executveis binrios para uma determinada plataforma computacional (i386, AMD, Palmtops, Mainframe, etc)

OpenLDAP www.openldap.org

Arquivos de instruo em linguagens compiladas (cdigo fonte a ser compilado previamente para execuo) Arquivos de instruo em linguagens interpretadas (como por exemplo scripts) Ambiente de interpretao (como uma mquina virtual JAVA ou interpretador PERL) Bibliotecas de rotinas compiladas ou no Arquivos de configurao diversos Arquivos adjuntos necessrios para a aplicao: imagens, documentao, animaes, palhetas de cores, drivers, ou qualquer outro

Em plataforma livre comum a disponibilizao de software em formato aberto. Com isso possvel a visualizao de seu cdigo fonte, mas exigido o passo de compilao do mesmo, de forma a criar arquivos executveis binrios especficos para a plataforma em questo . Entre as vantagens desta alternativa est o fato do cdigo poder ser auditado (verificado) e alterado, de acordo com possveis demandas de personalizao e gerao de binrios otimizados para a plataforma. Na montagem da rvore de arquivos de cdigo fonte necessrio que se tenha a informao de que arquivos de cdigo compem o binrio sendo criado. Mais alm, um mesmo binrio pode ser criado a partir de vrios binrios intermedirios chamados de arquivos objetos. Assim, os arquivos objetos podem compor um arquivo executvel ou at mesmo uma biblioteca. Para descrever estes relacionamentos, comum o uso de ferramentas de automatizao do processo de montagem dos binrios necessrio para a aplicao. O utilitrio make2 pode manter as informaes de criao dos binrios em arquivos de configurao chamados de makefiles. Nestes, esto descritos todos os arquivos de cdigo e as instrues para a compilao e montagem dos binrios (alvos). Uma vez pronta, a aplicao disparada no sistema por um arquivo executvel que se encarrega de realizar as devidas chamadas para os demais componentes. 5. Pacotes de software Cada aplicao composta de um ou mais pacotes de software que podem conter os tipos de arquivos listados anteriormente. Os pacotes so criados e mantidos de forma individual e so tratados pelas operaes de distribuio de software desta mesma forma. Um pacote de software um conjunto organizado e completo de arquivos e instrues para sua instalao num sistema computacional. Este conjunto compe principalmente aplicaes mas pode conter bibliotecas, documentao ou dados quaisquer . Configuraes como o acerto de caminhos padres e ajuste de variveis de ambiente podem ser necessrias e estaro descritas no prprio pacote. Cada pacote possui uma numerao de verso que o identifica diante das demais verses do mesmo pacote e serve de referncia para as informaes de dependncias. Apesar de individualizados, os pacotes de software podem ter dependncias uns dos outros. Por exemplo: se for necessria a instalao de uma aplicao de criptografia, ela pode requerer a prvia instalao no sistema de uma biblioteca de rotinas criptogrficas de que faz uso. Diante deste fato, os mecanismos de gerenciamento de pacotes a serem adotados devero compreender corretamente a cadeia de dependncias que existe entre pacotes de software. Para realizar as funes de instalao e manuteno de aplicaes em estaes ou at mesmo servidores, necessria a definio de formatos padres para transporte dos arquivos e suporte de instalao das aplicaes. Dentre as alternativas de formatos de pacotes em software livre, as mais usadas so: o formato RPM (RedHat Package Manager)3, o dpkg (arquivos .deb - usado pelo gerenciador de pacotes da distribuio Linux Debian4) e o formato usado pela distribuio Slackware5 (arquivos .tgz). Todas tm em comum o objetivo de permitir a instalao fcil via rede ou outras mdias como CD's e DVD's. Cada uma porm organiza os arquivos e configuraes de formas diferentes e podem ou no exigir no sistema ferramentas de manipulao destes pacotes como o RPM (utilitrio rpm) e o Debian (utilitrio dpkg). O formato Slackware oferece utilitrios mas permite que se trabalhe diretamente com os pacotes realizando as operaes manualmente. Um item importante a considerar nos formatos de pacotes a facilidade de se ter scripts de pr e psinstalao que rodariam, respectivamente, antes e depois da instalao do pacote. Este recurso d grande flexibilidade para personalizar o sistema para o pacote em questo. Todos os formatos citados possuem esta caracterstica. Os pacotes tambm podem conter cdigo fonte. O suporte ao uso de makefiles outro item de interesse. Ferramentas de gerao de pacotes nos formatos citados existem e podem suportar a gerao de pacotes binrios a partir de cdigo fonte atravs da anlise de makefiles.
2 3 4 5

http://www.gnu.org/software/make/make.html http://www.rpm.org http://www.debian.org http://www.slackware

6. Servio de Distribuio de Software O ciclo de vida de uma aplicao se inicia com a instalao da mesma na estao do cliente. O processo de instalao de aplicaes, em maior ou menor grau, envolve as seguintes operaes:

1. Cpia dos pacotes de software (normalmente em formato compactado) que compem a aplicao, para a
estao via rede. 2. Descompresso dos arquivos em local apropriado 3. Gerao dos arquivos binrios executveis 4. Transferncia dos arquivos gerados para locais apropriados dentro da estao 5. Configuraes da aplicao na estao, onde pode ser necessria a interao com o usurio administrador da mesma (usurio root). 6. Configuraes especficas para o usurio, onde pode ser necessria a interao com o mesmo. Estes passos nem sempre so fceis e diretos em ambiente livre , principalmente para usurios leigos. A soluo adotada automatizar ao mximo o processo com o uso de instaladores. O problema que plataformas livres se diferem bastante em termos de configuraes e componentes presentes no sistema. Alm disso, preciso que o sistema tenha o suporte devido ao processo de compilao e gerao dos binrios que rodaro a aplicao. Itens como compiladores e bibliotecas devem j estar disponveis no sistema, caso contrrio, os prprios devem ser instalados previamente. Com isso, surgiram vrias ferramentas em plataforma livre que padronizam e automatizam o processo de instalao e manuteno de software nas estaes de trabalho, realizando ou no (no caso do rpm) a instalao via rede. Algumas das opes so utilitrios em linha de comando como o prprio rpm (usado com pacotes do formato RPM), o yum6 (tambm usado com pacotes RPM), o apt-get7 (usado com pacotes debian .deb) e o emerge (usado pelo Portage sistema gerencidor de software da distribuio Linux Gentoo8). Outros j so aplicaes em ambiente grfico como o synaptic9 (que trata pacotes do tipo RPM ou Debian), o up2date (usado pela distribuio RedHat) e o Yast (usado pela distribuio SUSE10 para pacotes RPM). Um detalhe importante a ressaltar que em plataforma livre as aplicaes esto em processo de desenvolvimento e evoluo contnua. Isto resulta numa necessidade constante de atualizaes dos pacotes de software instalados. Qualquer arquitetura que se proponha para este fim dever permitir este tipo de mecanismo de modo eficiente e flexvel. Em outras palavras, a arquitetura dever tratar adequadamente as atualizaes atravs e controle de verses de pacotes de software. Para tratamento correto dos aspectos acima necessrio um servio de distribuio de software via rede. O servio de distribuio de software responsvel em garantir nas estaes de usurios (e at em servidores) a correta descarga, instalao e configurao de aplicaes atravs de seus pacotes de softwares, mantendo contnua observncia dos mesmos com o objetivo de garantir as devidas atualizaes via rede. Para distribuir software, necessrio implementar um reservatrio para os pacotes de software. Este deve ser alcanado via rede, onde clientes do sistema de distribuio possam receber os pacotes e installos. No interessante que se tenham cpias diversas dos pacotes em cada estao ou servidor de forma descoordenada. A abordagem com um repositrio master garante que haja somente um ponto de distribuio bsico evitando problemas de incoerncia nos pacotes, mas coloca toda a responsabilidade do processo de distribuio num nico servidor de arquivos. Para evitar isso, mais repositrios podem ser agregados ao processo, dividindo a carga de consultas e downloads no repositrio master . Estes repositrios secundrios seriam ento um espelho do que existe no repositrio master onde as cpias inicialmente so colocadas. Periodicamente seriam feitas sincronizaes dos vrios pacotes de software a partir do servidor master para manter a atualidade dos pacotes nos repositrios secundrios. Com isso, descaracteriza-se o nico ponto de falha do repositrio master e pode-se realizar uma distribuio escalvel atravs de uma rede de distribuio de pacotes de software que cresa com o ambiente de TI corporativo. Dentre os itens notveis em tal arquitetura de distribuio esto: Instalao transparente e automtica para o usurio o sistema distribuidor deve contar com uma poro cliente nas estaes ou servidores e que analisar cada aplicao sendo instalada e buscar todas as suas dependncias automaticamente via rede poupando o usurio leigo de intervenes neste sentido. Assim, dependncias entre pacotes e verses corretas sero automaticamente tratadas pelo cliente para os formatos
6 7

8 9 10

http://linux.duke.edu/projects/yum/ O utilitrio apt-get tambm foi portado para ambientes RPM pela Conectiva com o nome AptRpm (https://moin.conectiva.com.br/AptRpm) http://www.gentoo.org http://www.nongnu.org/synaptic/ http://www.novell.com/linux/suse/index.html

de pacotes de software suportados. Adequao s limitaes de rede o sistema pode otimizar a transferncia dos pacotes. Podem-se utilizar mecanismos de compresso ou mesmo comprimi-los. O uso de recursos de rede que otimizem o uso de banda tambm desejvel, como o rsync11 para transferncia de arquivos. tambm importante verificar a operao do sistema atrs de configuraes seguras com firewalls. Categorizao de software interessante que se possa criar grupos de softwares em categorias como atualizaes de segurana, aplicaes grficas, utilitrios de sistema, programas desenvolvidos internamente ou at mesmo dividindo os pacotes por distribuio Linux. Uso com diferentes plataformas o sistema pode suportar diferentes arquiteturas e distribuies do sistema operacional. Isto significa manipular diferentes conjuntos de aplicaes para cada uma das plataformas, tratando corretamente suas diferentes verses e particularidades. Administrao do servio de distribuio de pacotes de software observar se possvel ter a administrao via WEB ou atravs de ferramenta prpria com controle de usurio e senha para o administrador de pacotes de software. Este processo deve ser seguro pois falhas podem permitir a entrada de softwares maliciosos como cavalos de tria ou impedir atualizaes de segurana. importante tambm que exista a facilidade de anncio de novos softwares para os usurios, j que normalmente no haver limitaes de licenciamento (principalmente softwares livres). Distribuio agendada esta facilidade permite ao administrador definir pacotes a serem imediatamente instalados (push), ou instalados at determinada data. Isto garante a contnua atualizao do parque de computadores, evitando que aplicaes nas mesmas fiquem antigas demais (por exemplo: atualizaes de segurana). Uma vantagem importante deste item a flexibilidade de se executar distribuies de pacotes em larga escala ao mesmo tempo na mesma rede. Tolerncia a falhas e segurana a arquitetura deve prever o funcionamento na ocorrncia de queda de repositrios, mesmo sendo o master, mantendo ainda assim o servio ativo. Redundncia de rede pode ser obtida com anlise especfica e uso de recursos conhecidos como DNS para encontrar servidores, uso de IP's virtuais, etc. Aspectos de segurana ainda podem ser avaliados no que diz respeito integridade dos pacotes (como o uso de mecanismos de checagem com MD5) e o transporte dos pacotes entre repositrios e entre repositrio e estao (como o uso de opes de transferncias de arquivos seguras como scp12 ou sftp13 e usando procedimento de autenticao com chaves criptogrficas). 7 O Servio de Distribuio Automatizada de Pacotes de Software dentro de uma Arquitetura de Gerenciamento Integrada No ambiente corporativo, o servio de distribuio de software figura como um dos mais importantes no gerenciamento de complexidade do ambiente. Porm, em plataforma livre, ele ainda no possui a integrao adequada com toda uma infra-estrutura de gerenciamento do ambiente de TI. Esta arquitetura integrada parte de um servio de diretrio preenchido com as informaes necessrias para os servios de rede operarem (como o prprio servio de distribuio de software). Para a correta integrao com o servio de diretrios, devero existir objetos que contenham as informaes necessrias para que clientes e a administrao de distribuio de software possam consultar e alterar. Realizando assim o controle adequado do processo de distribuio. As regras para administrao integradas estaro em objetos que devem descrever itens bsicos como:

1. Usurios e grupos de usurios cadastrados e ativos no ambiente


2. Aplicaes disponibilizadas pelo servio de distribuio de pacotes de software 3. Privilgios de instalao, uso e atualizao de aplicaes para grupos de usurios e estaes de trabalho 4. Inventrio atualizado de TI do ambiente configuraes de hardware e software instalados em cada uma das mquinas e servidores Estas regras devem descrever os processos internos de cada corporao. Usurios e grupos sero definidos unicamente para toda a arquitetura. Permisses de instalao e execuo de aplicaes so dadas com base nas regras em vigor nos processos internos de TI. As mesmas informaes de usurios e grupos se aplicaro para os demais servios integrados da arquitetura de gerenciamento, como autenticao e impresso em rede.
11 12 13

http://samba.anu.edu.au/rsync/ Secure copy parte do pacote de software ssh Secure FTP parte do pacote de software ssh

O processo de administrao do servio de distribuio de software por sua vez ser responsvel em inserir e retirar os pacotes de softwares a serem disponibilizados no repositrio master, atualizando em paralelo o servio de diretrios com estas informaes atravs do protocolo LDAP. O cliente nas estaes e servidores deve, no processo de inicializao do sistema ou mesmo no login de usurios, checar as aplicaes e atualizaes disponveis segundo os privilgios aplicados no servio de diretrios. Aps este passo, as aplicaes e atualizaes podem ento ser instaladas ou executadas. Os privilgios podem se ater a usurios e grupos de usurios, ou serem aplicados tambm sobre conjuntos de computadores. Assim, para ser possvel uma instalao ou execuo, deve haver o cruzamento de dados de usurios e grupos com os dados de estaes. Neste sentido, um passo intermedirio mas necessrio na aceitao da instalao de uma aplicao, a prvia checagem de requisitos de plataforma para a instalao de pacotes de software. Isto possvel atravs de anlise das informaes de inventrio contidas no servio de diretrios. Por exemplo: se um pacote de software que contm um aplicativo de escritrio deve ser instalado numa estao, ento feita uma checagem se existe espao em disco ou quantidade de memria suficiente na mesma analisando o inventrio da estao nas informaes do servio de diretrios. Sendo os requisitos de plataforma satisfeitos, a instalao prossegue checando os privilgios necessrios. A figura 2 ilustra a arquitetura de distribuio de software integrada.

Figura 2 Servio de Distribuio de Software Integrado com o Servio de Diretrios Dentro da soluo com protocolo LDAP possvel se encontrar objetos nos schemas de objetos padres para atender somente ao item 1. Os demais itens devem ser modelados e descritos como objetos em novos schemas que estenderiam o conjunto de objetos num servidor LDAP em plataforma livre, preferencialmente o OpenLDAP. At o momento atual, nenhuma das alternativas em software citadas neste trabalho possui as caractersticas completas para uso na soluo integrada sendo proposta. A soluo ser a montagem do sistema partindo dos componentes existentes e desenvolvendo as partes inexistentes como a consulta via LDAP ao servio de diretrios. O sistema de gerenciamento de ambientes de TI (GATI) , possui um mdulo integrado de distribuio de software que segue as linhas aqui descritas e est em desenvolvimento da sua verso 2. 8. Concluso Um ambiente de TI saudvel e escalvel exige a integrao dos seus servios bsicos de forma a permitir sua operao devidamente controlada, otimizando recursos e atendendo melhor s demandas de usurios. Foi visto que esta soluo deve conter um servio de diretrios cujo objetivo manter as informaes operacionais de uso dos diversos servios de rede. A opo mais indicada em plataforma livre o uso do padro LDAP, cuja implementao mais popular o OpenLDAP.

Diante da diversidade de aplicativos disponveis, necessrio o trabalho de desenvolvimento e integrao da arquitetura de servios de rede bsicos para plataformas baseadas em ambiente livre. Este trabalho parte do que j existe em termos de funcionalidades e deve complementar o sistema com as funes de integrao com o servio de diretrios, principalmente o uso do protocolo LDAP e a modelagem de novos objetos no servio de diretrios para o trato das informaes operacionais. Bibliografia

[1] [2] [3] [4] [5] [6] [7] [8] [9]

WAHL, M; HOWES, T. RFC 2251: Lightweight Directory Access Protocol v3. IETF, 1997. VOLKERDING, Patrick; FOSTER-JOHNSON, Eric; REICHARD, Kevin. Linux Programming. 1 Ed. Mis Press, 1997. BOVET, Daniel; CESATI, Marco. Understanding the Linux Kernel. 2 Ed. OReilly, 2003. FOSTER-JOHNSON, Eric. Red Hat RPM Guide. 1 Ed. Wiley Publishing Inc., 2003. Slackware Packaging System. Disponvel em: <http://www.slackware.org/config/packages.php>. Acessado em: 11 dez. 2004. BAILEY, Edward. , Maximum RPM. 1 Ed. Sams, 1997. Create Debian Linux Packages: Learn how to build easy-to-distribute packages for Debian users. 2003. Disponvel em: < http://www-106.ibm.com/developerworks/linux/library/l-debpkg.html>. Acessado em: 15 dez. 2004. KIRZNER, Rikki. Electronic Software Distribution: A Long Shot. 2003. Disponvel em: <http://www.uniforum.org/news/html/publications/ufm/mar96/swdist.html>. Acessado em: 13 dez. 2004. BLY, Martin; ALLAN, Alasdair; JENESS, Tim. Source Code Management and Software Distribution using Open Source Technologies. 2003. Disponvel em: <http://www.adass.org/adass/proceedings/adass02/reprints/P8-2.pdf>. Acessado em: 1 dez. 2004. LUERKENS, Cameron; COLE, John; LEGG, Danielle. Software Distribution to PC Clients in a Enterprise Network. 1998. Disponvel em: <http://www.usenix.org/publications/library/proceedings/lisa-nt98/full_papers/luerkens/luerkens.pdf>. Acesso em: 1 dez. 2004. ANDERSON, Paul. Software Distribution and Repositories. 1997. Disponvel em: <http://homepages.inf.ed.ac.uk/dcspaul/publications/SoftDist.pdf>. Acessado em: 13 dez. 2004. CRUZ, Fernando; SANTOS, Giovanni; MEDEIROS, Raissa; et al. Uma Ferramenta para a Administrao de Servios de Diretrios Basedo no OpenLDAP. Anais do 5 Frum Internacional de Software Livre, pg 91, Porto Alegre, 2004. Anais.

[10]

[11] [12]