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. No
ambiente 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 ainda
não atendem às necessidades de um ambiente de TI complexo, como, por exemplo, controlar um ambiente
distribuído de repositórios de software e considerar políticas de privilégios sobre usuários ou grupos que
utilizarão as aplicações sendo distribuídas.
         Além disso, as ferramentas que acompanham as distribuições Linux apresentam limitações
operacionais como exigir privilégios de usuário root na estação ou, ainda, conhecimentos detalhados do
processo 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ções
de trabalho, que associa as facilidades de um gerenciador de pacotes de software – APT-RPM - com o
gerenciamento de privilégios baseado em usuários ou grupos. Este serviço é parte de uma arquitetura de
gerenciamento 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 sua
popularização, várias empresas desenvolveram suas próprias soluções para instalação, os gerenciadores
de 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 de
repositórios de software considerando políticas de privilégios sobre usuários ou grupos que utilizarão as
aplicações a serem distribuídas.
         Além disso, para instalar aplicações, o usuário necessita de privilégios de superusuário. Conceder
tais privilégios em um ambiente corporativo não é uma boa prática. O usuário leigo pode causar danos
irrepará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 de
pacotes de software com o gerenciamento de privilégios baseados em um serviço de diretórios e permitindo
que 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 o
mais 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 que
outras distribuições o adotassem. Dessa forma o RPM hoje é conhecido mais como ferramenta da
comunidade 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. Esta
ferramenta permite a instalação, atualização e remoção de pacotes de software, simplificando este
processo, se comparado ao tradicional, o qual exigia que todos os pacotes fossem compilados e instalados
atravé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ção
de dependências2 entre os pacotes de software.

    2.2. APT – Advanced Package Tools

1
    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.
O APT é um conjunto de ferramentas criado pelos desenvolvedores da distribuição Debian e
utilizado para gerenciar os pacotes da distribuição de forma automática, de maneira que, quando o usuário
solicita a instalação de um pacote, o sistema também instala (ou atualiza) todos os pacotes necessários
para 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 da
distribuiçã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ário
operações como instalação, atualização e remoção de pacotes de uma forma bastante simples. As
dependências são tratadas automaticamente, de modo que ao solicitar a instalação de um pacote o próprio
APT verifica e busca as dependências necessárias de forma automática, assim como ocorre no APT da
distribuiçã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ão
obtidos. 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 disponibilizados
podem ser previamente homologados antes de compor este repositório. Estes pacotes de software podem
ser 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 Hat
ou Fedora. Possui características parecidas, mas não idênticas. Ao menos que seja retirado da instalação o
urpmi é 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 seria
implementada. Assim o gerenciador escolhido deveria ser capaz de gerenciar pacotes no formato rpm, e
solucionar 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ências
de 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ção
de 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 a
resoluçã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 e
busca de dados. Uma das diferenças entre um diretório e um banco de dados é que o diretório foi projetado
para oferecer mais serviços de consultas do que de escrita na base. Enquanto o banco de dados considera
a mesma quantidade de ocorrência para as duas operações. Desta forma, não é necessário que um
diretó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 os
recursos disponíveis na rede. Esta modelagem permite que uma organização controle a segurança, o
armazenamento e os relacionamentos entre um ou mais recursos na rede. Além de permitir o
gerenciamento destas informações, esta modelagem provê a autenticação e identificação dos usuários que
acessam o serviço de diretório.
         O processo de autenticação é utilizado pelo LDAP para estabelecer os privilégios dos clientes para
cada sessão. Assim, todas as operações serão controladas pelo nível de autorização do usuário
autenticado [5].
         Para garantir os privilégios de um usuário ou grupo de usuários sobre uma aplicação ou um
conjunto de aplicações foi adotado um Serviço de Diretórios baseados no OpenLDAP [6].
Para implementação da solução foram criados novos schemas3 no OpenLDAP para armazenar as
informaçõ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 de
máquinas com suas aplicações atualizadas não é uma tarefa simples, implementou-se um mecanismo de
distribuição automática de aplicações cujos privilégios sobre estas aplicações estão armazenados no
OpenLDAP.

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 destes
mó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 que
o 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 servidor
Web (Apache), e conseqüentemente a necessidade de um mais um serviço ativo no servidor. Com isto
pretende 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 com
distribuiçã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
SSHD
                                                                  RPM
                                                    apt-rpm
                                         Servidor
                                           FTP



                                                             aCSPolicy232
                                                          aCSPolicy23
                                                     aCSPolicy2




                                                   SDS-Core
                                            Repositório de Software


                                      figura 2 – Repositório de Software

4.3. SDS-Admin

         Este módulo possui uma interface web, que permite ao administrador incluir os pacotes de software
no 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 para
efetuar 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 do
serviço de diretórios.
         No momento da inclusão, o pacote de software é enviado ao repositório e em seguida, através de
um interface web (Apache), as informações como nome, versão, release, descrição e caminho de execução
dos pacotes, é incluída no Serviço de Diretório, o que possibilita a sua disponibilização para o usuário. Este
módulo da solução é parte integrante de uma Ferramenta para a Administração de Serviços de Diretório
Distribuí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-Admin

4.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 como
instalar, atualizar, reparar e executar aplicações. O objetivo principal do ADS é ser um facilitador para o
usuário, evitando que o mesmo tenha a necessidade de procurar por um software, bem como suas
dependências, e instalá-los. É importante salientar que todas as tarefas executadas pela interface do ADS
tomam 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 e
obté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 pode
instalar, atualizar, reparar e executar suas aplicações de maneira transparente.
         O ADS é um aplicativo desenvolvido utilizando a linguagem Tcl-tk, e suas funcionalidades estão
descritas na próxima seção.
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 instalado



3.Funcionalidades do Sistema – Modulo ADS

        Esta seção descreve de forma resumida as funcionalidades do ADS

5.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 o
grupo 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, possibilitando
a 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 status
atribuí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 na
estação.
5.4 Instalar Software
         Esta funcionalidade permite ao usuário instalar um software, disponível num repositório sempre que
o 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 algum
problema durante sua execução. Esta função consiste em reinstalar o software existente na estação do
usuário.

5.6 Executar Aplicação
       Esta funcionalidade permite ao usuário executar um software, a partir de uma lista de softwares
executáveis. O principal objetivo desta função é facilitar o trabalho dos usuários, visto que os softwares que
ele 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, mas
possui uma atualização disponível.
Figura 5 – Tela Inicial do ADS



1.Conclusão

         O tema tratado neste artigo mostrou-se bastante novo, não encontrando uma literatura específica
que tratasse do assunto aqui abordado, como um todo.
         Em ambientes coorporativos, o controle e distribuição de pacotes de software se mostraram como
uma necessidade e já são implementados em vários ambientes proprietários. A grande diferença entre o
mecanismo aqui implementado e as soluções proprietárias é que este mecanismo se apresenta como um
facilitador, não havendo qualquer preocupação no que se refere ao controle de licenças de sofware, por se
tratar de softwares livres.
         Para viabilizar a implementação foi utilizado um gerenciador de pacotes de software. Nota-se que
os gerenciadores aqui apresentados estão em um processo constante de evolução e há um esforço por
parte 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 de
acesso, de acordo com o perfil de cada usuário só foi possível através da expansão de alguns schemas
criando 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, visto
que o Linux e o software livre em geral vem sendo aceito como parte da infra-estrutura de informática de
algumas 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.
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ção
de Serviços de Diretório Distribuídos Baseados no OpenLDAP. Anais do 5 Fórum Internacional de Software
Livre, pg 91, Porto Alegre, 2004. Anais.

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

  • 1.
    Instalação e AtualizaçãoAutomá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. No ambiente 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 ainda não atendem às necessidades de um ambiente de TI complexo, como, por exemplo, controlar um ambiente distribuído de repositórios de software e considerar políticas de privilégios sobre usuários ou grupos que utilizarão as aplicações sendo distribuídas. Além disso, as ferramentas que acompanham as distribuições Linux apresentam limitações operacionais como exigir privilégios de usuário root na estação ou, ainda, conhecimentos detalhados do processo 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ções de trabalho, que associa as facilidades de um gerenciador de pacotes de software – APT-RPM - com o gerenciamento de privilégios baseado em usuários ou grupos. Este serviço é parte de uma arquitetura de gerenciamento 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 sua popularização, várias empresas desenvolveram suas próprias soluções para instalação, os gerenciadores de 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 de repositórios de software considerando políticas de privilégios sobre usuários ou grupos que utilizarão as aplicações a serem distribuídas. Além disso, para instalar aplicações, o usuário necessita de privilégios de superusuário. Conceder tais privilégios em um ambiente corporativo não é uma boa prática. O usuário leigo pode causar danos irrepará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 de pacotes de software com o gerenciamento de privilégios baseados em um serviço de diretórios e permitindo que 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 o mais 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 que outras distribuições o adotassem. Dessa forma o RPM hoje é conhecido mais como ferramenta da comunidade 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. Esta ferramenta permite a instalação, atualização e remoção de pacotes de software, simplificando este processo, se comparado ao tradicional, o qual exigia que todos os pacotes fossem compilados e instalados atravé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ção de dependências2 entre os pacotes de software. 2.2. APT – Advanced Package Tools 1 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 e utilizado para gerenciar os pacotes da distribuição de forma automática, de maneira que, quando o usuário solicita a instalação de um pacote, o sistema também instala (ou atualiza) todos os pacotes necessários para 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 da distribuiçã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ário operações como instalação, atualização e remoção de pacotes de uma forma bastante simples. As dependências são tratadas automaticamente, de modo que ao solicitar a instalação de um pacote o próprio APT verifica e busca as dependências necessárias de forma automática, assim como ocorre no APT da distribuiçã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ão obtidos. 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 disponibilizados podem ser previamente homologados antes de compor este repositório. Estes pacotes de software podem ser 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 Hat ou Fedora. Possui características parecidas, mas não idênticas. Ao menos que seja retirado da instalação o urpmi é 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 seria implementada. Assim o gerenciador escolhido deveria ser capaz de gerenciar pacotes no formato rpm, e solucionar 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ências de 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ção de 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 a resoluçã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 e busca de dados. Uma das diferenças entre um diretório e um banco de dados é que o diretório foi projetado para oferecer mais serviços de consultas do que de escrita na base. Enquanto o banco de dados considera a mesma quantidade de ocorrência para as duas operações. Desta forma, não é necessário que um diretó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 os recursos disponíveis na rede. Esta modelagem permite que uma organização controle a segurança, o armazenamento e os relacionamentos entre um ou mais recursos na rede. Além de permitir o gerenciamento destas informações, esta modelagem provê a autenticação e identificação dos usuários que acessam o serviço de diretório. O processo de autenticação é utilizado pelo LDAP para estabelecer os privilégios dos clientes para cada sessão. Assim, todas as operações serão controladas pelo nível de autorização do usuário autenticado [5]. Para garantir os privilégios de um usuário ou grupo de usuários sobre uma aplicação ou um conjunto de aplicações foi adotado um Serviço de Diretórios baseados no OpenLDAP [6].
  • 3.
    Para implementação dasolução foram criados novos schemas3 no OpenLDAP para armazenar as informaçõ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 de máquinas com suas aplicações atualizadas não é uma tarefa simples, implementou-se um mecanismo de distribuição automática de aplicações cujos privilégios sobre estas aplicações estão armazenados no OpenLDAP. 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 destes mó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 que o 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 servidor Web (Apache), e conseqüentemente a necessidade de um mais um serviço ativo no servidor. Com isto pretende 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 com distribuiçã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 Software 4.3. SDS-Admin Este módulo possui uma interface web, que permite ao administrador incluir os pacotes de software no 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 para efetuar 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 do serviço de diretórios. No momento da inclusão, o pacote de software é enviado ao repositório e em seguida, através de um interface web (Apache), as informações como nome, versão, release, descrição e caminho de execução dos pacotes, é incluída no Serviço de Diretório, o que possibilita a sua disponibilização para o usuário. Este módulo da solução é parte integrante de uma Ferramenta para a Administração de Serviços de Diretório Distribuí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-Admin 4.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 como instalar, atualizar, reparar e executar aplicações. O objetivo principal do ADS é ser um facilitador para o usuário, evitando que o mesmo tenha a necessidade de procurar por um software, bem como suas dependências, e instalá-los. É importante salientar que todas as tarefas executadas pela interface do ADS tomam 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 e obté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 pode instalar, atualizar, reparar e executar suas aplicações de maneira transparente. O ADS é um aplicativo desenvolvido utilizando a linguagem Tcl-tk, e suas funcionalidades estão descritas 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 instalado 3.Funcionalidades do Sistema – Modulo ADS Esta seção descreve de forma resumida as funcionalidades do ADS 5.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 o grupo 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, possibilitando a 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 status atribuí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 na estação. 5.4 Instalar Software Esta funcionalidade permite ao usuário instalar um software, disponível num repositório sempre que o 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 algum problema durante sua execução. Esta função consiste em reinstalar o software existente na estação do usuário. 5.6 Executar Aplicação Esta funcionalidade permite ao usuário executar um software, a partir de uma lista de softwares executáveis. O principal objetivo desta função é facilitar o trabalho dos usuários, visto que os softwares que ele 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, mas possui uma atualização disponível.
  • 6.
    Figura 5 –Tela Inicial do ADS 1.Conclusão O tema tratado neste artigo mostrou-se bastante novo, não encontrando uma literatura específica que tratasse do assunto aqui abordado, como um todo. Em ambientes coorporativos, o controle e distribuição de pacotes de software se mostraram como uma necessidade e já são implementados em vários ambientes proprietários. A grande diferença entre o mecanismo aqui implementado e as soluções proprietárias é que este mecanismo se apresenta como um facilitador, não havendo qualquer preocupação no que se refere ao controle de licenças de sofware, por se tratar de softwares livres. Para viabilizar a implementação foi utilizado um gerenciador de pacotes de software. Nota-se que os gerenciadores aqui apresentados estão em um processo constante de evolução e há um esforço por parte 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 de acesso, de acordo com o perfil de cada usuário só foi possível através da expansão de alguns schemas criando 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, visto que o Linux e o software livre em geral vem sendo aceito como parte da infra-estrutura de informática de algumas 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] BMCSoftware. 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ção de Serviços de Diretório Distribuídos Baseados no OpenLDAP. Anais do 5 Fórum Internacional de Software Livre, pg 91, Porto Alegre, 2004. Anais.