Skip to content

awctl CLI

يوفر Awanio أداة awctl cli للمساعدة في إعداد وإدارة منصة Awanio السحابية. يدعم هذا الأمر التشغيل على Debian 11 فما فوق، وUbuntu 20.04 فما فوق فقط في الوقت الحالي. نخطط لدعم RedHat 9 في المرحلة القادمة.

تثبيت awctl CLI

قبل تنفيذ أي عملية من العمليات التالية، يجب تنزيل أداة awctl cli من المستودع العام لـ Awanio.

bash
curl -O https://storage.awan.io/assets/awctl-linux-amd64.tar.gz
tar -xvf awctl-linux-amd64.tar.gz
sudo chmod +x ./awctl
sudo mv ./awctl /usr/local/bin/
sudo awctl --version

مولّد ملف تهيئة الكتلة

لإجراء التثبيت عبر واجهة سطر الأوامر، يجب إعداد ملف تهيئة الكتلة. يحتوي هذا الملف على المعلومات اللازمة لإنشاء كتلة جديدة. لإنشاء القالب، نفّذ الأمر التالي:

bash
sudo awctl generate-conf-file

سيتم إنشاء ملف جديد. للاطلاع على مزيد من التفاصيل حول كيفية استخدام هذا الملف، يرجى مراجعة صفحة مخطط ملف تهيئة الكتلة.

الحل الشامل المُدمج

لتثبيت جميع الحزم المطلوبة وـ CRDs مباشرةً، استخدم هذا الأمر:

bash
sudo awctl init -f cluster-config.yaml

التثبيت خطوة بخطوة

لإجراء التثبيت خطوة بخطوة، استخدم هذه الأوامر:

  1. يقتصر هذا على تثبيت حزم Linux المطلوبة مثل containerd وغيرها. ```bash sudo awctl init -f cluster-config.yaml --package-only ```
  2. يقوم هذا الخيار بتهيئة الكتلة على جميع العقد دون أي SDN أو SDS. ```bash sudo awctl init -f cluster-config.yaml --cluster-only ```
  3. يقوم هذا الخيار بتثبيت SDN في كتلة Kubernetes الأساسية. ```bash sudo awctl init -f cluster-config.yaml --sdn-only ```
  4. يقوم هذا الخيار بتثبيت SDS في الكتلة الأساسية. ```bash sudo awctl init -f cluster-config.yaml --sds-only ```
  5. يُستخدم هذا لتثبيت جميع المكونات الخارجية المطلوبة. ```bash sudo awctl init -f cluster-config.yaml --module-only ```
  6. سيقوم هذا بتثبيت جميع مكونات Awanio. ```bash sudo awctl install -f cluster-config.yaml ```

تثبيت الواجهة الويب

لإجراء التثبيت عبر الواجهة الويب، نفّذ هذا الأمر:

bash
sudo awctl webui --port 8081

ثم افتح صفحة التثبيت على الويب عبر الرابط http://IP-NODE:8081. عدّل معلومات IP-NODE وفقاً لعنوان IP الخادم الذي سيُستخدم للتثبيت.

ضم عقدة جديدة إلى كتلة موجودة

  1. قم بإنشاء رمز الانضمام في عقدة control-plane الموجودة. ```bash sudo awctl join-token ```
  2. استخدم الرمز المُنشأ لضم عقدة إلى الكتلة. ```bash sudo awctl join \ --token=xxxxx \ --endpoint=192.168.1.10:3774 \ --role=worker \ --node-ip=192.168.1.11 ```
المعاملالوصفالإلزامية
tokenالرمز المستخدم للانضمام إلى كتلة موجودة، يتم إنشاؤه عبر الأمر `sudo awctl join-token`.مطلوب
endpointنقطة نهاية عقدة الإدارة في الكتلة الموجودة.مطلوب
roleدور العقدة في الكتلة. الخيارات هي: `control-plane-worker`، و`control-plane`، و`worker`.مطلوب
node-ipعنوان IP لهذه العقدة المستخدم للتواصل مع عقدة الإدارة.مطلوب
exclude-packageاستثناء تثبيت حزم نظام التشغيل إذا كانت العقدة الجديدة تمتلك الحزم المطلوبة بالفعل.مطلوب

تحديث Awanio

سيقوم الأمر التالي بتحديث مكونات api وcronjob والواجهة الأمامية.

bash
sudo awctl update

التحقق من الإصدار

للتحقق من الإصدار الحالي، نفّذ:

bash
sudo awctl version

للتحقق من أحدث إصدار، نفّذ:

bash
sudo awctl version --all

تحديث ملف awctl الثنائي

نفّذ الأمر التالي لتحديث الملف الثنائي لـ awctl.

bash
sudo awctl self-update

إصلاح مشكلة في الكتلة

نفّذ الأمر التالي لإصلاح مشكلة في الكتلة ناجمة عن إصدار سابق من awctl.

bash
sudo awctl patch

عرض عنوان URL للكتلة المنشورة

لعرض عنوان URL للكتلة الموجودة، نفّذ الأمر التالي:

bash
sudo awctl cluster-access -f cluster-config.yaml

إلغاء تثبيت مكونات Awanio الموجودة

لإلغاء تثبيت مكونات Awanio فقط في كتلة، نفّذ الأمر التالي:

bash
sudo awctl uninstall -f cluster-config.yaml

تدمير كتلة موجودة

لتدمير كتلة موجودة، نفّذ الأمر التالي:

bash
sudo awctl destroy -f cluster-config.yaml

مخطط ملف تهيئة الكتلة

ملف تهيئة الكتلة مستوحى من ملف eksctl ClusterConfig.

yaml
apiVersion: awanio.io/v1alpha1
kind: ClusterConfig
metadata:
  license: "GILF-ET4G-YD28-I4NK"
  features: "computes,object-storage,kubernetes,support"
  name: Cluster Name
spec:
  rootUser:
    name: Awanio
    username: awanio
    password: xxx-xxx-xxx
    email: ask@awan.io
  server:
    managementFloatingIP: 172.31.31.20
    ingressExternalIPs:
      - 172.31.31.19
      - 108.137.91.215
    nics:
      internal:
        name: ens5
      external:
        name: eth1
        ip: 103.179.254.253/24
        mac: 16:52:f3:13:6a:25
        gateway: 103.179.254.254/24
        gatewayNodes: awid1
    subnets:
      workload: 10.0.0.0/16
      workloadGateway: 10.0.0.1
      service: 10.1.0.0/16
      external: 103.179.255.0/24
    nodes:
      - name: awid1
        role: control-plane-worker
        user: ubuntu
        sshPort: "22"
        sshPrikeyFile: /home/ubuntu/.ssh/id_rsa
        internalIP: 172.31.31.19/20
        disk:
          - /dev/nvme1n1
      - name: awid3
      # the option is: control-plane, worker and control-plane-worker
        role: worker
        # this user should sudoers and have the public ssh key in remote servers
        user: ubuntu
        sshPort: "22"
        sshPrikeyFile: /home/ubuntu/.ssh/id_rsa
        internalIP: 172.31.17.44/20
        disk:
          - /dev/nvme1n1

الخصائص

الخاصيةنوع البياناتالوصفالقيمة الافتراضية
apiVersionstring-awanio.io/v1alpha1
kindstring-ClusterConfig
metadataobject--
metadata.licensestring--
metadata.featuresstring-computes,object-storage,kubernetes,support