Como instalar remotamente o Linux via SSH?

22

Preciso instalar remotamente o Ubuntu Server 10.04 (x86) em um servidor que esteja executando o RHEL 3.4 (x86). Terei que ter muito cuidado, porque ninguém pode pressionar o botão reiniciar para mim se algo der errado.

Você já instalou o Linux remotamente? Qual o caminho que você recomendaria? Algum conselho para observar as coisas?


Atualizar:

Obrigado pela ajuda. Consegui "trocar os pneus enquanto dirigia" !

Os principais componentes do meu método são extraídos do HOWTO - Instalar o Debian em um sistema Linux remoto , grub legacy: Inicializando apenas uma vez , inicialização única do grub e reinicialização de pânico do kernel e Documentação da comunidade Ubuntu: InstallationFromKnoppix

Aqui está o resumo do que eu fiz:

  1. Execute o debootstrap em um servidor Ubuntu existente
  2. Transfira os arquivos para a partição swap do servidor RHEL 3.4
  3. Inicialize na partição swap (o sistema debootstrap)
  4. Transfira os arquivos para a partição raiz original
  5. Inicialize no novo sistema Ubuntu e termine a instalação com tasksel, apt-get, etc

Testei o método em uma VM e, em seguida, apliquei no servidor. Eu tive sorte o suficiente para que tudo corra bem :)

netvope
fonte
17
Parece tentar encaixar pneus novos no carro enquanto o dirige.
Orbling
Teoricamente possível. Assim como Orbling coloca, trocar os pneus enquanto dirige o carro. Não é muito fácil!
Matt
@ephemient Awesome. Você vê que é possível, apenas incrivelmente difícil.
Orbling 02/12/10
Talvez se você forneceu mais detalhes sobre as limitações da situação, as pessoas extremamente inteligentes, criativas e engenhosas da Server Fault podem fornecer outras alternativas ou conselhos que podem permitir um caminho mais realista para alcançar seus objetivos.
Jed Daniels

Respostas:

8

Eu concordo com o sentimento das outras respostas aqui: Embora possa ser possível instalar Ubuntu remotamente no RHEL 3.4, você provavelmente vai ser pisando em alguns muito gelo fino.

Eu acho que o maior problema que você pode ter é a idade do kernel e da libc no sistema existente. Esse é um kernel da série 2.4.x? Nesse caso, não tenho certeza de que você conseguirá fazer isso, porque em algum momento durante a instalação, você precisará executar ferramentas que foram compiladas para serem executadas no kernel e na libc do Ubuntu, e elas podem não funcionar corretamente (ou de todo) em um ambiente de tempo de execução mais antigo. Se você não está executando um kernel da série 2.6.x no servidor remoto, não acho que tenha muita chance de sucesso.

Se você ainda acha que pode tentar fazer isso, existem alguns guias de que estou ciente:

Ambos os guias são meio antigos, portanto, nenhum deles pode ser tratado como algo parecido com um guia de recortar e colar. Eu sugiro fortemente seguir o conselho de outras pessoas aqui e fazer algumas execuções a seco em um servidor local ou em uma VM, porque definitivamente existem dobras e dicas que você precisará resolver antes de seguir em frente de verdade.

Steven segunda-feira
fonte
12

A melhor prática para instalar remotamente qualquer sistema operacional é comprar hardware de servidor com gerenciamento fora de banda (HP ilo, Dell drac) que permite ligar e desligar remotamente o ciclo de energia e ver o console de um servidor. Nem tente o contrário.

Mark Wagner
fonte
Eu concordo, mas ainda preciso lidar com a minha situação atual
netvope
6
Muitas pessoas experientes que fazem isso há uma década vão lhe dizer "boa sorte com isso".
troyengel
1
Tanto o embobo quanto o troyengel estão no local; a situação em que você está só piorará se você tentar fazer isso remotamente. Minha sugestão? Entre em contato com o data center.
Andrew M.
1
As placas de gerenciamento remoto são ótimas e a maioria dos novos sistemas Supermicro vem com elas, incluindo alimentação remota, teclado / vídeo / mouse e unidades remotas de CD / DVD. Para esta situação, não consigo imaginar ficar sem um.
Sean Reifschneider
5

A instalação de uma nova distribuição no local pode ser feita, mas é muito desafiadora. É algo que você quase certamente NÃO vai acertar na primeira vez. Na verdade, você terá sorte se acertar na terceira ou quarta vez.

Além disso, ninguém aqui poderá fornecer uma lista de roupas que você pode seguir e isso acontecerá. Você terá que experimentar alternativas diferentes, dependendo da partição exata do disco e do layout do sistema de arquivos, da configuração de hardware etc.

Dito isto, eis como eu faria algo assim se fosse necessário:

  • Configure uma máquina da maneira mais semelhante possível à máquina existente: discos rígidos, placas de rede, adaptadores de disco, RAM, etc.
  • Configure esta máquina para imitar a configuração atual nesse host.
  • Experimente fazer o que você precisa fazer neste sistema de teste.
  • Faça anotações abundantes para que você possa reproduzi-lo no sistema "ao vivo".
  • Execute essas notas novamente no sistema de teste antes de fazer a migração final.

Algumas técnicas que podem ajudá-lo:

  • Decida se você deseja instalar em uma nova partição ou tente instalar no sistema de arquivos existente. Se você criar uma nova partição, poderá sempre voltar ao inicializar a partição antiga. No entanto, isso provavelmente significa que você precisa reduzir o sistema de arquivos atual, o que deve ser feito offline. Escrevi algumas notas em 2007 quando fiz isso .
  • Você poderá instalar uma pequena partição em sua máquina de teste e, em seguida, fazer as alterações apropriadas, como os endereços IP e "dd" essa imagem do sistema de arquivos para usar para preencher a instalação base na nova partição. Isso seria apenas se você estivesse usando uma partição separada para a nova instalação.
  • Em vez disso, você pode colocar o sistema de arquivos raiz em um subdiretório e, em seguida, fazer algo no initrd, para que: "cd / target; mv * oldroot; mv oldroot / newos / *". para mover todos os diretórios antigos para fora do lugar e colocar os novos no lugar. Isso teria que ser feito antes que o initrd faça "pivotroot", provavelmente logo após montar o sistema de arquivos.
  • Adicionar algum código aos scripts do initrd pode permitir que você faça todo tipo de coisa maravilhosa durante a inicialização do sistema. Veja a postagem do blog que eu refiro acima para mais detalhes.
  • Espere que você falhe nisso. É um empreendimento extremamente arriscado. Quando redimensionei meu sistema de arquivos (mencionado acima), fiquei chocado quando ele foi reiniciado corretamente.
  • Você terá que decidir o que fazer sobre os setores de inicialização, está executando o LILO ou GRUB? Deseja tentar permanecer no atual carregador de inicialização ou mudar para o 10.04? Provavelmente, o ideal seria usar o carregador existente para inicializar no novo sistema operacional e, em seguida, executar "grub-install" desse sistema operacional para colocar o novo no lugar.

Boa sorte! Você precisará disso. :-)

Sean Reifschneider
fonte
1

Se você tiver uma partição diferente, poderá usá-la para instalar em uma VM que veja o disco inteiro. Contanto que você não monte a mesma partição na VM e no host ou brinque com a tabela de partições, você estará seguro. Outra maneira seria inicializar a partir da rede e fazer uma instalação usando preseed ou kickstart. Experimente um ambiente local antes de jogar remotamente.

Mircea Vutcovici
fonte
1

Eu escrevo uma solução simples baseada em preseed.

https://github.com/mhf-ir/ubuntu-overssh-reinstallation

Você precisa da versão instalada do ubuntu que possui ssh. outro servidor http para veiculação de arquivo preseed. Eu testei tantas vezes em muitos datacenters.

Se você possui o ubuntu, pode reinstalar e particionar o ssh sem o KVM / IPMI / VNC ou qualquer aplicativo remoto. apenas usando ssh. E instalação pura usando o netiso / miniiso do servidor ubuntu.

Ele é baseado no carregador de imagens grub e inicializa seu arquivo iso personalizado que contém suas configurações de rede e senha ssh.

sweb
fonte
0
  1. Boa sorte.

  2. Isso é possível de ser feito, sob algumas circunstâncias (que podem não se aplicar aqui / a você).

  3. Isto é difícil; Eu recomendo que você pratique em uma máquina local (virtual, se necessário). Muito.

Slartibartfast
fonte
0

Se você puder obter apenas uma visita ao servidor, poderá adicionar uma porta KVM sobre IP ao sistema. Encontrei uma porta 1 Lantronix Spider de US $ 310 na CDW que faz isso. Porém, não ajuda com um "botão de reinicialização" ou com a ejeção da mídia, embora você possa entrar no BIOS na reinicialização e alterar a ordem de inicialização para que um CD seja ignorado.

zerolagtime
fonte
0

Eu já fiz isso antes, como teste. Não é algo que eu recomendaria se não houvesse plano de fallback.

Os sistemas são bastante confiáveis ​​se todos os aplicativos necessários já estiverem carregados. Executei dd com êxito e substitui os primeiros 8 GB ou mais do servidor de destino com uma instalação padrão do Ubuntu e, em seguida, reiniciei o servidor no Ubuntu sem problemas. Você pode expandir a partição de lá para preencher o restante da unidade.

Você também pode configurar uma nova partição, inicializar uma nova instalação nela e modificar seu gerenciador de inicialização para inicializar nessa nova partição. Novamente, espere fracasso e espere sucesso.

Jeff McJunkin
fonte