استكشاف الأخطاء وإصلاحها
المشاكل الشائعة وحلولها. عند الشك، ابدأ بتشغيل rdc doctor لإجراء فحص تشخيصي شامل.
فشل اتصال SSH
- تحقق من إمكانية الاتصال يدوياً:
ssh -i ~/.ssh/id_ed25519 deploy@203.0.113.50 - شغّل
rdc context scan-keys server-1لتحديث مفاتيح المضيف - تأكد من تطابق منفذ SSH:
--port 22 - اختبر الاتصال:
rdc machine test-connection --ip 203.0.113.50 --user deploy
عدم تطابق مفتاح المضيف
إذا تمت إعادة تثبيت الخادم أو تغيّرت مفاتيح SSH الخاصة به، سترى “host key verification failed”:
rdc context scan-keys server-1
يقوم هذا الأمر بجلب مفاتيح المضيف الجديدة وتحديث إعداداتك.
فشل إعداد الجهاز
- تأكد من أن مستخدم SSH لديه صلاحيات sudo بدون كلمة مرور، أو قم بتكوين
NOPASSWDللأوامر المطلوبة - تحقق من مساحة القرص المتوفرة على الخادم
- شغّل مع
--debugللحصول على مخرجات مفصّلة:rdc context setup-machine server-1 --debug
فشل إنشاء المستودع
- تحقق من اكتمال الإعداد: يجب أن يكون مجلد مخزن البيانات موجوداً
- تحقق من مساحة القرص على الخادم
- تأكد من تثبيت ملف renet الثنائي (أعد تشغيل الإعداد إذا لزم الأمر)
فشل بدء تشغيل الخدمات
- تحقق من صياغة Rediaccfile: يجب أن يكون Bash صالحاً
- تأكد من أن ملفات
docker composeتستخدمnetwork_mode: host - تحقق من إمكانية الوصول إلى صور Docker (فكّر في تشغيل
docker compose pullفيprep()) - تحقق من سجلات الحاوية باستخدام مقبس Docker الخاص بالمستودع:
rdc term server-1 my-app -c "docker logs <container-name>"
أو عرض جميع الحاويات:
rdc machine containers server-1
أخطاء رفض الصلاحيات
- عمليات المستودع تتطلب صلاحيات root على الخادم (renet يعمل عبر
sudo) - تحقق من أن مستخدم SSH الخاص بك في مجموعة
sudo - تأكد من أن مجلد مخزن البيانات لديه الصلاحيات الصحيحة
مشاكل مقبس Docker
كل مستودع لديه Docker daemon خاص به. عند تشغيل أوامر Docker يدوياً، يجب تحديد المقبس الصحيح:
# باستخدام rdc term (مُعدّ تلقائياً):
rdc term server-1 my-app -c "docker ps"
# أو يدوياً مع المقبس:
docker -H unix:///var/run/rediacc/docker-2816.sock ps
استبدل 2816 بمعرّف الشبكة الخاص بمستودعك (يوجد في config.json أو rdc repo status).
إنشاء الحاويات على Docker Daemon خاطئ
إذا ظهرت حاوياتك على Docker daemon الخاص بالنظام المضيف بدلاً من daemon المستودع المعزول، فالسبب الأكثر شيوعاً هو استخدام sudo docker داخل Rediaccfile.
يقوم sudo بإعادة تعيين متغيرات البيئة، لذلك يُفقد DOCKER_HOST ويعود Docker إلى مقبس النظام (/var/run/docker.sock). يحظر Rediacc هذا تلقائياً، ولكن إذا واجهته:
- استخدم
dockerمباشرة — وظائف Rediaccfile تعمل بالفعل بصلاحيات كافية - إذا كنت مضطراً لاستخدام sudo، استخدم
sudo -E dockerللحفاظ على متغيرات البيئة - تحقق من Rediaccfile الخاص بك بحثاً عن أي أوامر
sudo dockerوأزلsudo
الطرفية لا تعمل
إذا فشل rdc term في فتح نافذة الطرفية:
- استخدم الوضع المضمّن مع
-cلتشغيل الأوامر مباشرة:rdc term server-1 -c "ls -la" - أجبر الطرفية الخارجية باستخدام
--externalإذا كان الوضع المضمّن يواجه مشاكل - على Linux، تأكد من تثبيت
gnome-terminalأوxtermأو محاكي طرفية آخر
تشغيل التشخيصات
rdc doctor
يتحقق هذا الأمر من بيئتك وتثبيت renet وإعدادات السياق وحالة المصادقة. يُبلِغ كل فحص بحالة OK أو Warning أو Error مع شرح مختصر.