Lm 102 ce

Page 1

AUGUSTO CAMPOS p.14

MADDOG p.24

CEZAR TAURION p.26

O aumento da complexidade é o preço da expansão

Migração Windows para Linux

Qual será o futuro dos aplicativos de ERP?

MEDIALINX # 102 Maio 2013

» Relatórios do Squid com o SARG p.60

» Java, Ruby e Rails: conheça o JRuby on Rails p.74

» Benchmarks do GCC 4.3? p.58

» Becape de bancos de dados com a Libferris p.46

» LPI nível 2: Servidores NIS e DHCP p.52

VEJA TAMBÉM NESTA EDIÇÃO:

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRÁTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA ÁREA p.36

WWW.LINUXMAGAZINE.COM.BR

Com o DNSSEC, a resolução de nomes fica protegida de ataques. Mas seu preço vale a pena?

REDES: IPV6 p.64

Conheça as vantagens da nova versão do Internet Protocol, e veja por que é difícil adotá-la

» Cobit, CMMI, ITIL. Quais as melhores práticas? p.36

» ITIL na prática p.39

» Novidades do ITIL v3. p.44

SEGURANÇA: DNSSEC p.69

» O que dizem os profissionais certificados p.24

CASE ALFRESCO p.26 A Construcap agilizou seus projetos com o Alfresco

A REVISTA DO PROFISSIONAL DE TI

GOVERNANÇA COM

LINUX PARK 2008 p.28 Iniciada em Porto Alegre a temporada de seminários Linux Park de 2008

CEZAR TAURION p.34 O Código Aberto como incentivo à inovação

00044

R$ 13,90 € 7,50

9 771806 942009

#44 07/08

A REVISTA DO PROFISSIONAL DE TI

SAMBA CASE ALFRESCO p.26 A Construcap agilizou seus projetos com o Alfresco

LINUX PARK 2008 p.28 Iniciada em Porto Alegre a temporada de seminários Linux Park de 2008

CEZAR TAURION p.34 O Código Aberto como incentivo à inovação

#44 07/08

A REVISTA DO PROFISSIONAL DE TI

9 771806 942009

00044

R$ 13,90 € 7,50

A INTEROPERABILIDADE ENTRE SISTEMAS HETEROGÊNEOS DEIXOU DE SER UM PROBLEMA E PASSOU A SER A SOLUÇÃO DA INFRAESTRUTURA DE TI p.34 GOVERNANÇA COM

SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRÁTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA ÁREA p.36 » O que dizem os profissionais certificados p.24

» Confira as novidades e melhorias do novo Samba 4 p.35 » Cobit, CMMI, ITIL. Quais as melhores práticas? p.36 » ITIL na prática p.39

» Novidades do ITIL v3. p.44

SEGURANÇA: DNSSEC p.69

VEJA TAMBÉM NESTA EDIÇÃO:

Com o DNSSEC, a resolução de nomes fica protegida de ataques. Mas seu preço vale a pena?

» Relatórios do Squid com o SARG p.60

REDES: IPV6 p.64

» Becape de bancos de dados com a Libferris p.46

» Java, Ruby e Rails: conheça o JRuby on Rails p.74 » Benchmarks do GCC 4.3? p.58

» Poupe dinheiro utilizando Samba como controlador de domínio p.41 Conheça as vantagens da nova versão do Internet Protocol, e veja por que é difícil adotá-la

» LPI nível 2: Servidores NIS e DHCP p.52

WWW.LINUXMAGAZINE.COM.BR

» Appliances SerNet para Samba 4 p.49

SEGURANÇA p.54

Soluções para acesso remoto com autenticação de dois fatores

ANDROID p.68

Breve análise do novo tablet da Google, Nexus 10 e suas múltiplas facetas.

ESSENCIAIS p.72

Aprenda a utilizar as mais diversas extensões para o protocolo legado IMAP4

VEJA TAMBÉM NESTA EDIÇÃO: » Como lidar com pacotes de cluster p.61 » Otimize a organização de dados em disco com Defragfs p.64 » Gerenciamento de máquinas virtuais com Foreman e Puppet p.75

WWW.LINUXMAGAZINE.COM.BR


Zona de conforto

Expediente editorial

Editores Flávia Jobstraibizer fjobs@linuxmagazine.com.br Laura Loenert Lopes llopes@linuxmagazine.com.br Editor de Arte Hunter Lucas Fonseca hfonseca@linuxnewmedia.com.br Colaboradores Alan Holt, Falko Benthin, Bruce Byfield, Rich Bowen, Thomas Drilling, Christian Pape, Trommer Ronny, Peter Schulik, Kurt Seifried, Zack Brown, Jon “maddog” Hall, Alexandre Borges, Cezar Taurion, Gilberto Magalhães, Klaus Knopper, Augusto Campos. Tradução Laura Loenert Lopes Revisão Flávia Jobstraibizer Editores internacionais Uli Bantle, Andreas Bohle, Jens-Christoph Brendel, Hans-Georg Eßer, Markus Feilner, Oliver Frommel, Marcel Hilzinger, Mathias Huber, Anika Kehrer, Kristian Kißling, Jan Kleinert, Daniel Kottmair, Thomas Leichtenstern, Jörg Luther, Nils Magnus. Anúncios: Rafael Peregrino da Silva (Brasil) anuncios@linuxmagazine.com.br Tel.: +55 (0)11 3675-2600

Penny Wilby (Reino Unido e Irlanda) pwilby@linux-magazine.com

Amy Phalen (América do Norte) aphalen@linuxpromagazine.com

Hubert Wiest (Outros países) hwiest@linuxnewmedia.de

Diretor de operações Claudio Bazzoli cbazzoli@linuxmagazine.com.br Na Internet: www.linuxmagazine.com.br – Brasil www.linux-magazin.de – Alemanha www.linux-magazine.com – Portal Mundial www.linuxmagazine.com.au – Austrália www.linux-magazine.es – Espanha www.linux-magazine.pl – Polônia www.linux-magazine.co.uk – Reino Unido www.linuxpromagazine.com – América do Norte Apesar de todos os cuidados possíveis terem sido tomados durante a produção desta revista, a editora não é responsável por eventuais imprecisões nela contidas ou por consequências que advenham de seu uso. A utilização de qualquer material da revista ocorre por conta e risco do leitor. Nenhum material pode ser reproduzido em qualquer meio, em parte ou no todo, sem permissão expressa da editora. Assume-se que qualquer correspondência recebida, tal como cartas, emails, faxes, fotografias, artigos e desenhos, sejam fornecidos para publicação ou licenciamento a terceiros de forma mundial não-exclusiva pela Linux New Media do Brasil, a menos que explicitamente indicado. Linux é uma marca registrada de Linus Torvalds. Linux Magazine é publicada mensalmente por: Linux New Media do Brasil Editora Ltda. Rua São Bento, 500 Conj. 802 – Sé 01010-001 – São Paulo – SP – Brasil Tel.: +55 (0)11 3675-2600 Direitos Autorais e Marcas Registradas © 2004 - 2013: Linux New Media do Brasil Editora Ltda. Impressão e Acabamento: EGB Atendimento Assinante www.linuxnewmedia.com.br/atendimento São Paulo: +55 (0)11 3675-2600 Rio de Janeiro: +55 (0)21 3512 0888 Belo Horizonte: +55 (0)31 3516 1280 ISSN 1806-9428

Linux Magazine #102 | Maio de 2013

Impresso no Brasil

Uma das características básicas do ser humano é a predisposição inata a se manter no que se convencionou chamar de “zona de conforto”. É algo que faz parte do instinto de preservação da espécie, e, decerto, tem uma raiz evolucionária marcante, pois serve para reduzir gastos desnecessários de energia, o que, por sua vez, aumenta em geral nossas chances de sobrevivência em períodos de escassez de recursos naturais, reduzindo, de quebra, o risco de exposição desnecessária a perigos desconhecidos. É assim na natureza, é assim na nossa vida social e, claro, não é diferente no nosso modo de lidar com tecnologia. Exemplos não faltam: para quem se habituou a usar o Linux como ambiente de trabalho, com todos os seus recursos e facilidades, o uso do Windows é o mais gritante deles. O escrevinhador destas linhas já se pronunciou reiteradas vezes “burro demais” para usar o Windows. Mas podemos ir mais longe: combinações clássicas de tecnologia, como a associação da plataforma da Microsoft com os processadores de arquitetura x86 --- conhecida pelo jargão Wintel ---, fazem há anos as vezes do feijão com arroz no restaurante da computação, independentemente de essa ser sempre a melhor escolha. Do lado do servidor, por outro lado, a regra atualmente é, no geral, uma combinação dos processadores da referida arquitetura com o Linux --- neste caso, já se fala em Lintel. No mundo da mobilidade, a combinação da vez é entre Linux (na figura da distribuição Linux do Google, o Android) e os processadores de arquitetura ARM. Desta feita, o abandono à tal zona de conforto precisa necessariamente estar aliado a um grande estímulo, seja ele financeiro ou social --- neste último caso, o tal do fator “coolness”. E, quando esse estímulo simplesmente não aparece, muitas vezes oportunidades espetaculares acabam por ser desperdiçadas. O profissional e o gestor de TI, bem como os próprios fabricantes de tecnologia, deveriam poder se despir de hábitos arraigados e buscar a solução que fosse mais adequada para cada situação, ao invés de teimar em usar o velho martelo de sempre, mesmo quando só há parafusos disponíveis. No cenário atual da computação, considerando a miríade de sistemas disponíveis, nos quais mesmo o hardware está se tornando livre, temos que aprender a avaliar caso a caso qual solução entrega a melhor relação custo-benefício, o menor aprisionamento a determinado fornecedor, a maior longevidade no mercado, as melhores condições de suporte e garantia, além, claro, da disponibilidade de profissionais para lidar com a solução. Ao fazer isso, seremos capazes de identificar algumas pérolas esquecidas sobre a penteadeira da TI, que são capazes de fornecer um diferencial competitivo que vai fazer a diferença na hora de fechar aquele contrato junto ao cliente. Deixar o comodismo de lado e correr aquela milha extra são atitudes essenciais para o sucesso profissional em um terreno de concorrência tão acirrada como é a TI de hoje. Ouça quem tiver ouvidos para ouvir. n

EDITORIAL

Diretor Geral Rafael Peregrino da Silva rperegrino@linuxmagazine.com.br

Rafael Peregrino da Silva Diretor de Redação 3


ÍNDICE

CAPA Vai dar Samba

34

Muito aguardada, a nova versão do Samba traz aprimoramentos e melhorias significativamente superiores a qualquer um de seus equivalentes comerciais. O que há de novo no Samba 4

36

Em dezembro de 2012, o mundo do software livre recebeu o primeiro e muito aguardado lançamento da série Samba 4.x. Samba para domínios

41

Poupe dinheiro com o Samba como controlador de domínio em um domínio legado estilo Windows NT4. Appliances SerNet para Samba 4

49

SerNet e Univention agora integram o novo Samba em seus appliances, e oferecem aos administradores uma maneira fácil de configurar e testar um controlador de domínio no Samba 4.

4

www.linuxmagazine.com.br


Linux Magazine 102 | ÍNDICE

ANDROID

COLUNAS Alexandre Borges

08

Charly Kühnast

10

Kurt Seifried

11

Augusto Campos 14 Klaus Knopper

15

Zack Brown

18

NOTÍCIAS

Nexus 10

Geral 22 ➧ Twitter implementa autenticação de dois fatores ➧ Brasil lidera ranking mundial de ataques com o vírus Conficker ➧ Positivo lança aplicativos para alunos do ensino Fundamental e Médio

68

A gigante Google lança um novo dispositivo pronto para combater o iPad. O Nexus 10 associa um bom hardware à versão mais recente do Android, tudo isso com um bom preço e um visual matador.

ANÁLISE

CORPORATE Coluna: Jon “maddog” Hall

24

Coluna: Cezar Taurion

26

Coluna: Gilberto Magalhães

28

Notícias 30 ➧ Komputer promove workshop gratuito de gestão de projetos ➧ HP e Google vão entregar solução para PME entrar na nuvem

Extensões de protocolo IMAP 4

➧ Ex-executivos da HTC criam nova marca de smartphones ➧ Telebras expande rede para melhorar ambiente dos provedores

TUTORIAL

Auxílio construção Como lidar com pacotes de cluster

70

Um conjunto de extensões de protocolo mantém o protocolo legado IMAP 4 utilizável, o que também ajuda os clientes móveis. Apresentamos uma mistura saudável de extensões úteis.

61

Adicionar e eliminar software a partir de um cluster em execução pode ser complicado; no entanto, muitos pacotes de aplicativos podem ser adicionados ou removidos facilmente com algumas ferramentas e alguns truques simples.

75

Máquinas virtuais podem ser fáceis de criar e remover se forem mais gerenciáveis. Possuir as ferramentas certas pode ajudar.

SEGURANÇA Acesso remoto com autenticação de dois fatores

54

Neste artigo, apresentamos uma visão geral das soluções de autenticação e abordagens potenciais para casos de uso comum que fogem ao uso de senhas regulares.

SERVIÇOS Otimize a organização de dados em disco O Defragfs otimiza arquivos em um sistema e permite que vídeos carreguem mais rapidamente e que grandes arquivos abram em um piscar de olhos.

Linux Magazine #102 | Abril de 2013

64

Editorial 03 Emails 06 Linux.local 78 Preview 82

5


Coluna do Alexandre

COLUNA

Metasploit – parte II Aprenda como uilizar workspaces e procurar por máquinas vulneráveis com o framework Metasploit. por Alexandre Borges

N

o mês passado abordamos como instalar o Metasploit em um ambiente Ubuntu e, naquele momento, evitamos utilizar a distribuição BackTrack para que tivéssemos a oportunidade de observar os passos envolvidos na configuração inicial do framework. A partir de agora não fará grande diferença se o leitor estiver usando o BackTrack ou uma instalação do Metasploit feita manualmente no Ubuntu. O Metasploit é um framework que nos permite realizar ataques dos mais variados e por isso é importante conhecer alguns termos: Exploit: método usado pelo hacker para atacar um serviço ou aplicativo da máquina alvo com o intuito de aproveitar-se de uma vulnerabilidade. Payload: código ou comando a ser executado contra nosso alvo através (ou após) de uma vulnerabilidade explorada. Shellcode: código normalmente escrito em linguagem Assembly que pode ser executado na máquina alvo e fornecer ao hacker um Shell interativo. Módulos auxiliares: softwares que podem ser usados com finalidades complementares, por exemplo, realizar um escaneamento. Para iniciar o Metasploit, execute o comando: msfconsole

Uma vez dentro do console Metasploit, teremos acesso à todas as alternativas possíveis para realizar os passos de um ataque sem qualquer restrição. É interessante notar que, assim que o comando msfconsole é executado, é apresentado um pequeno relatório com a versão do Metasploit, o número de exploits, payloads e módulos auxiliares que estão inclusos nesta versão. É por isto que, habitualmente, costumo atualizar as definições do framework com os exploits 8

mais recentes. Para realizar esta tarefa, basta executar o comando msf > msfupdate. O Metasploit utiliza um banco de dados PostgreSQL por padrão (e atualmente é o único suportado). As opções presentes do framework são diversas e, por exemplo, podemos executar comandos que nos ajudem a fazer o levantamento das informações sobre as máquinas nas quais estamos interessados: msf > whois linuxmagazine.com.br msf > nmap -sS 192.168.1.1

Isso funciona bem mas pode ser muito trabalhoso e incômodo gravar os resultados da saída de comandos com o nmap. Por este motivo, é possível que os resultados dos comandos sejam armazenados no próprio banco de dados do Metasploit e, mais especificamente, em uma área de trabalho (workspace) da ferramenta. Para que possamos listar quais workspaces temos, digite o comando msf > workspace``. Por padrão, sempre teremos o workspace “ default” setado como ambiente principal. Antes de prosseguirmos, surgiro que o leitor faça o download do ambiente Metasploitable 2 [1], com a finalidade de acompanhar o tutorial sobre o assunto. Trata-se de uma máquina virtual (VMware, é claro) com uma série de vulnerabilidades que podem ser testadas e exploradas pelo framework do Metasploit. Para facilitar a vida do leitor, o usuário e senha padrão do Metasploitable 2 é msfadmin. Caso haja tempo livre, surgiro fortemente ler os documentos na página da ferramenta [2]. Com o ambiente Metasploitable 2 no ar, é possível usar uma variante do nmap para armazenar os resultados do escaneamento:

www.linuxmagazine.com.br


msf > db_nmap - sS 192.168.1.107// (esta seria nossa máquina Metasploitable 2)

Depois de o escaneamento ser concluído, os resultados armazenados podem ser verificados de muitas formas. Por exemplo, para listar quais hosts foram escaneados até aqui, execute o comando msf > hosts. O resultado será algo como: Hosts 192.168.1.107

address -

mac 00:0C:29:D9:66:B9

msf > workspace teste msf > workspace msf > workspace default

name os_name os_flavor os_sp purpose info comments Unknown device

A máquina listada neste resultado possivelmente tem diversos serviços no ar. Para realizar uma listagem deles, execute o comando msf > services. Note que todos os resultados estão guardados no Metasploit e, quando necessário (e nas colunas futuras) poderemos usá-los da forma que nos for mais conveniente. Caso não seja mais o nosso objetivo guardar tais resultados, apague o workspace com o comando msf > workspace -d default e em seguida verifique o estado dos hosts com msf > hosts. O resultado do último comando deverá vir vazio pois apagamos o workspace no qual trabalhávamos. Como este workspace era o único que tínhamos, automaticamente o Metasploit cria um novo workspace para nós. Caso o leitor deseje trabalhar com

Linux Magazine #102| Maio de 2013

mais do que um workspace, poderá criar diversas outros através do comando msf > workspace -a teste. Para alternar entre os workspaces, faça:

No mês que vem volto com mais sobre o Metasploit. Até mais.

Mais informações [1] Metasploitable 2: http://sourceforge. net/projects/metasploitable/ files/Metasploitable2/ [2] Documentos do Metasploitable 2: https://community.rapid7.com/docs/ DOC-1875Alexandre Borges.

Alexandre Borges (linkedin: br.linkedin.com/in/aleborges) é instrutor e especialista sênior em sistemas operacionais Unix, Linux, Banco de Dados, Virtualização, Cluster, Storage, Servidores, Backup, Desempenho e Segurança, além de possuir profundo envolvimento com assuntos relacionados ao kernel Linux.

9


Coluna do Augusto

COLUNA

O preço da expansão Para expandir, determinados produtos e serviços pagam um alto preço: o aumento de sua complexidade. por Augusto Campos

U

m dos pontos fortes da expansão do Linux (e de vários componentes open source que costumam acompanhá-lo) foi a simplicidade de configuração de servidores para vários dos serviços online mais comuns: web, e-mail, compartilhamento, proxy, filtro de pacotes etc. Eram poucos componentes, com configurações bastante centralizadas, e que tinham todos os recursos exigidos – frequentemente eram as suas próprias implementações que definiam quais os recursos a exigir. Softwares como Samba, Squid, Postfix e Apache se tornaram a referência em seus âmbitos. Mas a forte presença na camada dos servidores levou ao avanço em direção à camada de aplicação, cujo suporte conduziu à criação do que ficou conhecido como a “plataforma LAMP”: Linux + Apache + MySQL + o ambiente de uma linguagem (PHP, Python, Perl etc.). A evolução do LAMP permitiu o fortalecimento de diversos aplicativos essenciais para uma série de serviços online: gerenciadores de conteúdo (como o WordPress ou o MediaWiki), fóruns, sistemas de suporte a portais, webmails, PIMs e outros. Nesse avanço que transforma cada vez mais os aplicativos criados para plataforma web em algo bastante próximo dos seus equivalentes nas plataformas desktop, multiplicam-se as demandas nos servidores: vários esquemas de cache, aceleradores, serviços de suporte à aplicativos, virtualização, redes de armazenamento, distribuição geográfica de conteúdo etc. Eles também ficaram mais críticos para a missão de muitos dos participantes do mercado, e assim, os investimentos em sua disponibilidade, escalonabilidade e segurança cresceu também. Tudo isso é bom e desejado, mas aquela relativa simplicidade de configuração e manutenção de 10 14

anos atrás se perdeu completamente pelo caminho, e hoje a administração profissional de sistemas envolve conhecer uma miríade de componentes que até pouco tempo atrás não existiam nem eram demandados, mas hoje se tornaram de fato indispensáveis. Eu aplaudo de pé essa tendência, pela evolução que significa para as plataformas livres. Mas para mim há um porém: escrevo diariamente para algum dos três blogs que mantenho (BR-Linux, Efetividade e BR-Mac), mas a cada mês a minha disponibilidade de tempo para escrever se reduz, porque as tarefas de administração das suas infraestruturas (que executo com muito prazer) são cada vez mais complexas e críticas. Para ficar em um exemplo que é de várias camadas acima, vou mencionar o WordPress: eu o escolhi há alguns anos, porque ele era fácil de instalar e atualizar, carregava rapidamente as páginas e, principalmente, porque na sua configuração padrão a interface de administração era simples e rápida de carregar, sem pausa entre a ideia e começar a escrevê-la. Mas os anos se passaram, ele inchou em recursos, e agora o cenário dele mudou, como ocorreu com os servidores web. Não me desagrada a mudança, mas não é a mim que ela interessa. A cada dia tenho pensado em buscar alternativas mais leves e simples para esses serviços (para o WordPress eu já encontrei), e compartilho com vocês este breve desabafo para que outros que passam pela mensa reflexão saibam: vocês não estão sozinhos! n Augusto César Campos é administrador de TI e, desde 1996, mantém o site BR-linux.org, que cobre a cena do Software Livre no Brasil e no mundo.

www.linuxmagazine.com.br


Linux Magazine #102 | Maio de 2013

23


Samba 4

CAPA

Vai dar Samba Muito aguardada, a nova versão do Samba traz aprimoramentos e melhorias significativamente superiores a qualquer um de seus equivalentes comerciais. por Flávia Jobstraibizer

M

uita espera e expectativa cercaram o lançamento da nova versão do Samba, que havia sofrido seu último salto de versão em 2003. A popular plataforma de interoperabilidade Samba é utilizada em milhares de servidores no mundo todo. A demora para a atualização de versão não significa que o sistema estava com seu desenvolvimento paralisado. Pelo contrário, a ferramenta esteve em constante desenvolvimento, recebendo correções, melhorias e extensões, até que chegou o momento – de acordo com a própria equipe que mantém o desenvolvimento do produto – de fechar um marco de desenvolvimento e lançar a nova versão. Produtos como o Samba são imprescindíveis nos dias atuais, onde diariamente somos obrigados a conviver harmoniosamente com os mais diferentes tipos de sistemas operacionais em uma mesma rede. Manter a compatibilidade entre arquivos, sistemas e serviços em redes heterogêneas deixou de ser um esforço hercúleo desde que o Samba foi introduzido nas infraestruturas. Vale lembrar ainda que a migração da versão anterior para a nova versão é tão simplificada que gerou muitos elogios da comunidade. Não foram encontrados erros de qualquer tipo na maioria dos ambientes migrados. Ponto positivo para a equipe de desenvolvimento!

34

Uma das melhorias mais aguardadas da nova versão do Samba, é a alternativa (gratuita) para controlar um domínio Active Directory, eliminando assim a necessidade de um servidor Windows. E pasmem, isso foi conseguido (e testado exaustivamente) pela própria Microsoft. Outras novidades são o servidor de autenticação Kerberos integrado, servidor seguro de Dynamic DNS e uma nova infraestrutura RPC. Outras inúmeras melhorias e aprimoramentos são abordados nesta edição da Linux Magazine, com um completo artigo sobre tudo o que você pode esperar da nova versão. Seguindo a mesma linha de novidades, não deixe de ler o artigo que aborda o Samba como controlador de domínios, um dos mais usados recursos da ferramenta. E finalizando esta edição com chave de ouro, aprenda como integrar o Samba 4 ao Univention Corporate Server (UCS) com o appliance SerNet. Esta edição está tão imperdível quanto a nova versão do Samba! Aproveite! n Matérias de capa O que há de novo no Samba 4

34

Samba para domínios

40

Appliances SerNet para o Samba 4

46

www.linuxmagazine.com.br


Gerenciamento de cluster | TUTORIAL

Gerenciamento de cluster

TUTORIAL

Como lidar com pacotes de cluster Adicionar e eliminar software a partir de um cluster em execução pode ser complicado; no entanto, muitos pacotes de aplicativos podem ser adicionados ou removidos facilmente com algumas ferramentas e alguns truques simples. por Douglas Eadline

I

nstalar e configurar um cluster HPC não é tão difícil como costumava ser; algumas ferramentas fornecem recursos agradáveis que permitem a praticamente qualquer pessoa obter sucesso em pouco tempo. Uma questão que vale a pena considerar, no entanto, é a facilidade com que podemos mudar as coisas, uma vez que o cluster esteja em funcionamento. Por exemplo, se um usuário receber um cluster configurado e, em seguida, aparecer alguém e dizer: “preciso de um pacote XYZ construído com a biblioteca EFG versão 1.23”, existirá a possibilidade de reprovisionar as coisas a fim de atender tal necessidade, ou haveria uma maneira fácil de adicionar e remover software de um cluster em execução que seja minimamente invasiva? A resposta é “sim”. Antes de descrevermos como podemos organizar um cluster para ser mais maleável, alguma menção sobre provisionamento de pacotes será útil. Três métodos básicos são oferecidos por vários conjuntos de ferramentas: ➧ Image Based – Uma imagem de nó de disco é propagada para os nós na inicialização. Diferentes “rolls” (imagens) podem ser construídos para diferentes pacotes. Um exemplo são os Rocks Clusters [1].

Linux Magazine #102 | Maio de 2013

➧ NFS Root – Cada nó faz o boot e instala tudo como NFS root, exceto para coisas que mudam para cada nó (por exemplo, /etc, /var). Este sistema pode ser executado com menos disco ou com o disco cheio. Um exemplo é o oneSIS [2]. ➧ RAM Disk – Um disco RAM será criado em cada nó que mantém uma imagem do sistema em execução. O sistema de disco RAM pode ser criado em modo híbrido, no qual alguns arquivos estão disponíveis através do NFS, e ele pode ser executado com menos disco ou com o disco cheio. Um exemplo é o Warewulf [3]. (Uma boa descrição do Warewulf pode ser encontrada na série HPC Admin do Warewulf [4]). Independentemente do sistema de provisionamento, o objetivo é fazer alterações sem a necessidade de reiniciar os nós. Nem todas as mudanças podem ser feitas sem reiniciar nós (ou seja, mudando o provisionamento subjacente); no entanto, muitos pacotes de aplicativos podem ser adicionados ou removidos sem muita dificuldade se algumas medidas simples forem tomadas.

Dump em /opt

Em quase todos os clusters HPC, os usuários possuem um /home compartilhado globalmente, e um /opt path

global compartilhado também é possível. O NFS é utilizado em pequenos e médios clusters para compartilhar esses diretórios. Em clusters maiores, alguns tipos de sistemas de arquivos paralelos podem ser necessários. Em qualquer caso, sempre existe um mecanismo para compartilhar arquivos em todo o cluster. O método mais simples é instalar os pacotes em /opt. Esta abordagem possui a vantagem de “instalar uma vez e estar disponível em todos os lugares”, embora tenhamos que enfrentar alguns problemas com os arquivos de log; no entanto, em geral, este método irá funcionar com a maioria dos aplicativos de software. A questão principal com a qual os administradores devem lidar é a biblioteca de vínculo dinâmico. Como os pacotes não estão instalados no caminho padrão /usr/lib e não desejamos copiar entradas de pacotes em /etc/ld.so.conf/ nos nós, precisamos de uma forma de gerenciar o local para as bibliotecas. Claro, fazer a vinculação estática completa é uma possibilidade, e usar o LD_LIBRARY_PATH é outra, mas ambas as soluções impõem algumas exigências extras sobre os usuários, o que, no final das contas, volta para o administrador de sistemas para suportar quaisquer problemas. O 61


TUTORIAL | Gerenciamento de cluster

método preferido é instalar pacotes que “simplesmente funcionam”. A solução é muito simples. Primeiro, crie /opt/etc/ld.so.conf.d/ para que todos os pacotes posicionem seus caminhos de biblioteca em arquivos conf, como fariam em /etc/ ld.so.conf.d/. Em seguida, é necessário fazer uma pequena inclusão em /opt/etc/ld.so.conf para todos os nós (ou seja, precisa ser parte da etapa de provisionamento do nó, por isso está lá após o boot do nó). A linha adicional é: include /opt/etc/ld.so.conf.d/*.conf

Esta nova linha informa ao

ldconfig que deve procurar em /opt/ etc/ld.so.conf.d/ por caminhos de

biblioteca adicionais. Se um pacote é adicionado ou removido, tudo o que precisa acontecer é um ldconfig global em todos os nós para atualizar os caminhos da biblioteca. Esta etapa pode ser facilmente concluída com uma ferramenta como a pdsh. Assim, instalar um pacote global no cluster é tão simples como instalálo em /opt, com uma entrada em /opt/etc/ld.so.conf.d/ e execução em um ldconfig global. Se, por exemplo, possuirmos a versão atual do Open MPI instalada e um usuário quiser experimentar as bibliotecas PetSc com uma nova versão, poderá facilmente instalar e compilar tudo em /opt e terá o usuário executando o novo código sem reiniciar nós ou instruindo-os sobre as nuances da LD_LIBRARY_PATH. Agora

Listagem 1: Carregamento de módulos 01 if [ ‑z $NOMODULES ] ; then 02 LOADED=`echo ‑n $LOADEDMODULES|sed 's/:/ /g'` 03 for I in $LOADED 04 do 05 if [ $I != "" ] ; then 06 module load $I 07 fi 08 done 09 else export LOADEDMODULES="" 10 fi

62

que obtemos uma maneira de adicionar e remover pacotes facilmente do cluster, precisamos informar aos usuários sobre como usá-los.

fig para restringir os hosts de receber

Módulos de ambiente global

SendEnv LOADEDMODULES NOMODULES

Em um artigo da Admin HPC, descrevemos o pacote de módulos de ambiente [5]. (Recentemente observamos que alguns outros autores da Admin HPC também têm coberto o mesmo tema [6]). O uso dos módulos de ambiente [7] fornece fácil gerenciamento de várias versões e pacotes em um ambiente HPC dinâmico. Um dos problemas, no entanto, é como manter os módulos de ambiente quando utilizamos outros nós. Se usarmos o SSH para fazer login nos nós, então teremos uma maneira fácil de manter (ou não manter) o módulo de ambiente. Com um pouco de configuração, o protocolo SSH permite a passagem de variáveis de ambiente. Além disso, os módulos atualmente carregados são armazenados em uma variável de ambiente chamada LOADEDMODULES. Por exemplo, se carregarmos dois módulos (ftw e mpich2) e, em seguida, olharmos para o nosso ambiente, encontraremos: LOADEDMODULES= fftw/3.3.2/gnu4:mpich2/1.4.1p1/gnu4

Neste ponto, tudo o que precisamos fazer é inclui-lo em todas as sessões de cluster SSH, e então podemos recarregar o módulo de ambiente. Para passar uma variável de ambiente via ssh, tanto o arquivo /etc/ssh/ssh_config como o /etc/ssh/ sshd_config precisam ser alterados. Para começar, o arquivo /etc/ssh/ ssh_config precisa ter a seguinte linha adicionada a ele: AcceptEnv LOADEDMODULES NOMODULES

Tenha em mente que poderá usar a opção de host no arquivo ssh_con‑

esta variável. Da mesma forma, o arquivo sshd_conf precisa da seguinte linha adicionada: Uma vez que o serviço SSHD seja reiniciado, as futuras sessões SSH irão transmitir as duas variáveis para logins SSH remotos. Antes que o login remoto possa usar os módulos, ele deve ser carregado. Este passo pode ser realizado pela inclusão de um pequeno pedaço de código ao script .bashrc do usuário, como mostrado na listagem 1. Como pode ser visto a partir deste código, se NOMODULES for definido, nada é feito, e nenhum módulo é carregado. Se não for definido, cada módulo listado em LOADEDMODULES é carregado. Note que esta configuração assume o pacote do módulo e os arquivos do módulo ficam disponíveis para o nó. Considere o exemplo da listagem 2, na qual os dois módulos são carregados (fftw e mpich2) antes de efetuar login em outro nó (n0, neste caso). No primeiro login, os módulos são carregados no nó remoto. No segundo login, com NOMODULES configurado, nenhum módulo está disponível: conforme observamos, um pressuposto importante é a disponibilidade dos arquivos de módulo para todos

Listagem 2: Definição de NOMODULES 01 $ module list 02 Currently Loaded Modulefiles: 03 1) fftw/3.3.2/gnu4 2) 01 mpich2/1.4.1p1/gnu4 04 $ ssh n0 05 $ module list 06 Currently Loaded Modulefiles: 07 1) fftw/3.3.2/gnu4 2) 01 mpich2/1.4.1p1/gnu4 08 $ exit 09 $ export NOMODULES=1 10 $ ssh n0 11 $ module list 12 No Modulefiles Currently Loaded.

www.linuxmagazine.com.br


Gerenciamento de cluster | TUTORIAL

os nós. Ao colocar os arquivos de módulo no NFS compartilhado /opt, todos os nós podem encontrar os arquivos de módulo em um só lugar, e eles podem ser adicionados ou removidos sem alterar a imagem em execução no nó.

Em direção ao cluster RPM O ingrediente final para esta receita é encapsular ambas as ideias em pacotes RPM; ou seja, um RPM vai instalar um pacote em /opt, fazer a entrada em /opt/ld.so. conf.d, e instalar um arquivo de módulo. Dessa forma, com exceção de um ldconfig global, todo o pacote poderia ser instalado no cluster inteiro em uma única etapa. Se o pdsh (ou similar) forem necessários como parte do processo de instalação do RPM, o ldconfig global poderia ser feito pelos RPMs (da mesma forma

Tem novidade na Coleção Academy!

que um ldconfig local é feito por quase todos os RPMs). Claro, construir boas RPMs leva algum tempo, mas uma vez que tenhamos o “esqueleto” básico, não será tão difícil arrastá-las para os passos configure/make/install para vários pacotes. Uma vez que o usuário possua boas RPMs de cluster para seus aplivativos,

no entanto, a instalação e reinstalação é simples, conveniente, e compreende todo o cluster. n

Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em: cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/8579

Mais informações [1] Rocks Clusters: http://www.rocksclusters.org/wordpress/ [2] oneSIS: http://onesis.org/ [3] Warewulf: http://warewulf.lbl.gov/trac/ [4] Gerenciamento de cluster Warewulf: http://www.admin‑magazine.com/ HPC/Articles/Warewulf‑Cluster‑Manager‑Master‑and‑Compute‑Nodes/ [5] Gerenciamento do ambiente de módulos : http:// www.admin‑magazine.com/HPC/Articles/ Managing‑the‑Build‑Environmentwith‑Environment‑Modules/ [6] Módulos de ambiente Lmod: http://www.admin‑magazine.com/ HPC/Articles/Lmod‑Alternative‑Environment‑Modules/ [7] Módulos de ambiente: http://modules.sourceforge.net/

Instalação e congifuração de servidores VoIP com Asterisk. Configuração de ramais, extensões, secretária eletrônica, monitoramento e espionagem de chamadas, planos de discagem, URA e muitos outros aspectos que abordam o uso de centrais telefônicas IP PBX. Disponível no site www.LinuxMagazine.com.br

Linux Magazine #102 | Maio de 2013

63


TUTORIAL | Desfragmentação

Desfragmentação

TUTORIAL

Otimize a organização de dados em disco O Defragfs otimiza arquivos em um sistema e permite que vídeos carreguem mais rapidamente e que grandes arquivos abram em um piscar de olhos. por Erik Bärwaldt

E

m época de conteúdo digital, coleções de dados em domicílios residenciais estão crescendo rapidamente. Ao considerarmos que, apenas poucos anos atrás, discos rígidos com algumas centenas de gigabytes eram perfeitamente suficientes, hoje, a capacidade de armazenamento em disco de vários terabytes é comumente utilizada. O sistema de arquivos Linux ext2, ext3 e ext4 e não precisa de muita atenção, mas, ao longo do tempo, após inúmeras escritas e exclusões, os dados se tornam fragmentados. Isto diminui não só o disco rígido em si, como também todo o sistema – por vezes de maneira notável. Assim, os usuários avançados, mesmo no Linux, são aconselhados a ocasionalmente reorganizar os dados.

Fragmentado

A fragmentação é algo que afeta principalmente arquivos maiores que não cabem completamente no espaço livre do disco rígido por conta de uma falta de espaço contíguo suficientemente grande; assim, um arquivo irá residir em diferentes segmentos (quadro 1). Quando um arquivo é lido, as cabeças de leitura se mudam para uma nova posição várias vezes para recolher os fragmentos. 64

Este movimento leva tempo e continua a aumentar em discos fortemente fragmentados. Os dados do usuário não são a única contribuição para a fragmentação, o próprio sistema operacional incentiva a grande divisão: usuários avançados que gostam de experimentar e muitas vezes testar softwares também contribuem para a fragmentação através da instalação de novos programas para, em seguida, excluí-los. Partições nas quais mais da metade da capacidade é utilizada irão fragmentar os dados mais fortemente, já que o sistema precisa espalhar arquivos maiores por um número maior de áreas por conta da falta de espaço livre. Em última análise, ferramentas geralmente úteis como BleachBit [1] ou Rpmorphan [2] podem agravar a situação, sob certas circunstâncias, removendo arquivos que não são mais necessários: eliminações entre segmentos alocados geram blocos livres não contíguos.

Prevenção

Para minimizar a desfragmentação de arquivos, sistemas de arquivos comuns, como ext2 e seus sucessores ext3 e ext4 incluem alguns mecanismos para neutralizar o efeito. Por exemplo, na tentativa de copiar completamente os dados

livres para um espaço contíguo no disco rígido, o sistema de arquivos mantém os dados a serem escritos na memória RAM por um período de tempo até que o tamanho final seja determinado. Além disso, os sistemas de arquivos reservam grupos de blocos livres no disco rígido para armazenar por completo o volume de novos arquivos. Mesmo tais mecanismos pensados para o futuro não podem lidar plenamente com o problema.

Quadro 1: Teoria Um disco de computador precisa de pelo menos uma partição, que contnha um sistema de arquivos. Grandes discos de várias centenas de gigabytes de capacidade costumam ter várias partições, que por sua vez separam perfeitamente o sistema operacional e os dados. Em cada partição, o sistema de arquivos é responsável pela estrutura dos dados, que são organizadas em blocos no disco rígido. Em discos rígidos menores, um bloco possui 512 bytes. Há relativamente pouco tempo, os fabricantes começaram a oferecer unidades de formato avançado (AFD) com um tamanho de bloco de 4KB. Estas unidades possuem capacidades muito altas de armazenamento – de centenas de gigabytes até um certo número de terabytes. Para sistemas operacionais mais antigos, eles fornecem eletrônica que emula um tamanho de bloco de 512 bytes.

www.linuxmagazine.com.br


Desfragmentação | TUTORIAL

Figura 1 O Linux utiliza ferramentas padrão para fornecer informações significativas sobre o sistema de arquivos.

Como para muitos problemas, o Linux inclui soluções padrão para as quais outros sistemas operacionais requerem software adicional e, muitas vezes, caro. A fragmentação não é uma exceção, com o Linux oferecendo uma série de maneiras para resolver o problema. Antes de iniciar o que poderia ser uma execução de desfragmentação bastante demorada – dependendo do tamanho da partição – devemos primeiro verificar se o disco em questão é afetado pelo problema. Baixo fluxo de dados em um sistema não indica, necessariamente, um disco fragmentado. Com os novos discos rígidos da AFD, em particular, uma partição configurada incorretamente pode levar à perda significativa de velocidade, mesmo sem dados fragmentados.

Para determinar o grau de fragmentação, primeiro é preciso instalar o pacote e2fsprogs, se isto já não for feito durante a configuração inicial. As ferramentas incluídas neste pacote fornecem dados importantes sobre os sistemas de arquivos ext2/3/4. Certifique-se de desmontar a partição antes. Para fazer isso, se necessário, use o comando: $ umount <devicefile>

e execute o seguinte comando com privilégios administrativos em um terminal: # e2fsck ‑fn <devicefile>

Quando verificarmos a partição, veremos uma saída que mostra a porcentagem de blocos não contíguos na última linha. Não deixe que o

que pode parecer um valor elevado o assuste: a desfragmentação não vale a pena no Linux até que o valor aumente para mais de 20% dos blocos não contíguos (figura 1). Se quiser detalhes mais precisos sobre o grau de fragmentação, também é possível usar o comando: # dumpe2fs <devicefile>

para uma descrição detalhada. A ferramenta primeiro lista informações sobre o tipo de sistema de arquivos e, em seguida, os grupos de blocos individuais e seus respectivos dados. Na lista de grupos, observe a linha free blocks:. Se só encontrar uma área aqui, é porque está tudo OK. Mas se encontrar vários blocos livres, os dados contidos neste grupo estão parcialmente fragmentados. Quanto mais blocos a ferramenta disponibiliza, mais grupos de blocos serão afetados, e mais fortemente os dados da partição serão fragmentados (figura 2).

Arquivos grandes

Figura 2 Aqui, o sistema de arquivos apenas fez a divisão de alguns dados.

Linux Magazine #102 | Maio de 2013

Salvar e apagar arquivos grandes com frequência, como arquivos multimídia, muitas vezes abre buracos nas estruturas de dados. Se os dados de um filme de alta resolução forem distribuídos entre seções espaçadas, a imagem pode conter artefatos ou será possível experimentar uma reprodução irregular. Nestes casos, faz sentido verificar a consistência do arquivo. 65


TUTORIAL | Desfragmentação

Figura 3 O sistema de arquivos muitas vezes quebra grandes arquivos multimídia em pedaços menores, que, em seguida, são armazenados em diferentes lugares sob determinadas circunstâncias.

Para isso, torne-se root e execute o comando: # filefrag <file>

O Filefrag então examina o arquivo e retorna informações mais detalhadas sob o seu respectivo estado (figura 3). O número de extensões, isto é, blocos de arquivo não contíguos, revela o grau de fragmentação. Quanto mais extensões o software determina, pior é a divisão do arquivo afetado.

Limpeza

Existem diferentes métodos para reunir os arquivos: se o usuário tiver tempo de sobra para gastar, poderá copiar os dados da partição afetada para outro disco, excluir os dados originais e, em seguida, restaurar os arquivos copiados para o disco original. Isto irá assegurar áreas contíguas de dados. A desvantagem deste método é a enorme quantidade de tempo que leva para coletas grandes de dados – especialmente se for uti-

lizado o armazenamento em massa em uma interface USB 2.0 como um meio de backup. Existem diferentes métodos para reunir os arquivos: se o usuário possuir tempo de sobra para gastar, copie os dados da partição afetada para outro disco, exclua os dados originais e, em seguida, restaure os arquivos copiados para o disco original. Isto irá assegurar áreas de dados contíguas. A desvantagem deste método é a enorme quantidade de tempo que leva para coletas de dados grandes – especialmente se for usado armazenamento em massa com uma interface USB 2.0 como meio de backup. Como o grau de fragmentação de um disco rígido no Linux é muitas vezes no intervalo percentual de um dígito, mesmo após o uso por alguns anos, a comunidade de desenvolvedores não tem prestado muita atenção à manutenção de dados no passado. Apenas alguns programas de linha de

comando lidam com este problema – e, destes, apenas um impressionou em nosso laboratório: o Defragfs [3]. Para começar, descompacte a pequena ferramenta em uma pasta. Apesar de seu pequeno tamanho de pouco menos de 9KB, o script Perl fornece um recurso surpreendente: ele não apenas desfragmenta os diretórios e partições, como também fornece informações detalhadas sobre o sucesso das ações. Para evitar ter que especificar o caminho completo quando a ferramenta é chamada, copie o programa para o diretório /usr/local/bin. Em seguida, inicie a ferramenta com privilégios de administrador usando o comando: # defragfs <directoryname> ‑a

O Defragfs agora determina automaticamente os valores apropriados e mescla os arquivos individuais. Como o script copia os arquivos anteriores e posteriores, certifique-se que haja espaço suficiente no diretório em questão.

Figura 4 O Defragfs reúne com segurança os grandes arquivos.

66

www.linuxmagazine.com.br


Desfragmentação | TUTORIAL

Se quiser controlar a forma como o software funciona, execute o Defragfs sem parâmetros. Neste caso, o Defragfs solicita entrada várias vezes. Uma das críticas que observamos em nosso laboratório foi que a ferramenta retorna para o início da rotina após completar o trabalho. Neste caso, feche o programa após a exibição das estatísticas dos arquivos modificados pressionando Ctrl+C.

Sucesso

O Defragfs gera uma lista com os segmentos intercalados de um arquivo. Para cada arquivo, ele mostra entre parênteses o número de fragmentos antes da cópia e, ao final de cada linha, o número de blocos após a execução. Na figura 4 podemos ver que arquivos com. mais de 100MB, em especial, possuem significativamente menos segmentos após a execução do Defragfs.

Conclusão

Sistemas de arquivos Ext2 e sucessores são tão robustos que não precisam praticamente de nenhuma intervenção manual. No entanto, um usuário avançado com um fraco por multimídia ou acostumado a operar um servidor com grandes transferências de dados possivelmente desejará verificar os discos rígidos ao longo do tempo. A única ferramenta que funcionou de forma confiável no sistema de arquivos ext2 em nosso laboratório foi o Defragfs. Este programa trabalha sem nenhum problema em discos

montados. A única desvantagem é a quantidade de tempo necessária para salvar todos os arquivos em áreas livres – como em cópias manuais – para, em seguida, restaurá-los. No entanto, o Defragfs muitas vezes recompensa pela paciência, com melhor desempenho do disco. n

Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/8575

Mais informações [1] “Bleachbit” by Erik Bärwaldt, Linux Magazine, November 2009, pg. 60: http://www.linuxpromagazine.com/Issues/2009/108/BleachBit/ [2] “RPM Tools” by Erik Bärwaldt, Linux Magazine, December 2012, pg. 44, http://www.linuxpromagazine.com/Issues/2012/145/RPM‑Tools/ [3] Defragfs: http://defragfs.sourceforge.net/

Agora você tem o controle sobre o desempenho do seu negócio sempre à sua mão.

Solução completa hospedada em nuvem (Cloud Computing)

SOFTWARE

Linux Magazine #102 | Maio de 2013

Saiba mais em: www.vectory.com.br +55 11 3104 6652

A solução de gestão integrada ADempiere é um poderoso sistema ERP, CRM e SCM de Código Aberto, que conta com um conjunto completo de recursos, organizados através de processos de negócios. Essa organização resulta em uma plataforma única, totalmente integrada e consistente, proporcionando aos usuários uma visão integral de sua empresa e permitindo uma análise em 360 graus de todo o relacionamento com clientes, fornecedores e colaboradores. 67


ANDROID | Google Nexus 10

Google Nexus 10

ANDROID

Nexus 10 A gigante Google lança um novo dispositivo pronto para combater o iPad. O Nexus 10 associa um bom hardware à versão mais recente do Android, tudo isso com um bom preço e um visual matador. por Flávia Jobstraibizer

O

Nexus 10, novo tablet da gigante de Redmond, é produzido pela Samsung e é a nova menina dos olhos da corporação, que surpreende a cada novo lançamento. Com uma estrutura emborrachada cinza escuro, o tablet é arredondado, não escorrega facilmente das mãos e possui alto falantes bem localizados, evitando assim o problema presente em outros tablets de que o modo de pegar o aparelho obstrui a saída de som (figura 1). Com uma espessura de 8,9mm e um peso de 603gr, o Nexus 10 é mais leve e menor do que o Nexus 7, o que garante, naturalmente, maior mobilidade ao equipamento.

Na parte frontal estão localizadas a câmera, que possui a resolução de 1.9MP, o sensor de luminosidade do ambiente e um led de notificações. A parte de trás do tablet abriga a câmera principal de 5MP, seu respectivo flash e um microfone. As portas micro USB, entradas para fones de ouvido e porta HDMI estão localizadas na lateral do aparelho. Em geral, a carcaça do aparelho é muito bem feita (figura 2). A tela é capacitiva, multitoque e composta da robusta tecnologia resistente à arranhões Corning Gorilla Glass 2, com a resolução HD (High Definition) de 2560x1600 pixels e 16.7 milhões de cores (fi-

gura 3 ). O tablet vem equipado

com um processador dual-core Exynos 5250 com 2 núcleos Cortex A-15 de 1.7GHz e possui 2GB de memória RAM. São comercializadas versões com 16GB ou 32GB de espaço em disco, no entanto não são expansíveis através de cartões SD. A duração da bateria é bastante razoável, evitando a recarga diária necessária em alguns tablets comercializados atualmente. Não é possível utilizar o 3G através de cartões SIM, no entanto é possível utilizar modems 3G através da porta micro USB do aparelho. Como recursos básicos, Bluetooth e NFC estão disponíveis, assim como acelerômetro, bússola, giroscópio, barômetro e GPS. O Android presente no aparelho é o 4.2 Jelly Bean.

Pequenos problemas

Figura 1 Visual agradável, leveza e qualidade no acabamento são os primeiros atrativos do dispositivo.

68

Aparentemente, o Nexus 10 não é perfeito. Alguns problemas de inicialização foram observados por uma boa soma de usuários. O Android Jelly Bean do aparelho é puro, sem personalizações da Samsung ou mesmo do Google. Sendo assim, pode ser necessária a instalação de alguns aplicativos adicionais para melhorar a usabilidade do aparelho. Um outro aspecto negativo do aparelho, é sua lentidão para carregar a bateria. Frente à outros dispo-

www.linuxmagazine.com.br


Google Nexus 10 | ANDROID

aparelho, o tema, modos de apresentação dos aplicativos instalados, vincular sua conta Google ao perfil e muitos outros recursos.

Desempenho Figura 2 O corpo emborrachado do aparelho não tira sua beleza.

sitivos da mesma linha, o Nexus 10 leva em média 3 vezes mais tempo para carregar sua bateria até 100%. A falta de slots de expansão para cartões SD adicionais são outra reclamação dos usuários, assim como a limitação do player de video, que só executa filmes no formato MP4 (ou então filmes da Internet).

Compartilhamento

O compartilhamento do dispositivo, que proporciona o uso do aparelho por vários usuários, é um dos recursos oferecidos pelo Android Jelly Bean do Nexus 10. Cada perfil de usuário poderá ser personalizado de acordo com suas preferências pessoais, tornando a usabilidade do dispositivo em uma experiência única para cada um. A personalização ainda vai além: cada usuário poderá definir seus próprios atalhos na tela inicial do

O aplicativo para benchmark e análise de desempenho AnTuTu apresentou a pontuação de 13630 pontos, o que é considerado excelente diante de outros aparelhos da mesma categoria. Já no Vellamo Mobile Benchmark, que faz testes ainda mais precisos no que tange à aceleração 3D, CPU e desempenho do processador, 1841 pontos foram obtidos no quesito desempenho, sendo uma pontuação bastante alta para um aparelho desta complexidade. Testamos ainda a edição de videos em aplicativos comuns, encontrados na loja do Google, e o Nexus 10 se mostrou tão competente quanto um desktop. A edição ocorreu sem travamentos e a reprodução do video (embora em formatos limitados) ocorreu normalmente. Para os fãs de games, uma ótima notícia: instalamos os mais recentes jogos disponíveis no Google Play e o resultado foi surpreendente: nenhum travamento (exceto quando tratava-se de algum tipo de conexão necessária com a Internet), delay ou problema de qualquer tipo foi encontrado na jogabilidade do

Figura 4 Nexus 10 durante a execução do jogo Steampunk Racing 3D.

aparelho. As respostas dos botões virtuais são rápidas e a tela mostrou o poder de sua sensibilidade e precisão durante o jogo (figura 4).

Conclusão

O Nexus 10 já é considerado o tablet que pode brigar no mesmo patamar com o iPad. Mais leve, mais rápido e mais barato, o aparelho sem dúvida é um concorrente de peso para o queridinho da Apple. A Anatel homologou este mês o aparelho para trabalhar com a rede de telefonia e dados brasileira, o que abriu caminho para as vendas do aparelho no Brasil, ainda que não haja uma previsão efetiva para o início das vendas. A previsão é de que o preço do Nexus 10 seja por volta de R$1200,00. Fora do Brasil, o dispositivo já está sendo vendido por cerca de US$399,00. Vamos aguardar! n

Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em: cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/8643

O autor

Figura 3 A nova versão da tecnologia Gorilla Glass torna a tela ainda mais resistente.

Linux Magazine #102 | Maio de 2013

Flávia Jobstraibizer (fjobs@linuxnewmedia.com.br, twitter: @ flaviajobs) é gerente de projetos e analista de sistemas. Trabalha com TI desde 1998 tendo atuado em multinacionais e empresas de diversos segmentos, trabalhando com tecnologias livres e proprietárias. Atualmente é editora-chefe das revistas Linux Magazine, Admin Magazine e c’t.

69


ANÁLISE | Extensões IMAP

Extensões IMAP

ANÁLISE

Extensões de protocolo IMAP 4 Um conjunto de extensões de protocolo mantém o legado IMAP 4 utilizável, o que também ajuda os clientes móveis. Apresentamos uma mistura saudável de extensões úteis. por Patrick Ben Koetter e Kristian Kissling

Q

uando a primeira versão do Internet Message Access Protocol 4 (IMAP 4) apareceu, em 1994, os telefones celulares pareciam mais com tijolos do que com telefones propriamente ditos – e não era possível ir muito além disso. Os dados digitais corriam pela Internet através de modems em doses homeopáticas. O Universal Mobile Telecommunications System (Sistema Universal de Telecomunicações Móveis ou UMTS) e clientes de email móveis sequer existiam e o email ganhava terreno timidamente.

Demanda crescente

Para adaptar o IMAP 4 às exigências modernas e especialmente de clientes móveis, o Network Working Group of the Internet Engineering Task Force enriqueceu o protocolo IMAP com uma série de RFCs com extensões que oferecem novos recursos ao IMAP, mas sem incomodar clientes e servidores que utilizam versões mais antigas. Muitas das extensões de protocolo ainda estão na fase de proposta; a wiki IMAP não oficial [1] contempla uma lista bastante abrangente (figura 1) se o usuário estiver interessado em saber mais.

Algumas destas extensões são também parte do perfil do Lemonade (licença para aprimorar o acesso à rede orientado por mensagem para diversos ambientes). Sob este guarda-chuva, a RFC 4550 [2] reuniu mais de 20 extensões do protocolo IMAP explicitamente para melhorar a comunicação com os clientes móveis. Embora seja possível que nenhum servidor tenha implementado as extensões mais exóticas, os administradores estão surpresos de que precisem habilitar outras extensões no servidor por não serem parte integrante do protocolo (tabela 1). Neste artigo, apresentamos uma seleção de extensões comumente usadas e explicamos brevemente sua utilidade. Mais detalhes estão disponíveis nas RFCs relacionadas, que muitas vezes possuem dezenas de páginas.

Descobertas: CAPABILITY

Figura 1 Esta matriz tenta esclarecer quais servidores IMAP implementam quais melhorias.

70

O comando CAPABILITY [3] não é uma extensão, mas um recursoimportante do IMAP 4. O cliente a utiliza para descobrir quais extensões o servidor suporta. O servidor retorna uma longa linha que lista as capacidades como palavras-

www.linuxmagazine.com.br


Extensões IMAP | ANÁLISE

-chave. Se o ID do comando [4] é habilitado no lado do servidor, o cliente tem permissão para enviar informações sobre si mesmo para o servidor, como o número de versão e nome. No entanto, a RFC dispõe que servidor e cliente não devem usar esta informação para tentar contornar os erros; em vez disso, eles devem ajudar o postmaster a identificar erros e a notificar o fornecedor do software.

Observador silencioso: IDLE De acordo com o protocolo IMAP 4, o cliente deve informar ativamente ao servidor por um novo email disponível, ou por alguém que tenha excluído mensagens existentes, apesar de fazer mais sentido ao servidor notificar o cliente quando um novo email chega, já que tais pedidos sob demanda acabam por salvar recursos. Embora o servidor possa Cliente

ocasionalmente responder com EXISTS (por exemplo, se for alterado o tamanho das caixas de correio), o cliente não pode contar com este comportamento e terá que solicitá-lo de qualquer maneira. Se o servidor retorna IDLE [5] como um recurso, o cliente pode permitir que ele envie mensagens não solicitadas sobre o novo email, enquanto o cliente estiver no modo IDLE. Para permitir isso, o cliente envia um comando IDLE para o servidor, que responde com um pedido de continuação ( +). Enquanto existir o status IDLE, o servidor pode enviar mensagens sem sequência numérica (não tagueadas), tais como EXISTS ou EXPUNGE. O cliente em si não pode enviar quaisquer comandos próprios neste momento. A relação master/slave termina assim que o cliente envia um DONE. Neste caso, o servidor envia quaisquer linhas não tagueadas e responde com um número de

sequência para o DONE. Se o cliente não consegue terminar o comando IDLE enviando DONE, o servidor pode jogá-lo fora, assumindo um tempo limite definido. Assim, a RFC recomenda que os clientes enviem outro IDLE aos 29 minutos para evitar este problema.

Pré-filtrado: NOTIFY

O IDLE tem a desvantagem de não controlar nem limitar quais comandos o servidor envia e como ele responde a determinados eventos. Como o idle também só funciona para uma única caixa de email, o servidor e o cliente configuram outra conexão TCP para cada consulta de caixa adicional. O NOTIFY [6], no entanto, coloca o cliente no comando. Ele estende o IDLE, deixando que o cliente determine as caixas de email a partir das quais deseja receber mensagens. Isso torna o NOTIFY uma caixa de email IDLE múltipla, ao mesmo tempo em que simplifica a comunicação.

Servidor

Explicação

* OK IMAP4rev1 Service Ready

Servidor recebe cliente

a001 login mrc secret Client logs in

Cliente faz o log a001 OK LOGIN completed

a002 select inbox

Servidor reconhece Cliente escolhe Inbox como pasta ativa

* 18 EXISTS

18 mensagens encontradas

* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)

Flags definidas

* 2 RECENT

2 mensagens urgentes (por exemplo, “novo email”)

* OK [UNSEEN 17] Message 17 is the first unseen message

Mensagem 17 está como não lida; todas as mensagens antigas foram lidas

a002 OK [READ‑WRITE] SELECT completed

Cliente pode ter feito alterações ao email

a003 fetch 12 full

Cliente solicita informações sobre a mensagem 12 * 12 FETCH (FLAGS (\Seen)

O email foi lido

INTERNALDATE “17‑Jul‑1996 02:44:25 ‑0700”

Entregue em 17 de julho de 1996

RFC822.SIZE 4286

Mais que 4KB

ENVELOPE (“Wed, 17 Jul 1996 02:23:25 ‑0700 (PDT)”

Cabeçalho do email:

“IMAP4rev1 WG mtg summary and minutes”

Data

((“Terry Gray” NIL “gray” “cac.washington.edu”))

Assunto

((“Terry Gray” NIL “gray” “cac.washington.edu”))

De

((“Terry Gray” NIL “gray” “cac.washington.edu”))

Remetente

((NIL NIL “imap” “cac.washington.edu”))

Responder para

((“John Klensin” NIL “KLENSIN” “MIT.EDU”))

Para

NIL NIL

CC

Tabela 1 Quando um cliente se comunica com um servidor IMAP 4* (nota: *da Wikipedia alemã para IMAP)

Linux Magazine #102 | Maio de 2013

71


ANÁLISE | Extensões IMAP

O cliente usa NOTIFY SET para especificar tanto as caixas de email como o tipo de informação que deseja receber. O servidor, em seguida, envia um conjunto de atributos – juntamente com a resposta FETCH – para o cliente, que agora torna-se um observador passivo. O efeito NOTIFY continua até que o cliente envie um novo comando NOTIFY ou até que uma das entidades feche a conexão IMAP. Como alguns clientes móveis só desejam atualizações para mensagens que correspondem a um determinado padrão de busca, o NOTIFY RFC também define atributos adicionais para a opção UPDATE, que entra em vigor neste caso.

Sincronizado: QRESYNC A extensão QRESYNC [7] ressincroniza rapidamente com uma caixa de email do usuário. É uma extensão

do comando CONDSTORE. Este, por sua vez, verifica a caixa de email para as mudanças de estado que ocorrem quando um usuário está usando diferentes clientes de email ou quando vários usuários compartilham uma caixa de email. Se um usuário no cliente A altera o status de um email para “não lida”, também queremos que o cliente B se dê conta disso; o cliente precisa vasculhar a caixa de email novamente (ressincronização) para fazer isso. Embora o CONDSTORE identifique essas mudanças e resolva conflitos causados por acesso simultâneo de vários clientes, o Thunderbird e outros clientes de email precisam enviar os comandos UID FETCH e SEARCH, neste caso. Em contraste, o QRESYNC permite um resync, incluindo o rastreamento de arquivos excluídos de uma só vez. A resposta VANISHED introduzida para isto (e substituindo EXPUNGED) descobre se o email foi excluído de forma eficiente.

Figura 2 Os conteúdos das caixas de email podem ser baixados de forma direcionada, como mostrado aqui no Thunderbird, e também restaurados e buscados localmente, se necessário.

72

O uso do comando SELECT no lado do cliente elimina a necessidade de conexões simultâneas para o servidor, que só existem para evitar resyncs. O QRESYNC beneficia especialmente os dispositivos móveis, porque eles muitas vezes têm de recuperar os dados com mais frequência por conta da fraca cobertura de rede. Não admira que esta extensão seja uma das extensões Lemonade mencionadas anteriormente. Para usar o QRESYNC, o servidor precisa retornar ENABLE [8] como um recurso. A extensão ENABLE permite que os clientes habilitem um recurso especial de forma explícita. No caso do QRESYNC, o RFC requer que os clientes tenham enviado previamente um alvo ENABLE QRESYNC para o servidor.

No movimento: MOVE Antes do IETF emitir uma RFC útil [9] com duas declarações – MOVE e UID MOVE, tornando possível mover mensagens de email entre caixas de correio – a única opção era combinar vários comandos independentes ( COPY, STORE, e EXPUNGE) para obter o mesmo efeito. Esta implementação foi considerada abaixo da ideal por várias razões: se a comunicação quebrar entre as três etapas, os processos move tornam-se estanques. Este efeito também confunde os usuários, pois os clientes continuam a mostrar as mensagens neste estado intermediário. Além disso, em caixas de email compartilhadas, a terceira etapa pode mudar não apenas as mensagens selecionadas, mas também, inadvertidamente, as mensagens marcadas para exclusão por terceiros. O MOVE resolve estes problemas, enquanto o UID MOVE move mensagens em função de identificadores únicos. Para um cliente descobrir se um servidor suporta este recurso, o servidor

www.linuxmagazine.com.br


Extensões IMAP | ANÁLISE

precisa responder à requisição CAPABILITY com MOVE.

Pesquisa rápida: ESEARCH O padrão IMAP já inclui duas funções de pesquisa na forma de SEARCH, que procura mensagens de email com base em seus Message Sequence Numbers (MSNs) e UID SEARCH, que usa o identificador único. Uma desvantagem, no entanto, é que não se pode limitar o número de resultados retornados. O ESEARCH [10], por outro lado, oferece várias opções de resultado para o buscador. Assim, podemos limitar os resultados da pesquisa para um valor mínimo e máximo ou retornar apenas um certo número de resultados. Até mesmo encontrar todos os resultados é mais rápido, porque os resultados da pesquisa são retornados como um conjunto de sequência, que é compacto e economiza largura de banda. Além do mais, este conjunto pode ser usado em um comando subsequente.

Novo: SORT e THREAD As próximas duas extensões, SORT e THREAD , compartilham uma RFC comum [11]. O SORT, surpreendentemente, não é uma parte fixa do protocolo IMAP. Representar o email em tópicos não é realmente novo também, mas fundamentalmente apenas um algoritmo de ordenação. SORT e THREAD ocorrem no lado do servidor, economizando recursos do cliente

(figura 2). Ambas as extensões têm de processar os termos a serem classificados de acordo com os requisitos do I18NLEVEL=1, que é parte de uma RFC [12] que regula a manipulação de conjuntos de caracteres internacionais. O servidor anuncia a capacidade de ordenação retornando SORT como resposta, e isso também produz o algoritmo de segmentação para o recurso THREAD . Uma resposta do servidor poderia ser THREAD=ORDEREDSUBJECT, que é o mais simples dos dois algoritmos de segmentação disponíveis que a RFC apresenta como “the poor man’s threading”. O algoritmo primeiro ordena o email por assunto e, em seguida, dada a mesma linha no assunto, por tipo de data de entrega, onde ORDEREDSUBJECT então converte essas mensagens em threads. Claro, isso pode causar problemas se alguém responder à thread mas alterar a linha do assunto. Neste caso, o algoritmo REFERENCES está gravado. É muito mais sofisticado que ORDEREDSUBJECT e precisa de seis etapas principais para criar uma thread (explicado em detalhes pela RFC 5256 [11] nas páginas 8-11).

Mais acessível: UIDPLUS De acordo com a RFC, a UIDPLUS [13] , parte da especificação Lemonade, é uma extensão que trata particularmente de clientes difíceis de alcançar. A extensão é projetada para reduzir tempo e consumo de recursos. Para isso, ela define um comando adicional: o UID EXPUNGE

apaga mensagens que possuem o parâmetro \Delete definido e um identificador único (UID) que aparece na sequência do conjunto da caixa de email selecionada. Ela se revela particularmente adequada quando um cliente que está apenas temporariamente conectado se ressincroniza com o servidor. Se a extensão UID EXPUNGE é usada em vez de EXPUNGE, o cliente não mais acidentalmente apaga mensagens de outros usuários que foram marcados para exclusão enquanto estava offline. Neste caso, o segundo critério não se aplica, pois os UIDs das mensagens excluídas não pertencem à caixa de email. Este comportamento tornase relevante quando os usuários compartilham caixas de email ou tanto para usuários de clientes móveis como fixos.

Difícil: LISTEXTENDED Tradicionalmente, os comandos LIST e LSUB mostram o conteúdo das caixas de email. Mas novas extensões IMAP deram origem a uma necessidade de determinados tipos de listas. Como LIST e LSUB não são naturalmente extensíveis, os clientes foram obrigados a executar uma série de comandos cada vez mais longos para alcançar o efeito exigido pelas extensões. A extensão LIST-EXTENDED [14] resolve o problema modificando o comando LIST existente, de tal forma que já não requer quaisquer comandos especiais, mas pode ser

Figura 2 Este servidor IMAP 4 revela suas capacidades indicando que, entre outras coisas, suporta o NAMESPACE, bem como o IDLE e o ID.

Linux Magazine #102 | Maio de 2013

73


ANÁLISE | Extensões IMAP

complementada com uma variedade de opções e padrões de busca. A nova sintaxe é descendentemente compatível e é usada somente se a primeira ou segunda palavra depois do comando inicia-se com um parênteses, ou se o comando LIST tiver mais de dois parâmetros. Caso contrário, o comando LIST tradicional serve como um fallback.

Nomes reais: NAMESPACE Como o IMAP 4 não define um namespace padrão, duas convenções namespace genéricas surgiram: no modelo “Personal Mailbox” (“Caixa de email pessoal”), o namespace padrão representa apenas as caixas de email pessoais do usuário. Em contraste, o modelo “Complete Hierarchy” (“Hierarquia completa”) inclui todas as outras caixas de email digitais que o usuário pode acessar – além da sua própria caixa de email. O problema com estes modelos relaciona-se com a sobrecarga de configuração a eles associados. O comando NAMESPACE [15] permite que os clientes descubram automaticamente os prefixos definidos pelo servidor para caixas de email (figura 3), assim distinguidas entre caixas de email pessoais, caixas de email de outros usuários e pastas compartilhadas. Isso permite que os administradores atribuam caixas de email públicas (por exemplo, listas de discussão), um prefixo público, para distinguir caixas de email compartilhadas com o prefixo compartilhado, e para marcar as caixas de email por usuário como privadas. Isso não só economiza trabalho manual, mas as caixas de email em um namespace podem, também, residir em diferentes locais na rede e usar diferentes formatos como, por exemplo, Maildir e Mbox. 74

Tudo permitido: ACL

Caixas de email especificadas com NAMESPACE geralmente também possuem direitos de acesso diferentes. As Access Control Lists para caixas de email e a extensão ACL [16] permitem que o administrador visualize e modifique os direitos usando comandos IMAP. A RFC associada, a partir de 1997, acabou sendo extinta; assim, a RFC 4314 [17] acompanhou a definição de novos direitos de acesso e adicionou clareza para a situação dos direitos. Além da string ACL, o servidor precisa usar RIGHTS = para indicar os direitos que ele suporta ao responder a CAPABILITY: atualmente 11 direitos padrão e dois direitos virtuais ( d e c), que existem por razões de compatibilidade com a RFC 2086. Comandos possíveis em combinação com a RFC incluem: SETACL, GETACL, DELETEACL, LISTRIGHTS e MYRIGHTS. Entradas ACL consistem de dois componentes (identificador de acesso e direitos) e podem ser atribuídas a caixas de email específicas. O identificador de acesso em geral é o nome de usuário (uma string UTF8) e também é aceito com LOG e AUTHENTICATE. No entanto, mais de um identificador pode existir para cada usuário. Além disso, aRFC define um identificador a qualquer um, que faz referência a uma identidade genérica que inclui logins anônimos. Se o identificador é precedido por -, serão negados os direitos atribuídos ao usuário associado. Enquanto que as letras minúsculas mostram os direitos do usuário, a RFC usa números para atribuições de direito no contexto de implementações do servidor:

postmasters podem usá-los para atribuir ou negar certos direitos em todos os sentidos, garantindo assim, por exemplo, que os usuários só possam gerenciar caixas de email próprias. n

Mais informações [1] List of Imap extensions: http://imapwiki.org/Specs [2] Lemonade RFC: https:// tools.ietf.org/html/rfc4550 [3] CAPABILITY: http:// tools.ietf.org/search/ rfc3501#section‑6.1.1 [4] ID: https://tools.ietf. org/html/rfc2971 [5] IDLE: http://tools.ietf. org/html/rfc2177 [6] NOTIFY: http://tools. ietf.org/html/rfc5465 [7] QRESYNC: http://tools. ietf.org/html/rfc5162 [8] ENABLE: http://tools. ietf.org/html/rfc5161 [9] MOVE: http://tools. ietf.org/html/rfc6851 [10] ESEARCH: https://tools. ietf.org/html/rfc4731 [11] SORT and THREAD: https://tools.ietf. org/html/rfc5256 [12] Internationalization: https:// tools.ietf.org/html/rfc5255 [13] UIDPLUS: http://tools. ietf.org/html/rfc4315 [14] LIST‑EXTENDED: https:// tools.ietf.org/html/rfc5258 [15] NAMESPACE: https:// tools.ietf.org/html/rfc2342 [16] ACL: http://tools. ietf.org/html/rfc2086 [17] ACL update: http://tools. ietf.org/html/rfc4314

Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em: cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/8586

www.linuxmagazine.com.br


Foreman e Puppet | ANÁLISE

Foreman e Puppet

ANÁLISE

Auxílio construção Máquinas virtuais podem ser fáceis de criar e remover se forem mais gerenciáveis. Possuir as ferramentas certas pode ajudar. por Sebastian Saemann

A

comunidade de código aberto oferece dois projetos para tarefas administrativas de rotina que se complementam perfeitamente: Puppet e Foreman. O Puppet [1] é um conjunto de ferramentas de gerenciamento de código aberto com um framework escrito em Ruby para a gestão e configuração de servidores, enquanto o Foreman [2] é uma ferramenta de gerenciamento de ciclo de vida.

Puppet

O Puppet oferece aos adminstradores uma abordagem de instalação e configuração de software adicional que é relativamente independente do sistema operacional básico. Os sistemas operacionais suportados são as distribuições Linux mais populares, Unix, e agora também Windows. Um ambiente Puppet típico compreende uma máquina master (servidor) e um ou mais agentes (clientes). A comunicação entre o mestre e o agente é garantida com certificados SSL auto-assinados. A máquina master armazena um manifesto que descreve a função e o estado de destino do cliente. Um estado de destino seria, por exemplo, “servidor web com usuários PHP e locais com chaves SSH”. O manifesto pode ser escrito em uma linguagem de domínio específico (DSL). Além disso, o Facter [3] é executado no cliente. Ele coleta informações sobre o sistema e encami-

Linux Magazine #102 | Maio de 2013

nha para a máquina master do Puppet quando o Puppet é executado. Com base nos dados recolhidos, a master pode gerar um catálogo dinâmico do manifesto predefinido. Por sua vez, o catálogo é executado no agente, que emite os comandos corretos com base nas informações do Facter. O Facter coleta muitos dados sobre o sistema operacional, hardware, software, rede, e assim por diante. Se precisar de mais informações, é possível definir dados personalizados. Por exemplo, se desejar instalar o Apache2 como um servidor web, um trecho do manifesto se pareceria com isto: package { "apache2" : ensure => "installed", }

No Debian, o Puppet selecionaria o provedor para o pacote e em seguida executaria o comando Apt-get install apache2. No Red Hat, o gerenciador de pacotes Yum substituiria o Apt. No entanto, executar yum install apache2 levaria a uma mensagem de erro, pois o pacote no RHEL não é chamado apache mas httpd. Para projetar este manifesto para vários sistemas operacionais, mais dados são necessários. Os dados podem ser utilizados no manifesto como variáveis para decisões (listagem 1). O Puppet DSL oferece herança, classes, módulos, arrays, variáveis, parâmetros, templates e escopos de forma muito parecida com uma linguagem

de programação. Em outras palavras, temos muitas oportunidades para fazer manifestos flexíveis e modulares. Se levarmos isso um passo adiante, podemos garantir que a configuração do Apache seja feita incluindo quaisquer hosts virtuais e que o servidor web seja reiniciado no momento do boot e após as alterações na configuração do Apache. Tanto o apache::service como o apache::config exigem a classe apache:: install para serem executados. A classe apache::install só instala o pacote httpd ou apache2. Um conjunto lógico e contíguo de classes é referido como um módulo (listagem 2). Depois de adaptar o manifesto para atender às suas necessidades, é possível configurar servidores novos ou adicionais, ou mesmo depois de reinstalar o servidor, para o estado de destino definido. O Puppet também possui uma

Listagem 1: Distinção de caso 01 **case $operatingsystem { 02 ** ** ** **/(Debian|Ubuntu)/: { 03 ** ** ** ** ** **$apache_ package_name = 'apache2' 04 ** ** ** **} 05 ** ** ** **/ (RedHat|CentOS|Fedora)/: { 06 ** ** ** ** ** **$apache_ package_name = 'httpd' 07 ** ** ** **} 08 ** **} 09 10 package { $webserver_package_ name : 11 ensure => "installed", 12 }

75


ANÁLISE | Foreman e Puppet

grande comunidade, e podemos usar módulos existentes do Puppet Forge ou GitHub. Em resumo, o Puppet é uma ferramenta que permite configurar um servidor nos mínimos detalhes. Mas o Puppet não lida com a instalação do sistema operacional real; é onde o Foreman entra no jogo.

DNS

Proxy DNS DHCP Inteligente TFTP Proxy DHCP TFTP Inteligente

76

DNS

Proxy DNS DHCP Inteligente TFTP Proxy DHCP TFTP Inteligente

DNS

Proxy DNS DHCP Inteligente TFTP Proxy DHCP TFTP Inteligente

Rede segmentada

Puppet

Restful API HTTP (s)

Wen User API

Foreman

A ferramenta de gerenciamento de ciclo de vida Foreman abrange os ciclos de vida completos de servidores físicos e virtuais, desde a criação de um host e instalação de um sistema operacional através de um gerenciador baseado em Puppet. A instalação do Foreman pode ser conduzida por um instalador diretamente das fontes de um repositório Git, ou podemos usar os pacotes pré-compilados. O Foreman interage estreitamente com o Puppet, mas também com outros elementos de infraestrutura pré-existentes (figura 1); é altamente dinâmico e pode ser utilizado com mais ou menos recursos, dependendo das necessidades. Para algumas de suas características, o Foreman conta com um proxy inteligente. Um proxy inteligente é um servidor que, por exemplo, trata das entradas de registros de DNS ou fornece a instalação PXE. Qualquer número de proxies inteligentes pode ser instalado em servidores diferentes ou no mesmo servidor, como o próprio Foreman. Tal como acontece com o Foreman, podemos desenhar em pacotes pré-compilados para as distribuições suportadas ou instalar diretamente a partir da fonte. A comunicação entre o Foreman e um proxy inteligente é controlada por uma API RESTful. Se tivermos, por exemplo, uma rede de múltiplas subredes sem retransmissão DHCP, precisaremos usar vários proxies inteligentes para lidar com a instalação automática em cada segmento de rede. Os recursos do proxy inteligente incluem: ➧ DHCP: manipula a atribuição automática de endereços IP em subredes

DNS

Proxy DNS DHCP Inteligente TFTP Proxy DHCP TFTP Inteligente

Foreman

Reports/ Facts / ENC Compute

DB

RHEV-M EC2 VMWare OpenStack

LDAP / AD INTERNAL

Figura 1 A interação entre componentes em um ambiente que utiliza o Foreman.

definidas ou intervalos de endereços IP. ➧ DNS:oferece resolução de nomes para registros de host direto e reverso. São suportados apenas produtos compatíveis com ISC, tais como BIND e servidores de DNS da Microsoft. A ferramenta nsupdate lida com a atualização para uma zona dinâmica; ela é

autenticada no nome do servidor usando uma chave configurada e predefinida. ➧ TFTP e PXE: instalações silenciosas exigem um servidor DHCP configurado e podem instalar um sistema operacional em um servidor PXE inicializável. A instalação é feita pelo servidor TFTP para a imagem dispo-

Listagem 2: Definições de classe 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23

class apache { include apache::params, apache::service, apache::install } class apache::params { ** **case $operatingsystem { ** ** ** **/(Debian|Ubuntu)/: { ** ** ** ** ** **$apache_package_name = 'apache2' ** ** ** ** ** **$apache_service_name = 'apache2' ** ** ** ** ** **$apache_config_name = '/etc/apache2/apache.conf' ** ** ** **} ** ** ** **/(RedHat|CentOS|Fedora)/: { ** ** ** ** ** **$apache_package_name = 'httpd' ** ** ** ** ** **$apache_service_name = 'httpd' ** ** ** ** ** **$apache_config_name = '/etc/httpd/httpd.conf' ** ** ** **} ** **} } class apache::config { ** **file { $apache::params::apache_config_name: ** ** ** **notify => Class[apache::service'], source => "puppet:///modules/apache/${apache::params::apache_ config_name}", ** **} } ** class apache::service { ** **service { $apache::params::apache_service_name : ** ** ** **ensure => 'running', enable => 'true', ** **} }

24 25 26 27 28 29 30 31 32 33 34 package { $webserver_package_name : 35 ensure => "installed", 36 }

www.linuxmagazine.com.br


Foreman e Puppet | ANÁLISE

nível e é então semeada via Kickstart (Fedora, RHEL) ou Preseed (Debian, Ubuntu) com as respostas de instalação predefinidas. Além do Kickstart e Preseed, outras técnicas podem ser utilizadas, tais como JumpStart. ➧ PuppetCA: Graças a este recurso, o Foreman pode assinar os certificados Puppet SSL entre mestre e agente. Depois de instalar o sistema operacional, o Puppet pode ser executado sem intervenção manual para implementar a configuração do manifesto Puppet. Recursos com Smart Proxy incluem: ➧ ENC: o Puppet fornece um classificador de nó externo. Ele executa um script que lê e apresenta a atribuição de classe a partir de outra fonte de dados. Utilizando a interface web no Foreman, podemos criar um host e atribuir classes classes do Puppet a ele. ➧ CMDB: o Foreman também pode ser usado como uma base de dados de gerenciamento de configuração, eliminando assim a necessidade de manutenção de um inventário separado. O inventário geralmente toma a forma de dados do Facter. A falta de informações ou de adicionais pode ser facilmente mapeada com dados personalizados. ➧ Recursos de computação: o Foreman pode provisionar máquinas físicas e também virtuais em nuvens privadas ou públicas. Em vez de um servidor bare-metal (executado sobre o hardware), ele em seguida implementa diretamente, por exemplo, uma instância AWS EC2 na nuvem da Amazon. VMware ou OpenStack também são suportados. ➧ Relatórios: o relatório de um agente Puppet é normalmente enviado para a máquina Puppet master, e o relatório pode ser enviado para o Foreman para visualização e estatísticas. ➧ Auditoria: o recurso de auditoria permite visualizar as alterações por colegas ou clientes. ➧ LDAP: a autenticação de usuário Foreman pode endereçar um LDAP ou Active Directory existente e usar uma autoridade de autenticação central.

Linux Magazine #102 | Maio de 2013

Economia de tempo

A instalação e integração da infraestrutura existente depende de uma visão geral de todos os componentes e, muitas vezes leva algum tempo. No entanto, depois de serem instalados todos os componentes e recursos, o Foreman e o Puppet podem economizar tempo. Se o usuário precisar de um novo aplicativo de servidor Debian, por exemplo, um administrador pode fazer login no Foreman usando credenciais do Active Directory e preencher o formulário para criar um novo host. Isto envolve escolher um hostname, o sistema operacional, e os módulos do Puppet. O próximo endereço IP livre é sugerido com base na atribuição de domínio. Os módulos do Puppet podem ser ssh, apache2, php ou haproxy. Depois de ter confirmado o formulário, uma entrada que instala o servidor com o endereço MAC atribuído e o Debian Linux é gerada no servidor PXE/TFTP. O servidor DHCP já definiu uma concessão estática para o servidor e irá atribuir o endereço IP quando o servidor assim demandar. O servidor é inicializado e instalado pelo Preseed. Em seguida, os preparativos para a primeira execução do Puppet são concluídos na máquina Puppet mestre. Podemos estender o script aqui para adicionar o servidor ao sistema de monitoramento. Depois de um reboot, o Foreman sabe que o servidor foi instalado e altera o registro de inicialização PXE para que o servidor faça o boot a partir do disco, ao invés da imagem de instalação. Depois disso, o daemon puppetd é executado e imediatamente dispara a execução do Puppet. O agente Puppet requer do Puppet master o manifesto e o executa. O relatório sobre a instalação bem sucedida das classes Puppet é retornado ao Foreman, de modo que o administrador pode acompanhar o status do servidor através da interface web. Qualquer erro seria visto lá imediatamente. Os módulos Puppet teriam comunicado ao servidor para instalar o Apache2 com o módulo PHP; todos

as vhosts também foram criadas, e a informação foi comunicada pelo módulo haproxy para o balanceador de carga e configurado ao mesmo tempo. O servidor pode, assim, entrar em produção sem atrasos. O administrador pode então tentar um login SSH ao servidor para certificar-se de que tudo está funcionando. O login SSH usa a chave SSH do servidor e seu hostname pois o Foreman criou as entradas de DNS e o Puppet instalou a chave SSH do administrador. Ao todo, o processo não deve levar mais do que 5 a 10 minutos, incluindo a instalação. O exemplo descrito neste artigo mostra claramente o valor deste tipo de solução: os benefícios em termos de tempo, bem como a integralidade da configuração são impressionantes. Com uma configuração manual, erros vão acontecer, e até mesmo os mais simples podem causar problemas mais cedo ou mais tarde. O Foreman está em desenvolvimento ativo e acaba de ser atualizado para a versão 1.1. Esta versão implementa algumas características muito aguardadas, como classes parametrizadas, suporte para Puppet 3, locais e organizações, e outras melhorias. n

Mais informações [1] Image tool for U-Boot environment: http:// free-electrons.com/ blog/mkenvimage-ubootbinary-env-generator/ [1] Puppet: https:// puppetlabs.com/ [2] Foreman: http:// theforeman.org/ [3] Facter: https:// puppetlabs.com/puppet/ related‑projects/facter/

Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/8580

77


Calendário de eventos

SERVIÇOS

Evento

BITS 2013

Forum Analytics

Data

14 a 16 de maio

16 de julho

Índice de anunciantes Local

Porto Alegre, RS

São Paulo, SP

Informações

http://www.bitsouthamerica. com.br/

https://www.linuxnewmedia. com.br/fan/

Empresa

Pág.

Supermicro

02

Senac

07

Unodata

09

Impacta

13

Uol Cloud

23

Central Server

29

Plus Server

CloudConf

10 e 11 de setembro

São Paulo, SP

http://www.cloudconf.com.br/

32,33

Fisl

81

Watchguard

83

IBM

84

A LINUX MAGAZINE TEM UM PRESENTE PARA VOCÊ!

Quer ganhar essa mochila Targus® personalizada de presente da Linux Magazine? Veja o regulamento da promoção no site:

http://www.linuxmagazine.com.br/hotsite/mochila_natal 80

www.linuxmagazine.com.br


Assunto | SEÇÃO

NOME DA SEÇÃO

Linux Magazine #XX | Mês de 200X

81


PREVIEW

Linux Magazine #103 Segurança Na próxima edição da Linux Magazine voltamos ao universo da segurança, assunto que é constante e primordialmente necessário. Aprenda como criar e coloque à prova suas regras de segurança com a ferramenta OpenSCAP, descubra potenciais vulnerabilidades que podem tornar-se porta de entrada para ataques do tipo SQL Injection e ainda saiba como aumentar a segurança do seu sistema através da ferramenta GRsecurity. Edição imperdível! n

Admin Magazine #09 OpenStack Capaz de gerenciar os componentes de múltiplas instâncias virtualizadas, o OpenStack é um dos queridinhos dos profissionais de infraestrutura e virtualização da atualidade. É livre, não possui restrições quanto à quantidade de instâncias e é uma plataforma robusta, extremamente útil nestes tempos onde o advento da computação em nuvem já é uma realidade. Na próxima edição da Admin Magazine você vai conhecer tudo o que essa incrível ferramenta pode fazer por você! Não perca! n

82

www.linuxmagazine.com.br


Você é refém da Operadora de Telecom?

Altos custos de conectividade impedem sua empresa de ter links redundantes. Não pule no vazio! Achar que a segurança é simples é o começo de seus problemas!

Alugue um Firewall gerenciado a partir de R$ 300,00/mês.

É um erro, total e comum, achar que qualquer um na sua TI pode fazer gestão de segurança da sua

Controle de Conteúdo e Antivírus, Soluções Antispam, implementadas localmente ou na nuvem, Proteção de Invasões e Ataques, Balanceamento de Links e Servidores, Análise de Vulnerabilidades e Riscos,

Conectividade entre Sites, Fornecedores, etc. Conectividade Segura para Usuários Móveis, Otimização de Links, Controle de Navegação, Controle de Aplicações,

vendas@altermedios.com.br

(11) 3393.3340


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.