Escolha uma imagem Ubuntu compatível com seu VPS
Uma imagem Ubuntu para VPS precisa combinar versão, arquitetura e dependências com a sua aplicação. Decida antes de contratar e confira o sistema depois da criação. O nome Ubuntu no painel não informa sozinho quais pacotes, ferramentas e rotinas de recuperação vão funcionar.
Neste guia
Liste os requisitos antes de criar a máquina
Inclua sistema operacional, runtime, banco, extensões nativas, agentes de backup e monitoramento. Separe o que tem suporte oficial do que sua equipe apenas testou. Uma aplicação pode funcionar enquanto sua ferramenta de restauração falha.
- Anote versões Ubuntu, linguagens e bancos aceitos pela aplicação.
- Confira a arquitetura de extensões, imagens de contêiner e agentes.
- Compare o tempo de manutenção restante das versões compatíveis.
- Confirme a imagem e a arquitetura disponíveis na região desejada.
- Após criar a VM, verifique o sistema e teste a aplicação antes de mover dados ou tráfego.
Ubuntu 24.04 LTS serve de exemplo concreto: trouxe Python 3.12 como padrão, PHP 8.3 e PostgreSQL 16. As versões de correção mudam com atualizações. Compatibilidade com versões antigas não garante suporte a essas famílias. A tabela LTS ajuda a revisar o prazo de manutenção.
Identifique o sistema realmente recebido
Execute dentro do VPS. Os comandos somente consultam distribuição, kernel e arquiteturas. Guarde os resultados com o registro do ambiente antes de instalar mais componentes.
cat /etc/os-release
uname -r
dpkg --print-architecture
uname -mDeslize a tabela para ver todas as colunas →
| Resultado | Interpretação |
|---|---|
| VERSION_ID em /etc/os-release | Versão Ubuntu instalada, como 24.04 |
| Kernel em uname -r | Kernel em execução; pode mudar após atualização e reinício |
| amd64 em dpkg e x86_64 em uname | Nomes usuais para x86 de 64 bits |
| arm64 em dpkg e aarch64 em uname | Nomes usuais para Arm de 64 bits |
Só o nome do kernel não identifica a versão Ubuntu nem a cobertura de suporte. Uma imagem pode usar kernel específico de nuvem. Não presuma que um binário amd64 roda nativamente em arm64.
Confira a preparação com cloud-init
Muitas imagens usam cloud-init para chaves, contas e rede. Verifique se ele existe; sua ausência por si só não é um erro, pois o provedor pode usar outra forma de preparação.
if command -v cloud-init >/dev/null 2>&1; then
cloud-init status --long
else
printf '%s\n' 'cloud-init não está instalado; confira como o provedor prepara esta imagem.'
fiRunning indica que o processo continua. Error ou degraded exige investigação mesmo com SSH funcionando. Se cloud-init estiver presente, examine os logs relevantes:
sudo tail -n 50 /var/log/cloud-init.log
sudo tail -n 50 /var/log/cloud-init-output.logScripts de inicialização podem imprimir segredos. Remova informações sensíveis antes de compartilhar. Não use cloud-init clean nem substitua arquivos de rede para esconder falhas. Preparação concluída não comprova a saúde da aplicação, do banco ou do backup.
Veja os candidatos de pacotes antes de instalar
Atualize o índice e consulte candidatos para os componentes que pretende usar. apt update não instala esses pacotes da aplicação. Registre versão e repositório de origem.
sudo apt update
apt-cache policy python3 php postgresql
apt-cache policy python3.12 php8.3 postgresql-16Installed: (none) indica pacote ausente. Candidate: (none) indica que as fontes configuradas não oferecem candidato. Confira nome, arquitetura e componentes Ubuntu antes de adicionar um repositório qualquer.
Metapacotes como php e postgresql escolhem uma implementação padrão; consulte também os pacotes com versão. Para software instalado, confira o executável ou serviço real. python3 --version e php --version não informam a versão de um banco remoto; cliente e servidor de banco também podem diferir.
Resolva uma incompatibilidade por vez
Imagine uma aplicação limitada a Python 3.10 com extensão nativa somente amd64. É uma hipótese, não um produto específico. Ubuntu 24.04 arm64 falha em duas condições: Python padrão 3.12 e outra arquitetura para a extensão.
Trocar para amd64 resolve a arquitetura, mas não muda o Python padrão. Um ambiente virtual isola pacotes usando o interpretador que o criou; não transforma Python 3.12 em 3.10. Não substitua o Python do sistema Ubuntu para acomodar a aplicação.
Considere atualizar a aplicação ou usar um runtime/contêiner mantido separadamente com suporte documentado. Uma versão Ubuntu mais antiga também tem prazo de manutenção e não é solução automática.
No teste de aceitação, exercite a extensão, uma operação de banco, uma tarefa de fundo e um ciclo de backup/restauração. Registre versões e build. Instalar sem erro ou abrir a página inicial não testa todo o ambiente.
Inclua contêineres e a manutenção de cada camada
Contêineres separam dependências, mas usam kernel, rede e armazenamento do host. Verifique a disponibilidade de uma imagem nativa; emulação muda desempenho e suporte.
Documente volumes persistentes ou armazenamento externo e teste a restauração fora de contêineres descartáveis. Fixe versões ou digests para reproduzir o ambiente, mantendo um calendário de atualizações. Uma imagem vulnerável fixada continua vulnerável.
Manutenção padrão do Ubuntu, Ubuntu Pro, repositórios externos e imagens de contêiner têm escopos diferentes. Registre quem atualiza cada componente. A versão da distribuição não cobre automaticamente tudo que você instalou.
Separe atualização de pacotes e mudança de versão Ubuntu
Depois de atualizar os índices, consulte pacotes pendentes, serviços em falha e indicação de reinício. Estes comandos não iniciam uma atualização da distribuição.
apt list --upgradable
systemctl --failed
if [ -f /var/run/reboot-required ]; then cat /var/run/reboot-required; fiRevise e aplique atualizações em uma janela adequada; serviços podem reiniciar. Repita os testes da aplicação. A ausência de reboot-required não prova que todos os componentes estão atualizados.
Teste uma mudança de versão em cópia ou máquina nova. Confira runtime, repositórios, extensões e migração de banco. Planeje sincronização final e retorno que considerem gravações posteriores à mudança: um snapshot antigo não contém pedidos recebidos depois.
Deixe um registro reproduzível
Deslize a tabela para ver todas as colunas →
| Área | O que guardar sem segredos |
|---|---|
| Sistema | Versão, arquitetura, kernel e identificador da imagem |
| Aplicação | Build, runtime, dependências fixadas e repositórios |
| Preparação | Resultado e configuração não secreta |
| Aceitação | Cenários, resultados e falhas pendentes |
| Manutenção | Responsáveis, janela e destinatário dos alertas |
| Recuperação | Local do backup, procedimento e último teste |
Versione configurações não secretas e reavalie dependências importantes quando mudarem. Se precisa de um teste público, veja a criação de uma VM elegível. Se o ambiente está adequado, siga a publicação HTTPS. Para decidir outra distribuição, consulte os critérios de VPS Linux.
Perguntas e respostas
Ubuntu 24.04 sempre é a melhor opção?
É o exemplo concreto do guia. Escolha uma versão mantida, oferecida pelo provedor e compatível com todos os componentes da aplicação.
Posso reinstalar a imagem sem perder os arquivos?
A reinstalação pode substituir o disco. Confira o procedimento, exporte os dados e valide uma recuperação antes. Reinstalar e atualizar a distribuição são operações diferentes.
Um contêiner resolve qualquer diferença de arquitetura?
Não. A imagem e seus binários precisam atender à plataforma ou usar uma alternativa explicitamente suportada. Emulação tem outras condições.