você está aqui: Home  → Arquivo de Mensagens

Criando e Recuperando Imagens de Sistemas Debian GNU Linux com SystemImager

Colaboração: José Messias Alves da Silva

Data de Publicação: 20 de Agosto de 2006

Em grandes ambientes corporativos onde se espera ter sempre os sistemas em perfeitas condições de funcionamento ou mesmo quando se tem uma quantidade enorme de máquinas para manter cujo o conjunto de softwares necessários nas máquinas é o mesmo ou as máquinas possuem hardware praticamente idêntico, normalmente um bom administrador de redes faz uso de softwares de realização de backups e produção de imagens (isos). Vários são os softwares que se dispõem a esse fim. Entretanto, dando uma volta pela Net, vislumbrei uma solução chamada SystemImager.

Conforme o próprio site do software afirma, o SystemImager é um software que automatiza instalações de sistemas GNU/Linux por meio de espelhamento (clonagem) de máquinas, facilita a produção e distribuição de imagens e de softwares.

O SystemImager consiste em um excelente sistema que pode tornar mais confiável a manutenção de sua rede e facilitar no processo de restauração dos sistemas das máquinas e execução de planos de contingência previstos em políticas de segurança.

O SystemImager permite a criação e a distribuição da imagem independente do sistema operacional a ser instalado. Facilita também a atualização da máquinas no que se refere a alterações de configuração, distribuição de dados e atualização do sistema operacional.

O SystemImager disponibiliza o download de pacotes .deb para Debian e .rpm para distribuições baseadas em RPM como RedHat, Fedora, SuSE e Mandriva. Nessa dica utilizaremos Debian tanto para o Servidor de Imagens quanto para o Cliente de imagens.

Maiores Informações sobre o SystemImager

http://www.systemimager.org/

Instalação

Para instalar o SystemImager no Servidor de Imagens, acrescente ao /etc/apt/sources.list a seguinte linha:

  deb http://download.systemimager.org/debian stable main

Agora execute:

  # apt-get update

Para verificar os pacotes disponíveis, faça:

  # apt-cache search '(systemimager|systemconfigurator)'

Pronto, para instalar SystemImager Server simplesmente execute:

  # apt-get install systemimager-server systemconfigurator

Para instalar SystemImager Client execute:

  # apt-get install systemimager-client

Criando uma imagem do Cliente no Servidor de Imagens

A partir daqui convencionaremos o Servidor de Imagens como sendo a máquina de endereço IP 10.0.0.2 e o cliente terá endereço IP 10.0.0.14.

Para colocar uma imagem no servidor a partir do cliente devemos parar algum firewall esteja rodando no cliente ou pelos menos liberar a porta TCP 873 (rsync, uma dependência do sistema). Bem, no cliente execute o seguinte comando:

  # prepareclient --server 10.0.0.2

No servidor de imagens execute:

  # getimage -golden-client 10.0.0.14 -image maquina14_img -ip-assignment replicant

onde maquina14_img é no nome da imagem que se deseja criar. A opção -ip-assignment pode ter um dos seguintes valores:

  • static_dhcp - Um servidor DHCP atribuirá o mesmo endereço IP para cada cliente instalados com essa imagem. Nesse caso, o servidor DHCP também faz a correspondência com o hostname. É possível, entretanto, quando se estiver usando static dhcp, mudar a associação endereço IP e hostname, apenas alterando a respectiva correspondência entre eles no arquivo de configuração do Servidor DHCP, dhcpd.conf. Em alguns casos isso pode ser interessante e até necessário.

  • dynamic_dhcp - Um servidor DHCP faz a atribução de endereço IP dinamicamente aos clientes instalados com essa imagem. Com dynamic_dhcp, o endereço IP de cada máquina pode mudar, mas se pode guardar o mesmo hostname para a máquina. Assim, o hostname será ajustada à máquina, mesmo sendo associado a diferentes endereços a cada vez que se fizer a criação da imagem.

  • static - O endereço IP atribuído ao cliente durante a auto-instalação ficará permanentemente associado a este cliente.

  • replicant - Essa opção indica para não atentar para as configurações da rede na imagem. Muito utilizada para cópias e restaurações rápidas em uma única máquina.

Criando um disquete de inicialização (boot)

O SystemImager permite que se instale imagens mesmo em sistemas em que não há nada instalado. Isto pode ser feito com a utilização de um disquete de boot (o que significa que na máquina onde será realizada o espelhamento será necessário um drive de disquetes, dado que o SystemImager não trabalha com drives USB). Para criar um disquete de boot, basta apenas que se insira um disco vazio no leitor de disquetes do servidor de imagens e executar:

  # mkautoinstalldiskette

Essa operação criará um disquete de boot padrão. Será necessário realizar alguns ajustes e alterações no arquivo de configuração denominado local.cfg:

  HOSTNAME=maquina14
  DOMAINNAME=empresa.com.br
  DEVICE=eth0
  IPADDR=10.0.0.14
  NETMASK=255.255.255.0
  NETWORK=10.0.0.0
  BROADCAST=10.0.0.255
  GATEWAY=10.0.0.1
  GATEWAYDEV=eth0
  IMAGESERVER=10.0.0.2
  IMAGENAME=maquina14_img

Para efeito de organização, sugere-se acrescentar ao final do nome da imagem a data do dia no formato aaaammdd. Assim, a imagem maquina14_img ficaria maquina14_img_20060714. Entretanto, caso essa imagem deva ser atualizada freqüentemente, não recomenda-se utilizar esse padrão.

Esse arquivo inclui algumas informações de rede da máquina. As linhas que contém DEVICE e GATEWAYDEV devem ser o nome do dispositivo de rede, IMAGESERVER deve ser o endereço IP do Servidor de Imagens e IMAGENAME o nome da imagem a ser gravada ou recuperada.

Agora, salve este arquivo em seu disco de boot. Essas alterações podem ser feitas em estações Windows, mas deve-se ter o cuidado de salvar o arquivo com quebra de linhas no formato UNIX.

Uma outra forma de se gerar o disquete de boot é criando um arquivo /var/lib/systemimager/maquina14_img.local.cfg no próprio servidor de imagens. O arquivo /var/lib/systemimager/maquina14_img.local.cfg deve ter o mesmo conteúdo do arquivo local.cfg acima. Em seguida execute:

  # mkautoinstalldiskette -config /var/lib/systemimager/maquina14_img.local.cfg

Dessa forma se criará um disquete de boot com o arquivo local.cfg incluso. A terceira forma de se criar o disquete é gerando a imagem do disco de boot e gravando no disquete. Em sistemas GNU/Linux, pode realizar executando-se o seguinte comando:

  # dd if=systemimager-floppy-image.img of=/dev/fd0

Se estiver no Windows, pode-se utilizar alguma ferramenta como RawWrite para gravar a imagem do disquete. Feito isto, deve-se ter criado um arquivo local.cfg como descrito anteriormente.

Instalando uma imagem em um novo sistema

No Servidor de Imagens deve-se executar o comando:

  # /etc/init.d/systemimager-server start

ou versões recentes do SystemImager

  # /etc/init.d/systemimager-server-rsyncd start

Novamente, certifique-se de que a porta TCP 873 esteja liberada e acessível externamente.

Pronto, agora insira o disquete de boot na máquina cliente e inicialize pelo disquete. O sistema instalará a imagem maquina14_img automaticamente e tudo estará feito.

Atualizando uma imagem

Depois criada a imagem maquina14_img, pode-se ter efetuado alguns acréscimos e alterações no Cliente e se deseja, então, atualizá-la no Servidor para posterior restauração. Os passos são os mesmos descritos na criação de uma imagem:

No Cliente onde se quer atualizar a imagem, execute:

  # prepareclient --server 10.0.0.2

No Servidor de Imagens execute:

  # getimage -golden-client 10.0.0.14 -image maquina14_img -ip-assignment replicant

Deletando uma Imagem

Caso se deseje apagar uma imagem no servidor de imagens, basta executar o seguinte comando:

  # rmimage maquina14_img

Considerações Finais

Como se pode perceber, o SystemImager é uma excelente solução para ambientes que requerem sempre estar a pleno vapor, onde não se permite sequer um segundo sem se estar produzindo, o que exigiria dos Administradores de Sistemas um volume de trabalho maior caso não se fizesse uso de ferramentas como essa. Assim, espera-se que essa dica facilite e ajude as pessoas que estão envolvidas na manutenção de sistemas e no funcionamento de máquinas de uma maneira geral, a proverem um ambiente seguro, eficiente e de boa qualidade.
Nota: Em versões mais recentes do SystemImager nos comandos utilizados nessa dica foi acrescentado o prefixo "si_". Logo, os comandos getimage, prepareclient, mkautoinstalldiskette passaram ser si_getimage, si_prepareclient, si_mkautoinstalldiskette e assim por diante.


Veja a relação completa dos artigos de José Messias Alves da Silva

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script