مرجع سريع

ورقة غش حزمة Do للتنفيذ عن بُعد بلغة Ruby

دليل مرجعي سريع لحزمة DO بلغة Ruby: اتصالات خوادم 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'

# الاستبدال بالتعبير النمطي
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

موضوعات ذات صلة