Sobes.tech
Middle+

Como é que instalaria o software em um grande número de máquinas se não tiver acesso ao Ansible e Python?

sobes.tech IA

Resposta da IA

Utilizaria uma combinação de scripts de linha de comando (Bash para Linux/Unix, Batch/PowerShell para Windows) e SSH/WinRM.

#!/bin/bash
# Exemplo de script para instalar software no Linux via SSH

NOME_SOFTWARE="nginx"
HOSTS_REMOTOS=("user@host1" "user@host2" "user@host3") # Lista de hosts remotos

for host in "${HOSTS_REMOTOS[@]}"; do
  echo "A instalar $NOME_SOFTWARE em $host..."
  ssh "$host" "sudo apt-get update && sudo apt-get install -y $NOME_SOFTWARE"
  if [ $? -eq 0 ]; then
    echo "$NOME_SOFTWARE instalado com sucesso em $host"
  else
    echo "Erro na instalação de $NOME_SOFTWARE em $host"
  fi
done

Para Windows:

# Exemplo de script para instalar software no Windows via WinRM

$nomeSoftware = "notepadplusplus" # Exemplo de nome de pacote do Chocolatey
$hostsRemotos = @("host1", "host2", "host3") # Lista de hosts remotos

foreach ($host in $hostsRemotos) {
  Write-Host "A instalar $nomeSoftware em $host..."
  # Exemplo de uso do Chocolatey (requer instalação prévia nas máquinas alvo)
  Invoke-Command -ComputerName $host -ScriptBlock { choco install $using:nomeSoftware -y }
  if ($?) {
    Write-Host "$nomeSoftware instalado com sucesso em $host"
  } else {
    Write-Host "Erro na instalação de $nomeSoftware em $host"
  }
}

Também é possível usar:

  1. Autenticação por chave SSH: para automatizar o login sem solicitar senha.
  2. Distribuição centralizada de ficheiros: transferência de distribuições ou scripts de instalação para as máquinas antes de executar.
  3. Cron/Agendador de Tarefas: uso de agendadores para executar instalações em horários específicos ou periodicamente.
  4. PXE Boot (Preboot Execution Environment): para implementar sistemas operativos e software básico em máquinas "nuas".
  5. Scripts Bash/Batch/PowerShell personalizados: criação de scripts mais complexos para configurar após a instalação.

Tabela comparativa de abordagens:

Método Vantagens Desvantagens Aplicabilidade
Bash/SSH Amplamente disponível, simples para cenários básicos. Funcionalidades limitadas na gestão de estado, gestão de erros complexa. Sistemas Linux/Unix.
Batch/PowerShell/WinRM Ferramentas integradas no Windows. Menos padronizado que SSH/Bash, requer configuração do WinRM. Sistemas Windows.
Ficheiros centralizados Facilita a distribuição de ficheiros grandes. Requer mecanismo adicional para executar nas máquinas destino. Qualquer sistema.
Cron/Agendador de Tarefas Automação por tempo. Não adequado para instalações interativas ou execução manual. Qualquer sistema.
PXE Boot Ideal para instalações do zero. Configuração complexa, uso limitado em sistemas em funcionamento. Novos/sistemas a reinstalar.

O uso destes métodos requer planeamento cuidadoso, testes de scripts e mecanismos confiáveis de gestão de erros e registo. A gestão de versões dos scripts também é crítica.