Riferimento rapido

Cheatsheet Gem Ruby Do per Esecuzione Remota

Guida rapida per la gem Ruby DO: connessioni server SSH, esecuzione comandi remoti, ispezione file, upload e sostituzioni di contenuto.

· Pubblicato

DO è una gem Ruby che fornisce un DSL pulito e concatenabile per eseguire comandi e gestire file via SSH su server Linux remoti.

Connessione al Server

require 'do'

# Inizializza la connessione con autenticazione a chiave SSH
server = DO::Server.new('srv1', 'node1.example.com', 'root', key: ['~/.ssh/id_rsa'])

Esecuzione di Comandi

# Comando singolo
output = server.run 'uname -a'

# Argomenti di comando multipli
server.run 'apt-get', 'update', '-y'

# Comandi con risposte ai prompt stdin
server.run 'passwd user', 'newpassword', 'newpassword'

Ispezione e Trasferimenti di File

# Verifica l’esistenza del file
server.exist?('/etc/nginx/nginx.conf') # → true / false

# Leggi il contenuto del file remoto
content = server.read('/etc/os-release')

# Carica un file locale sul server remoto
server.upload('/local/app.tar.gz', '/var/www/app.tar.gz')

# Scarica un file remoto su disco locale
server.download('/var/log/nginx/access.log', './logs/access.log')

Manipolazione Remota del Contenuto

# Sostituisci l’intero contenuto
server.replace :all, 'new configuration text', '/etc/app/config.env'

# Sostituzione con regex
server.replace /^PORT=\d+$/, 'PORT=8080', '/etc/app/config.env'

# Aggiungi contenuto (in fondo di default, oppure in cima)
server.append 'export PATH=$PATH:/opt/bin', '~/.bashrc'
server.append '# Autogenerated File', '/etc/motd', :top

Prompt Interattivi

# Chiedi input all’utente
answer = server.ask 'Enter deployment tag:'

# Conferma Sì/No
if server.yes? 'Do you want to run database migrations?'
  server.run 'bundle exec rake db:migrate'
end

# Attendi invio
server.wait

Argomenti correlati