Product SiteDocumentation Site

3.2. Como Migrar

Para garantir a continuidade dos serviços, cada migração de computador deve ser planejada e executada de acordo com o plano. Este princípio se aplica a independente do sistema operacional usado.

3.2.1. Pesquisar e Identificar Serviços

Tão simples quanto parece, este passo é essencial. Um administrador sério sabe realmente quais são os principais papéis de cada servidor, mas estes papéis podem mudar, e as vezes usuários experientes podem ter instalado serviços "selvagens". Sabendo que eles existem irá pelo menos permitir que você decida o que fazer com eles, em vez de excluí-los ao acaso.
Para isso, é aconselhável informar seus usuários sobre o projeto antes de migrar o servidor. Para envolvê-los no projeto, pode ser útil instalar os programas de software livre mais comuns em seus desktops antes da migração, que eles encontrarão novamente após a migração para o Debian; LibreOffice e o pacote Mozilla são os melhores exemplos aqui.

3.2.1.1. Rede e Processos

A ferramenta nmap (contida no pacote de mesmo nome) irá rapidamente identificar Serviços de Internet hospedados por uma máquina conectada na rede sem a necessidade de se logar. Simplesmente chame o seguinte comando em outra máquina conectada na mesma rede:
$ nmap mirwiz
Starting Nmap 7.80 ( https://nmap.org ) at 2021-04-29 14:41 CEST
Nmap scan report for mirwiz (192.168.1.104)
Host is up (0.00062s latency).
Not shown: 992 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
5666/tcp open  nrpe
9999/tcp open  abyss

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
Se o servidor é uma máquina Unix oferecendo contas shell a usuários, é interessante determinar se processos são executados em segundo plano na ausência de seus donos. O comando ps auxw exibe uma lista de todos os processos com suas identidades de usuários. Checando esta informação contra a saída do comando who ou w, que mostra uma lista de usuários logados, é possível identificar servidores ladões ou não-declarados ou programas rodando em segundo plano. Olhar para o crontabs (tabelas listando ações automáticas agendadas por usuários) irá, muitas vezes, fornecer informações interessantes sobre funções cumpridas pelo servidor (uma explicação completa do cron está disponível em Seção 9.7, “Agendando Tarefas com cron e atd).
Em qualquer caso, é essencial fazer backup de seus servidores: isto permite a recuperação de informações após o fato, quando usuários irão reportar problemas específicos devido a migração.

3.2.2. Fazendo Backup da Configuração

É sábio manter a configuração de cada serviço identificado para poder instalar o equivalente no servidor atualizado. O mínimo é fazer uma cópia de segurança dos arquivos de configuração.
Para máquinas Unix, os arquivos de configuração são normalmente encontrados em /etc/, mas eles podem estar localizados em um sub-diretório de /usr/local/. Este é o caso se um programa foi instalado a partir dos fontes, ao invés de um pacote. Em alguns casos, também podem ser encontrados em /opt/.
Para serviços de gestão de dados (como em bancos de dados), é fortemente recomendado exportar os dados para um formato padrão que seja facilmente importado pelo novo software. Tal formato é usualmente em modo texto e documentado; ele pode ser, por exemplo, um dump SQL para um banco de dados, ou um arquivo LDIF para um servidor LDAP.
Backups de bases de dados

Figura 3.2. Backups de bases de dados

Cada software de servidor é diferente, e é impossível descrever todos os casos existentes em detalhes. Compare a documentação do software existente com a do novo para identificar as porções exportáveis (portanto, re-importáveis) e as que requerem manipulação manual. A leitura deste livro vai clarear a configuração dos principais programas de servidor Linux.

3.2.3. Assumindo um servidor Debian existente

Para assumir efetivamente sua manutenção, deve se analisar uma máquina que já esteja rodando o Debian.
O primeiro arquivo a verificar é o /etc/debian_version, que usualmente contém o número de versão para o sistema Debian instalado (ele é parte do pacote base-files). Se ele indica codenome/sid, significa que o sistema foi atualizado com pacotes vindos de uma das distribuições de desenvolvimento (tanto testing quanto unstable).
O programa apt-show-versions (do pacote Debian de mesmo nome) verifica a lista de pacotes instalados e identifica as versões disponíveis. O aptitude pode também ser usado para estas tarefas, embora de uma maneira menos sistemática.
Uma olhada no arquivo /etc/apt/sources.list (e no diretório /etc/apt/sources.list.d/) mostrará de onde os pacotes debian instalados costumam vir. Se muitas fontes desconhecidas aparecem, o administrador pode escolher reinstalar o sistema do computador para garantir compatibilidade ótima com o software fornecido com o Debian.
O arquivo sources.list é frequentemente um bom indicador: a maioria dos administradores mantém, pelo menos nos comentários, a lista de fontes APT que foram usadas anteriormente. Mas você não deve esquecer que as fontes usadas no passado podem ter sido apagadas, e que alguns pacotes aleatórios obtidos na Internet podem ter sido instalados manualmente (com a ajuda do comando dpkg ). Neste caso, a máquina é enganosa em sua aparência de ser um sistema Debian “padrão”. É por isso que você deve prestar atenção a qualquer indicação que irá revelar a presença de pacotes externos (aparência de arquivos deb em diretórios incomuns, números de versão de pacote com um sufixo especial indicando que ele foi originado fora do projeto Debian, como ubuntu ou lmde, etc.).
Da mesma forma, é interessante analisar o conteúdo da diretório /usr/local/, que deve conter os programas compilados e instalados manualmente. Listar os programas instalados desta maneira é instrutivo, já que se questiona o porque de não se ter usado o pacote Debian correspondente, se este existir.

3.2.4. Instalando o Debian

Com toda a informação no servidor atual agora conhecida, podemos desligá-lo e começar a instalar o Debian nele.
Para escolher a versão apropriada, devemos conhecer a arquitetura do computador. Se for um PC relativamente novo, é provável que seja um amd64 (PCs mais antigos normalmente são i386). Caso contrário, podemos restringir as possibilidades de acordo com o sistema usado anteriormente.
Tabela 3.1 não pretende ser exaustiva, mas útil. Observe que ela lista arquiteturas do Debian que não são mais suportadas na atual versão estável. De qualquer forma, a documentação original do computador é a fonte mais confiável para encontrar esta informação.

Tabela 3.1. Arquitetura e respectivo sistema operacional

Sistema OperacionalArquitetura(s)
DEC Unix (OSF/1)alpha, mipsel
HP Unixia64, hppa
IBM AIXpowerpc
Irixmips
OS Xamd64, powerpc, i386
z/OS, MVSs390x, s390
Solaris, SunOSsparc, i386, m68k
Ultrixmips
VMSalpha
Windows 95/98/MEi386
Windows NT/2000i386, alpha, ia64, mipsel
Windows XP / Windows Server 2008i386, amd64, ia64
Windows RTarmel, armhf, arm64
Windows Vista / Windows 7-8-10i386, amd64

3.2.5. Instalando e Configurando os Serviços Selecionados

Depois do Debian instalado, devemos instalar e configurar individualmente cada um dos serviços que o computador vai hospedar. A nova configuração deve levar em consideração a anterior para garantir uma transição suave. Toda a informação coletada nos primeiros dois passos será útil para completar com sucesso esta parte.
Instalar os serviços selecionados

Figura 3.3. Instalar os serviços selecionados

Antes de pular de cabeça neste exercício, é fortemente recomendado que você leia o restante deste livro. Depois disto, você terá um conhecimento mais preciso de como configurar os serviços esperados.