Γρήγορη αναφορά

Σκονάκι Gem Απομακρυσμένης Εκτέλεσης Do για Ruby

Γρήγορος οδηγός αναφοράς για το DO Ruby gem: συνδέσεις SSH, απομακρυσμένη εκτέλεση εντολών, έλεγχος αρχείων, μεταφορές και αντικαταστάσεις περιεχομένου.

· Δημοσιεύτηκε

Το DO είναι ένα Ruby gem που παρέχει μια καθαρή DSL με δυνατότητα αλυσιδωτών κλήσεων για εκτέλεση εντολών και διαχείριση αρχείων μέσω SSH σε απομακρυσμένους διακομιστές Linux.

Σύνδεση Διακομιστή

require 'do'

# Αρχικοποίηση σύνδεσης με έλεγχο ταυτότητας κλειδιού SSH
server = DO::Server.new('srv1', 'node1.example.com', 'root', key: ['~/.ssh/id_rsa'])

Εκτέλεση Εντολών

# Μονή εντολή
output = server.run 'uname -a'

# Πολλαπλά ορίσματα εντολής
server.run 'apt-get', 'update', '-y'

# Εντολές με απαντήσεις stdin
server.run 'passwd user', 'newpassword', 'newpassword'

Έλεγχος & Μεταφορές Αρχείων

# Έλεγχος ύπαρξης αρχείου
server.exist?('/etc/nginx/nginx.conf') # → true / false

# Ανάγνωση περιεχομένου απομακρυσμένου αρχείου
content = server.read('/etc/os-release')

# Μεταφόρτωση τοπικού αρχείου στον διακομιστή
server.upload('/local/app.tar.gz', '/var/www/app.tar.gz')

# Λήψη απομακρυσμένου αρχείου τοπικά
server.download('/var/log/nginx/access.log', './logs/access.log')

Επεξεργασία Περιεχομένου Απομακρυσμένα

# Αντικατάσταση όλου του περιεχομένου
server.replace :all, 'new configuration text', '/etc/app/config.env'

# Αντικατάσταση με regex
server.replace /^PORT=\d+$/, 'PORT=8080', '/etc/app/config.env'

# Προσθήκη περιεχομένου (κάτω από προεπιλογή ή πάνω)
server.append 'export PATH=$PATH:/opt/bin', '~/.bashrc'
server.append '# Autogenerated File', '/etc/motd', :top

Διαδραστικές Προτροπές

# Αίτημα εισόδου από τον χρήστη
answer = server.ask 'Enter deployment tag:'

# Επιβεβαίωση Ναι/Όχι
if server.yes? 'Do you want to run database migrations?'
  server.run 'bundle exec rake db:migrate'
end

# Αναμονή για πάτημα Enter
server.wait

Σχετικά θέματα