Your SlideShare is downloading. ×
Instalação e Atualização Automática de Aplicações para Ambientes Corporativos
Instalação e Atualização Automática de Aplicações para Ambientes Corporativos
Instalação e Atualização Automática de Aplicações para Ambientes Corporativos
Instalação e Atualização Automática de Aplicações para Ambientes Corporativos
Instalação e Atualização Automática de Aplicações para Ambientes Corporativos
Instalação e Atualização Automática de Aplicações para Ambientes Corporativos
Instalação e Atualização Automática de Aplicações para Ambientes Corporativos
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Instalação e Atualização Automática de Aplicações para Ambientes Corporativos

710

Published on

Artigo apresentado na SUCESU - 2005

Artigo apresentado na SUCESU - 2005

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
710
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Instalação e Atualização Automática de Aplicações em Plataforma Livre para Ambientes Corporativos Mauro Tapajós Santos Renata Abadia Rodrigues de Oliveira Universidade Católica de Brasília tapajós@abordo.com.br, renatarodrigues@ucb.br Resumo Em ambientes corporativos é comum a necessidade de instalação e atualização de aplicações. Noambiente Linux isto nem sempre é uma tarefa trivial. As várias distribuições linux criaram diferentes gerenciadores de pacotes de software, como o RPM,APT, Apt-Rpm, etc. Estes gerenciadores facilitam consideravelmente o processo de instalação, mas aindanão atendem às necessidades de um ambiente de TI complexo, como, por exemplo, controlar um ambientedistribuído de repositórios de software e considerar políticas de privilégios sobre usuários ou grupos queutilizarão as aplicações sendo distribuídas. Além disso, as ferramentas que acompanham as distribuições Linux apresentam limitaçõesoperacionais como exigir privilégios de usuário root na estação ou, ainda, conhecimentos detalhados doprocesso de instalação de pacotes de software pelo usuário. O que se propõe é um mecanismo automático de distribuição de pacotes de software para estaçõesde trabalho, que associa as facilidades de um gerenciador de pacotes de software – APT-RPM - com ogerenciamento de privilégios baseado em usuários ou grupos. Este serviço é parte de uma arquitetura degerenciamento completa que possui como base um serviço de diretório OpenLDAP distribuído e jáadaptado para execução em grandes ambientes de TI.1.Introdução Em sistemas Linux, a instalação e atualização de aplicações não é uma tarefa trivial. Com a suapopularização, várias empresas desenvolveram suas próprias soluções para instalação, os gerenciadoresde pacotes de software. Estes gerenciadores facilitaram o processo de instalação, mas ainda não atendemàs necessidades de um ambiente de TI complexo, como, por exemplo, controlar um ambiente distribuído derepositórios de software considerando políticas de privilégios sobre usuários ou grupos que utilizarão asaplicações a serem distribuídas. Além disso, para instalar aplicações, o usuário necessita de privilégios de superusuário. Concedertais privilégios em um ambiente corporativo não é uma boa prática. O usuário leigo pode causar danosirreparáveis ao sistema e ainda comprometer a segurança da organização. Neste contexto, este artigo apresenta uma solução que associa as facilidades de um gerenciador depacotes de software com o gerenciamento de privilégios baseados em um serviço de diretórios e permitindoque um usuário comum1 instale as aplicações.2.Gerenciadores de Pacotes de Software Fez-se necessário o estudo preliminar dos gerenciadores de pacotes de software para definir qual omais adequado para compor a solução proposta. Dentre os gerenciadores estudados destacam-se:2.1. RPM – RedHat Package Manager O RPM foi criado pela Red Hat, e posteriormente licenciado para toda a comunidade, para queoutras distribuições o adotassem. Dessa forma o RPM hoje é conhecido mais como ferramenta dacomunidade de software livre do que da própria Red Hat [1]. O gerenciamento de pacotes de software em sistemas Red Hat é feito por meio do RPM. Estaferramenta permite a instalação, atualização e remoção de pacotes de software, simplificando esteprocesso, se comparado ao tradicional, o qual exigia que todos os pacotes fossem compilados e instaladosatravés de um processo relativamente difícil e com grande consumo de tempo [1]. Com o RPM a instalação de software se torna mais simples, requerendo, na maioria dos casos,apenas a execução de um comando. Vale ressaltar que o RPM não trata de forma automática a resoluçãode dependências2 entre os pacotes de software. 2.2. APT – Advanced Package Tools1 Usuário comum é qualquer usuário diferente do superusuário (root).2 Dependências são pacotes requeridos para a instalação de outro pacote.
  • 2. O APT é um conjunto de ferramentas criado pelos desenvolvedores da distribuição Debian eutilizado para gerenciar os pacotes da distribuição de forma automática, de maneira que, quando o usuáriosolicita a instalação de um pacote, o sistema também instala (ou atualiza) todos os pacotes necessáriospara o funcionamento deste. Para seu funcionamento o APT utiliza um arquivo que lista as “fontes” de onde ele obterá os pacotes[2]. Estas “fontes” são chamadas de repositórios de software. 2.3. APT-RPM O APT-RPM é um porte, escrito e mantido pela Conectiva, da tradicional ferramenta APT dadistribuição Debian, para distribuições baseadas no sistema de pacotes RPM. [3] O APT-RPM é um avançado utilitário de gerenciamento de pacotes que oferece ao usuáriooperações como instalação, atualização e remoção de pacotes de uma forma bastante simples. Asdependências são tratadas automaticamente, de modo que ao solicitar a instalação de um pacote o próprioAPT verifica e busca as dependências necessárias de forma automática, assim como ocorre no APT dadistribuição Debian. [3] •Repositório de Software Assim como o APT da Debian, Apt-Rpm necessita de um repositório, de onde os pacotes serãoobtidos. Cada distribuição tem seus repositórios espalhados pela Internet. Nesse caso ao instalar o Apt-Rpm, pode-se escolher qual deles será utilizado, de acordo com a distribuição. [3] É possível ainda configurar um repositório próprio, num servidor local. Os softwares disponibilizadospodem ser previamente homologados antes de compor este repositório. Estes pacotes de software podemser disponibilizados via ftp ou http.2.4.Urpmi O urpmi está para a distribuição Mandrake assim como o Apt-Rpm está para a Conectiva, Red Hatou Fedora. Possui características parecidas, mas não idênticas. Ao menos que seja retirado da instalação ourpmi é automaticamente instalado no Mandrake [4].2.5. Fatores que contribuíram para escolha do gerenciador de pacotes de software Foi adotada Fedora Core como a primeira distribuição Linux para a qual a solução seriaimplementada. Assim o gerenciador escolhido deveria ser capaz de gerenciar pacotes no formato rpm, esolucionar dependências de forma automática. A configuração de um repositório próprio, a instalação, a atualização e a resolução de dependênciasde forma automática foram alguns dos testes feitos com o Apt-Rpm. O resultado satisfatório destes testes,levou à escolha deste conjunto de ferramentas como ponto de partida para implementação de uma soluçãode distribuição automática de aplicações em ambiente livre. Vale ressaltar que o principal motivo que contribuiu para que o RPM (Red Hat Package Manager),gerenciador que acompanha a distribuição Fedora Core, não fosse adotado foi o fato de não possibilitar aresolução automática de dependências.1.Serviço de Diretórios Como Parte Integrante da Solução Um diretório é como um banco de dados especializado e otimizado para leitura, apresentação ebusca de dados. Uma das diferenças entre um diretório e um banco de dados é que o diretório foi projetadopara oferecer mais serviços de consultas do que de escrita na base. Enquanto o banco de dados consideraa mesma quantidade de ocorrência para as duas operações. Desta forma, não é necessário que umdiretório dê suporte a muitas das operações realizadas em banco de dados [5]. Um serviço de diretório fornece uma maneira de encontrar, identificar e controlar os usuários e osrecursos disponíveis na rede. Esta modelagem permite que uma organização controle a segurança, oarmazenamento e os relacionamentos entre um ou mais recursos na rede. Além de permitir ogerenciamento destas informações, esta modelagem provê a autenticação e identificação dos usuários queacessam o serviço de diretório. O processo de autenticação é utilizado pelo LDAP para estabelecer os privilégios dos clientes paracada sessão. Assim, todas as operações serão controladas pelo nível de autorização do usuárioautenticado [5]. Para garantir os privilégios de um usuário ou grupo de usuários sobre uma aplicação ou umconjunto de aplicações foi adotado um Serviço de Diretórios baseados no OpenLDAP [6].
  • 3. Para implementação da solução foram criados novos schemas3 no OpenLDAP para armazenar asinformações sobre uma aplicação.2.Solução Implementada Esta seção passa do domínio do problema para o domínio da solução. Visando atender, principalmente, ambientes corporativos, onde manter um grande número demáquinas com suas aplicações atualizadas não é uma tarefa simples, implementou-se um mecanismo dedistribuição automática de aplicações cujos privilégios sobre estas aplicações estão armazenados noOpenLDAP.4.1. Arquitetura da Solução Homologador SDS- Pacotes RPM Adm in aCSPolicy232 homologados aCSPolicy23 Apache aCSPolicy2 LDAP Serviço de Diretório Administrador Administração GATI LDAP SSH openLDAP -Client apt- RPM rpm apt-rpm FTP- Servido client r FTP RPM ads aCSPolicy232 Usuário aCSPolicy23 aCSPolicy2 FTP Estação de usuário ADS SDS-Core Repositório de Software figura 1 – Arquitetura da Solução A solução implementada foi dividida em módulos, conforme mostra a figura acima. Cada um destesmódulos está descrito a seguir.4.2. SDS-Core O SDS-Core é o repositório onde os pacotes de software são incluídos e disponibilizados para queo usuário possa instalá-lo, atualizá-lo e repará-lo. A distribuição dos pacotes de software deste repositório pode ser feita via HTTP ou FTP. Para esta solução foi utilizado um servidor FTP, buscando evitar a configuração de um servidorWeb (Apache), e conseqüentemente a necessidade de um mais um serviço ativo no servidor. Com istopretende evitar problemas relativos à segurança causados pela abertura de mais uma porta do sistema. Os pacotes de software são disponibilizados no formato rpm para atender estações de trabalho comdistribuição Fedora Core.3 Definem quais são as classes de objetos e os atributos que podem ser armazenados em um serviço de diretórios que utiliza o protocolo LDAP
  • 4. SSHD RPM apt-rpm Servidor FTP aCSPolicy232 aCSPolicy23 aCSPolicy2 SDS-Core Repositório de Software figura 2 – Repositório de Software4.3. SDS-Admin Este módulo possui uma interface web, que permite ao administrador incluir os pacotes de softwareno repositório, bem como as informações referentes no serviço de diretórios. São disponibilizadas ainda,algumas funcionalidades para o administrador como consultar as aplicações contidas no repositório paraefetuar tarefas como remoção e inclusão de novas aplicações. Ao remover o software do repositório, as informações referentes ao mesmo são removidas doserviço de diretórios. No momento da inclusão, o pacote de software é enviado ao repositório e em seguida, através deum interface web (Apache), as informações como nome, versão, release, descrição e caminho de execuçãodos pacotes, é incluída no Serviço de Diretório, o que possibilita a sua disponibilização para o usuário. Estemódulo da solução é parte integrante de uma Ferramenta para a Administração de Serviços de DiretórioDistribuídos Baseados no OpenLDAP.[7] Homologador Administrador do SDS-Admin SDS- Admin Apache aCSPolicy232 aCSPolicy23 aCSPolicy2 Pacotes de software .rpm homologados a serem inseridos no SDS-Core Administração GATI figura 3 – SDS-Admin4.4. ADS – Agente de Distribuição de Solução O ADS é o módulo instalado na estação do cliente e permite ao usuário executar tarefas comoinstalar, atualizar, reparar e executar aplicações. O objetivo principal do ADS é ser um facilitador para ousuário, evitando que o mesmo tenha a necessidade de procurar por um software, bem como suasdependências, e instalá-los. É importante salientar que todas as tarefas executadas pela interface do ADStomam por base os comandos do APT-RPM. Antes de disponibilizar as funcionalidades para os usuários, o ADS consulta o Serviço de Diretório eobtém uma lista de software de acordo com as permissões de cada usuário. Com estas informações édisponibilizado para o usuário da estação um lançador de aplicações (launcher), de onde o usuário podeinstalar, atualizar, reparar e executar suas aplicações de maneira transparente. O ADS é um aplicativo desenvolvido utilizando a linguagem Tcl-tk, e suas funcionalidades estãodescritas na próxima seção.
  • 5. openLDAP- Client apt-rpm FTP- client RPM ads Usuário Autentica o usuário e obtém Estação de usuário a lista de aplicações com o Agente de disponíveis para o usuário. Oferece estas aplicações no Distribuição de Launcher (lançador de Software - ADS aplicações). Linguagens Previstas: Scripts: shell e tcl/tk Figura 4 – Estação de Trabalho – ADS instalado3.Funcionalidades do Sistema – Modulo ADS Esta seção descreve de forma resumida as funcionalidades do ADS5.1. Listar Aplicações do Usuário Esta função busca junto ao Serviço de Diretórios, informações relativas ao perfil do usuário, como ogrupo ao qual o mesmo pertence e a lista com os softwares a que o usuário tem permissão para utilizar.5.2. Verificar Status da Aplicação Selecionada Esta funcionalidade permite ao usuário verificar a situação dos softwares na máquina, possibilitandoa identificação das operações que poderão ser efetuadas para cada software da lista. O pacote de software analisado pode apresentar três diferentes estados: •Instalável: situação assumida pelo software quando o mesmo não foi encontrado na máquina do usuário. •Atualizável: nesta situação o software encontra-se instalado na máquina do cliente, mas em versão e/ou release inferior àquela que está no repositório de software (SDS-core). •Executável: um software é executável quando está instalado na máquina do usuário.5.3Atualizar Software Conforme citado no item anterior, esta funcionalidade será disponibilizada conforme o statusatribuído ao pacote. O objetivo desta função é permitir ao usuário atualizar um software quando a versão e/ou release do pacote disponível no repositório for diferente da versão e/ou release do pacote instalada naestação.5.4 Instalar Software Esta funcionalidade permite ao usuário instalar um software, disponível num repositório sempre queo mesmo não está instalado na sua estação.5.5.Reparar Software Esta funcionalidade permite ao usuário reparar um software que esteja apresentando algumproblema durante sua execução. Esta função consiste em reinstalar o software existente na estação dousuário.5.6 Executar Aplicação Esta funcionalidade permite ao usuário executar um software, a partir de uma lista de softwaresexecutáveis. O principal objetivo desta função é facilitar o trabalho dos usuários, visto que os softwares queele poderá executar são apresentados de forma automática.5.6 Tela Inicial do ADS A figura abaixo mostra uma das telas do ADS. Neste exemplo a aplicação está instalada, maspossui uma atualização disponível.
  • 6. Figura 5 – Tela Inicial do ADS1.Conclusão O tema tratado neste artigo mostrou-se bastante novo, não encontrando uma literatura específicaque tratasse do assunto aqui abordado, como um todo. Em ambientes coorporativos, o controle e distribuição de pacotes de software se mostraram comouma necessidade e já são implementados em vários ambientes proprietários. A grande diferença entre omecanismo aqui implementado e as soluções proprietárias é que este mecanismo se apresenta como umfacilitador, não havendo qualquer preocupação no que se refere ao controle de licenças de sofware, por setratar de softwares livres. Para viabilizar a implementação foi utilizado um gerenciador de pacotes de software. Nota-se queos gerenciadores aqui apresentados estão em um processo constante de evolução e há um esforço porparte de desenvolvedores em tornar as distribuições Linux cada vez mais amigáveis. Vale ainda ressaltar que a distribuição de pacotes de software realizada segundo uma política deacesso, de acordo com o perfil de cada usuário só foi possível através da expansão de alguns schemascriando novos tipos de atributos e classes de objetos para adequação das necessidades da solução. O objetivo principal desta solução é compor um processo de migração para plataforma livre, vistoque o Linux e o software livre em geral vem sendo aceito como parte da infra-estrutura de informática dealgumas organizações.2.Trabalhos Futuros •O módulo do ADS (Agente de Distribuição de Software) poderá ser reescrito em outra linguagem, possivelmente JAVA. •Realização da análise da compatibilidade entre os pacotes de software armazenados no repositório e as configurações de hardware, verificando se a estação do usuário tem espaço em disco disponível, memória e processador suficiente para suportar a instalação de um pacote. •Distribuição de pacotes não apenas para estações, mas também para servidores. •Atualizações de Kernel e patchs. •Possibilitar instalações automáticas para atender o caso de atualizações de antivírus, por exemplo. •Portar este mecanismo para outras distribuições, não ficando limitado ao Fedora Core 1 como nesta primeira versão.
  • 7. 1.Referências Bibliográficas[1] BMC Software. Managing and Deploying Software in a Linux Environment. Disponível em:<http://documents.bmc.com/products/documents/14/98/41498/41498.pdf> Acessado em Dez. de 2004.[2] Silva, Gustavo Noronha. Como usar o APT v1.8.5. Disponível em:<http://www.debian.org/doc/manuals/apt-howto/index.pt-br.html>. Acessado em Dez de 2004[3] Niemeyer, Gustavo. Tutorial: APT-RPM, aplicativo que facilita o download e instalação de pacotes.Revista do Linux, v. 50, p. 46-49, fev. 2004.[4] Ferreira, Marco Antônio. Utilizando o urpmi. Disponível em<http://www.vivaolinux.com.br/artigos/impressora.php?codigo=214>. Acessado em Abril de 2004[5] Carter, Gerald. LDAP: System Administration. 1.ed. Sebastopol: O’Rielly & Associates, Inc, 2003. 294 p.[6] Community developed LDAP software. Disponível em: <www.openldap.org> Acessado em Dez de 2004.[7] CRUZ, Fernando; SANTOS, Giovanni; MEDEIROS, Raissa; et al. Uma Ferramenta para a Administraçãode Serviços de Diretório Distribuídos Baseados no OpenLDAP. Anais do 5 Fórum Internacional de SoftwareLivre, pg 91, Porto Alegre, 2004. Anais.

×