Szybka pomoc

Ściągawka gemu Ruby Do (zdalne wykonywanie)

Szybki przewodnik dla gemu Ruby DO: połączenia SSH z serwerem, zdalne wykonywanie poleceń, sprawdzanie plików, przesyłanie i modyfikacja zawartości.

· Opublikowano

DO to gem Ruby zapewniający przejrzysty, łańcuchowy DSL do wykonywania poleceń i zarządzania plikami przez SSH na zdalnych serwerach Linux.

Połączenie z serwerem

require 'do'

# Zainicjuj połączenie z uwierzytelnianiem kluczem SSH
server = DO::Server.new('srv1', 'node1.example.com', 'root', key: ['~/.ssh/id_rsa'])

Wykonywanie poleceń

# Pojedyncze polecenie
output = server.run 'uname -a'

# Wiele argumentów polecenia
server.run 'apt-get', 'update', '-y'

# Polecenia z odpowiedziami dla stdin
server.run 'passwd user', 'newpassword', 'newpassword'

Sprawdzanie i transfer plików

# Sprawdź istnienie pliku
server.exist?('/etc/nginx/nginx.conf') # → true / false

# Odczytaj zawartość zdalnego pliku
content = server.read('/etc/os-release')

# Prześlij lokalny plik na zdalny serwer
server.upload('/local/app.tar.gz', '/var/www/app.tar.gz')

# Pobierz zdalny plik na dysk lokalny
server.download('/var/log/nginx/access.log', './logs/access.log')

Zdalna edycja zawartości

# Zastąp całą zawartość
server.replace :all, 'new configuration text', '/etc/app/config.env'

# Zastępowanie wyrażeniem regularnym
server.replace /^PORT=\d+$/, 'PORT=8080', '/etc/app/config.env'

# Dopisz zawartość (domyślnie na końcu lub na początku)
server.append 'export PATH=$PATH:/opt/bin', '~/.bashrc'
server.append '# Autogenerated File', '/etc/motd', :top

Interaktywne zapytania

# Poproś użytkownika o wpisanie danych
answer = server.ask 'Enter deployment tag:'

# Potwierdzenie Tak/Nie
if server.yes? 'Do you want to run database migrations?'
  server.run 'bundle exec rake db:migrate'
end

# Czekaj na naciśnięcie Enter
server.wait

Powiązane tematy