Kurzreferenz

Do Ruby Remote-Execution-Gem Spickzettel

Kurzreferenz für das DO Ruby-Gem: SSH-Serververbindungen, entfernte Befehlsausführung, Dateiinspektion, Streaming-Uploads und Inhaltsersetzungen.

· Veröffentlicht

DO ist ein Ruby-Gem mit einer klaren, verkettbaren DSL zum Ausführen von Befehlen und Verwalten von Dateien per SSH auf entfernten Linux-Servern.

Serververbindung

require 'do'

# Verbindung mit SSH-Schlüssel-Authentifizierung initialisieren
server = DO::Server.new('srv1', 'node1.example.com', 'root', key: ['~/.ssh/id_rsa'])

Befehle ausführen

# Einzelner Befehl
output = server.run 'uname -a'

# Mehrere Befehlsargumente
server.run 'apt-get', 'update', '-y'

# Befehle mit Interaktion über stdin
server.run 'passwd user', 'newpassword', 'newpassword'

Dateiinspektion & Übertragungen

# Prüfen, ob Datei existiert
server.exist?('/etc/nginx/nginx.conf') # → true / false

# Entfernten Dateiinhalt lesen
content = server.read('/etc/os-release')

# Lokale Datei auf Server hochladen
server.upload('/local/app.tar.gz', '/var/www/app.tar.gz')

# Entfernte Datei lokal herunterladen
server.download('/var/log/nginx/access.log', './logs/access.log')

Entfernte Inhaltsbearbeitung

# Gesamten Inhalt ersetzen
server.replace :all, 'new configuration text', '/etc/app/config.env'

# Reguläre-Ausdrucks-Ersetzung
server.replace /^PORT=\d+$/, 'PORT=8080', '/etc/app/config.env'

# Inhalt anhängen (standardmäßig unten oder oben)
server.append 'export PATH=$PATH:/opt/bin', '~/.bashrc'
server.append '# Autogenerated File', '/etc/motd', :top

Interaktive Eingabeaufforderungen

# Benutzereingabe anfordern
answer = server.ask 'Enter deployment tag:'

# Ja/Nein-Bestätigung
if server.yes? 'Do you want to run database migrations?'
  server.run 'bundle exec rake db:migrate'
end

# Auf Eingabetaste warten
server.wait

Verwandte Themen