Referință rapidă

Fișă de Referință Gem Ruby Do (Execuție la Distanță)

Ghid rapid pentru gem-ul Ruby DO: conexiuni SSH la server, execuție comenzi la distanță, verificare fișiere, încărcări și înlocuiri de conținut.

· Publicat

DO este un gem Ruby care oferă un DSL curat și înlănțuibil pentru executarea comenzilor și gestionarea fișierelor prin SSH pe servere Linux la distanță.

Conectare la Server

require 'do'

# Inițializează conexiunea cu autentificare prin cheie SSH
server = DO::Server.new('srv1', 'node1.example.com', 'root', key: ['~/.ssh/id_rsa'])

Executarea Comenzilor

# Comandă unică
output = server.run 'uname -a'

# Argumente multiple de comandă
server.run 'apt-get', 'update', '-y'

# Comenzi cu răspunsuri stdin
server.run 'passwd user', 'newpassword', 'newpassword'

Verificare și Transfer de Fișiere

# Verifică existența fișierului
server.exist?('/etc/nginx/nginx.conf') # → true / false

# Citește conținutul fișierului de la distanță
content = server.read('/etc/os-release')

# Încarcă un fișier local pe serverul la distanță
server.upload('/local/app.tar.gz', '/var/www/app.tar.gz')

# Descarcă un fișier la distanță pe discul local
server.download('/var/log/nginx/access.log', './logs/access.log')

Manipularea Conținutului la Distanță

# Înlocuiește întregul conținut
server.replace :all, 'new configuration text', '/etc/app/config.env'

# Înlocuire prin expresie regulată
server.replace /^PORT=\d+$/, 'PORT=8080', '/etc/app/config.env'

# Adaugă conținut (la final implicit, sau la început)
server.append 'export PATH=$PATH:/opt/bin', '~/.bashrc'
server.append '# Autogenerated File', '/etc/motd', :top

Solicitări Interactive

# Cere date de la utilizator
answer = server.ask 'Enter deployment tag:'

# Confirmare Da/Nu
if server.yes? 'Do you want to run database migrations?'
  server.run 'bundle exec rake db:migrate'
end

# Așteaptă apăsarea tastei Enter
server.wait

Subiecte conexe