واجهة سطر الأوامر لمسؤول Awanio (awadm) - دليل المستخدم
يشرح هذا الدليل كيفية تثبيت وتكوين واستخدام awadm — واجهة سطر الأوامر (CLI) الخاصة بالمسؤول لإدارة عناقيد Awanio (واجهة بديلة للوحة تحكم Awanio Dashboard).
أنظمة التشغيل المدعومة: macOS/Linux. تفترض الأوامر أدناه استخدام غلاف POSIX (bash/zsh).
1. التثبيت
الملف البرمجي المجمع مسبقًا (مثال لنظام Linux amd64):
curl -O https://storage.awan.io/assets/awadm-linux-amd64.tar.gz
tar -xvf awadm-linux-amd64.tar.gz
chmod +x ./awadm
sudo mv ./awadm /usr/local/bin/
awadm --version2. التكوين
يقوم awadm بقراءة بيانات الاعتماد من ملف awanconfig. افتراضيًا يستخدم:
- المسار الافتراضي:
~/.awan/config - التجاوز باستخدام:
--awanconfig /path/to/config
طريقتان للتكوين:
أ) تدفق تسجيل الدخول (موصى به)
- يقوم بتبادل اسم المستخدم/كلمة المرور الخاصة بلوحة التحكم مقابل بيانات اعتماد API ويككتب awanconfig.
مثال:
awadm config clusters login \
--name dev3 \
--username awanio \
--url https://0.0.0.0/v2
# يطالب بكلمة المرور إذا تم إغفال --passwordب) الإعداد اليدوي أنشئ ~/.awan/config مع محتوى YAML التالي:
apiVersion: v1
clusters:
dev-cluster:
server: https://0.0.0.0/v2
access-key: sa-xxxxxx
access-secret: yyyyyy
demo-cluster:
server: https://192.168.1.10/v2
access-key: sa-aaaaaa
access-secret: bbbbbb
contexts:
current-context: dev-clusterأوامر التكوين المفيدة:
- عرض السياق الحالي:
awadm config context - تعيين السياق الحالي:
awadm config context set <cluster-name> - عرض قائمة العناقيد:
awadm config clusters - حذف عنقود من التكوين:
awadm config clusters delete <cluster-name> - عرض مسار ملف التكوين ومحتواه:
awadm config info
ملاحظة: يتطلب تدفق تسجيل الدخول أن يكون المستخدم عضوًا في المؤسسة "root" لإنشاء حسابات الخدمة (service accounts) تلقائيًا.
3. مرجع أوامر awadm
الأعلام العامة (Global flags):
--awanconfig stringالمسار إلى ملف التكوين (افتراضيًا:~/.awan/config)-o, --output stringتدعم بعض الأوامر تنسيق الإخراج (table أو json)
3.1 الأجهزة الافتراضية (Virtual Machines)
- عرض قائمة VMs:
awadm vm --size-per-page 100 --sort-by id --order desc --page 1 [--search <kw>]الأعمدة: uuid, Title, Status, Organization, CPU, Ram
- تفاصيل VM حسب UUID:
awadm vm get <vuid> [-o json]- مقاييس VM (آخر 60 دقيقة، خطوة كل 10 دقائق):
awadm vm metric <vuid> --since-x-minute-ago 60 --minute-step 10- تصدير مقاييس VM إلى CSV:
awadm vm metric <vuid> --since-x-minute-ago 120 --minute-step 10 --export-path vm_metrics.csv --export-format csv- مخرجات JSON:
awadm vm metric <vuid> --since-x-minute-ago 60 --minute-step 10 -o json- مخرجات OID بنمط SNMP:
awadm vm metric <vuid> --since-x-minute-ago 60 --minute-step 10 --output snmp --snmp-base-oid .1.3.6.1.4.1.99999.13.2 المجلدات (Volumes)
- عرض قائمة المجلدات:
awadm volumeالأعمدة: uuid, Title, Size, Backend Storage
- تفاصيل المجلد حسب UUID:
awadm volume get <uuid> [-o json]3.3 العقد (Nodes)
- عرض قائمة العقد:
awadm nodesالأعمدة: name, status, internal_ip, network, mem_ok, disk_ok, pid_ok
أعلام تقسيم الصفحات (Pagination flags):
-p, --page stringالصفحة الحالية في الترقيم (افتراضيًا: 1)-s, --size-per-page stringالحد الأقصى لعدد العناصر في قائمة الإخراج (افتراضيًا: 15)
مثال مع ترقيم الصفحات:
awadm nodes -p 2 -s 20- مقاييس العقدة (استخدام CPU والذاكرة):
awadm nodes metric <node-name> --since-x-minute-ago 60 --minute-step 10الأعلام:
--since-x-minute-ago intعدد الدقائق الماضية من الآن لبدء النطاق (متعارض مع start/end)--start stringوقت البدء بتنسيق '2006-01-02 15:04:05'--end stringوقت الانتهاء بتنسيق '2006-01-02 15:04:05'--minute-step intخطوة تجميع الدقائق-o, --output stringتنسيق الإخراج: table أو json أو snmp (افتراضيًا: table)--snmp-base-oid stringOID الأساسي لنمط إخراج SNMP (افتراضيًا.1.3.6.1.4.1.99999.2)--export-path stringمسار الملف الاختياري لتصدير السلاسل الزمنية للمقاييس--export-format stringتنسيق التصدير: csv أو spreadsheet (افتراضيًا csv)
أمثلة:
# الجدول (افتراضي)
awadm nodes metric awid5
# مخرجات JSON
awadm nodes metric awid5 -o json
# مخرجات OID بنمط SNMP
awadm nodes metric awid5 -o snmp --snmp-base-oid .1.3.6.1.4.1.99999.2
# تصدير السلاسل الزمنية إلى CSV
awadm nodes metric awid5 --export-path ./node_metrics_awid5.csv
# نطاق زمني محدد
awadm nodes metric awid5 --start "2025-08-10 12:00:00" --end "2025-08-10 14:00:00" --minute-step 5ملاحظات:
تحتوي استجابات API لمقاييس العقد على هيكل JSON مختلف عن مقاييس VM؛ تقوم CLI بتسوية ذلك داخليًا حتى تكون المخرجات والتصديرات متسقة.
معرّفات Fibre Channel WWIDs:
awadm nodes storages fibre-channelالأعمدة: wwid, wwn, size
3.4 حسابات الخدمة (Service Accounts)
- عرض قائمة حسابات الخدمة:
awadm service-accountsالأعمدة: uuid, AccesKey, Status
- إنشاء حساب خدمة:
awadm service-accounts create --name <name> --org-uid <organization-uuid>الأعلام:
--name(مطلوب): 6–20 حرفًا؛ أحرف، أرقام، شرطة (-)، شرطة سفلية (_)، نقطة (.)--org-uid(مطلوب): UUID للمؤسسةحذف حسابات الخدمة بواسطة UUID(s):
awadm service-accounts delete <uuid> [<uuid> ...]3.5 التراخيص (Licenses)
- عرض قائمة التراخيص المطبقة:
awadm licenseالأعمدة: license key, cluster id, features, maximum cpu socket, expired date
- إضافة مفتاح ترخيص جديد:
awadm license add <license-key>4. أمثلة
- البدء السريع: تسجيل الدخول وعرض قائمة VMs
awadm config clusters login --name dev --username admin --url https://0.0.0.0/v2
awadm vm --search web
awadm vm get 00000000-0000-0000-0000-000000000000- تبديل السياق وعرض قائمة المجلدات
awadm config context set demo-cluster
awadm volume- إنشاء حساب خدمة عبر تدفق تسجيل الدخول، ثم إنشاء وعرض SAs
awadm config clusters login --name demo --username admin --url https://192.168.1.10/v2
awadm service-accounts create --name sa-demo --org-uid 00000000-0000-0000-0000-000000000000
awadm service-accounts5. الإخراج والتنسيق
- الإخراج في جدول هو الافتراضي لعروض القوائم والتفاصيل.
- يمكن طلب إخراج JSON لبعض أوامر التفاصيل عبر
-o json.
6. استكشاف الأخطاء وإصلاحها
وصول غير مصرح به أو غير صالحة:
- تأكد من أن awanconfig يحتوي على access-key و access-secret صالحة للسياق المحدد.
- تحقق من أن URL الـ
serverصحيح ويمكن الوصول إليه.
شهادات SSL/TLS:
- إذا كانت بيئتك تستخدم شهادات ذاتية التوقيع (self-signed)، فتأكد من أن شهادة الخادم موثوقة في نظام التشغيل لديك. قد يتجاوز العميل التحقق من TLS في بعض المكالمات، ولكن يوصى بالتكوينات الآمنة.
فشل تدفق تسجيل الدخول:
- تأكد من صحة بيانات اعتماد لوحة التحكم.
- يجب أن ينتمي المستخدم إلى المؤسسة "root" لإنشاء حسابات الخدمة.
الحقول الفارغة أو المفقودة في إخراج الجدول:
- تحمي CLI من الحقول المفقودة (مثل Status و Organization و Backend Storage)، حيث تعرض
-إذا كانت غير متوفرة.
- تحمي CLI من الحقول المفقودة (مثل Status و Organization و Backend Storage)، حيث تعرض
7. ملاحظات أمنية
- قم بتخزين ومشاركة awanconfig بحذر؛ فهو يحتوي على بيانات اعتماد API.
- يفضل اتباع نهج الصلاحيات الأدنى (least-privilege) لحسابات الخدمة.
8. الإصدار والمساعدة
- عرض الإصدار:
awadm --version
- عرض تعليمات الأوامر:
awadm --helpأوawadm <command> --help