تخفیف برای اولین خرید سرویس ابری با کد تخفیف: Welcome2XaaS

راهنمای استفاده از زیرساخت ابری

آشنایی با رایانش ابری
راهنمای استفاده از زیرساخت ابری

در این مقاله خواهید آموخت که چگونه با کمک API از زیر ساخت ابری استفاده کنیم

نکته: لطفا دقت داشته باشید در کلیه دستورات و  ارجاعات این مستند، عبارت "http://controller" می‎بایست با عبارت "https://panel.xaas.ir"  یا "https://vip.xaas.ir"  یا "https://edge.xaas.ir" (متناسب با  آدرس داشبورد ابری سرویس خود ) جایگزین گردد.

اجزای سامانه‎‌های مبتنی بر api

به طور کلی در یک سامانه مبتنی بر API سه مولفه وجود دارد:

سرور

سرویسی است که مسئولیت دریافت درخواست‎های API و ارسال آنها به نقطه نهایی را در بر دارد. این سرور نزد XaaS قرار دارد و آمادگی لازم برای دریافت درخواست‎های API را داراست.

client

نرم افزاری است که برای ارسال درخواست API از آن استفاده می‎شود. clientهای متفاوتی تحت سیستم عامل‎های مختلف در فضای اینترنت وجود دارد که مشتریان XaaS می‎توانند از آنها بهره ببرند. به عنوان نمونه می‎توان برای سیستم عامل ویندوز از نرم افزار chrom extension) postman) و برای توزیع‎های مختلف سیستم عامل لینوکس  از command line) curl) استفاده نمود.

در این راهنما از curl استفاده شده است.

user

هویتی است نزد سرور از پیش تعیین شده. بنابراین می‎تواند به سرور دسترسی داشته باشد و درخواست‎های خود را از طریق client ارسال نماید. هر user برای این که بتواند به سرور اتصال پیدا کند، می‎بایست خود را به سرور معرفی نماید. در سامانه‎های مبتنی بر API به این عمل دریافت توکن می‎گویند.

در حقیقت توکن مجوز عبوری موقتی است که پس از احراز هویت به user داده می‎شود تا به وسیله آن بتواند درخواست‎های خود را ارسال نماید.

در ادامه ابتدا به فرایند دریافت توکن و سپس به فرایندهای ارسال درخواست خواهیم پرداخت.

فرآیند ارسال درخواست‎ها

     ۱-  دریافت توکن

برای دریافت توکن می بایست مقادیر زیر را به متغیر های مورد نظر اختصاص دهیم:  

<authentication_url> = http://360.xaas.ir:5000

<username> = your_username

<password> = your_password

<project_name> = your_project name

و سپس از دستور زیر استفاده نماییم: 

$ curl -s -XPOST <authentication_url>/v2.0/tokens -H "Content-type: application/json" -d '{"auth":{"tenantName": "<project_name>", "passwordCredentials": {"username": "<username>", "password": "<password>"}}}'

 نمونه ای از خروجی در شکل زیر مشخص گردیده است. 

 

همانطور که مشاهده می‎کنید در خروجی دستور id توکن دریافتی نمایش داده می‎شود و از این پس می‎بایست از این id در ارسال درخواست‎ها استفاده نماییم:

<token_id> = this_id

برای خوانایی بیشتر میتوانید خروجی دستور بالا را در دستور python -m json.tool یا Pipe ،jq کنید.  

$ curl -s -XPOST <authentication_url>/v2.0/tokens -H "Content-type: application/json" -d '{"auth":{"tenantName": "<project_name>", "passwordCredentials": {"username": "<username>", "password": "<password>"}}}' | python -m json.tool

or

$ curl -s -XPOST <authentication_url>/v2.0/tokens -H "Content-type: application/json" -d '{"auth":{"tenantName": "<project_name>", "passwordCredentials": {"username": "<username>", "password": "<password>"}}}' | jq

    ۲-  ارسال درخواست

 برای ارسال درخواست‎ها به آدرس سرور API احتیاج داریم:

<api_url> = http://360.xaas.ir:8774

همچنین از توکن گرفته شده در مرحله قبل، به منظور احراز هویت استفاده می‎کنیم.

 درخواست‎های مرتبط با سرویس nova

گرفتن لیست ماشین ها

$ curl -s -XGET <api_url>/v2/<project_id>/servers -H "X-Auth-Token: <token_id>"

مشاهده جزئیات در مورد ماشین ها

$ curl -s -XGET <api_url>/v2/<project_id>/servers/detailed -H "X-Auth-Token: <token_id>"

مشاهده اطلاعات یک ماشین مشخص

$ curl -s -XGET <api_url>/v2/<project_id>/servers/<instance_id> -H "X-Auth-Token: <token_id>"

گزارش گیری از سرورها بر اساس مشخصات آنها (به عنوان مثال تمام سرور هایی که در وضعیت active هستند)

$ curl -s -XGET <api_url>/v2/<project_id>/servers/detailed?status=active -H "X-Auth-Token: <token_id>"

متوقف کردن ماشین مجازی به صورت موقت 

$ curl -s -XPOST  <api_url>/v2/<project_id>/servers/<instance_id>/action  -H "X-Auth-Token: <token_id>" -H "Content-Type: application/json" -d '{"pause": null}'

خارج کردن ماشین مجازی از حالت توقف

$ curl -s -XPOST <api_url>/v2/<project_id>/servers/<instance_id>/action  -H "X-Auth-Token: <token_id>" -H "Content-Type: application/json" -d '{"unpause": null}'

متوقف کردن کامل ماشین مجازی

$ curl -s -XPOST  <api_url>/v2/<project_id>/servers/<instance_id>/action  -H "X-Auth-Token: <token_id>" -H "Content-Type: application/json" -d '{"os-stop": null}'

روشن کردن ماشین مجازی

curl -s -XPOST <api_url>/v2/<project_id>/servers/<instance_id>/action  -H "X-Auth-Token: <token_id>" -H "Content-Type: application/json" -d '{"os-start": null}'

تغییر اندازه ماشین مجازی

      ۱- دریافت id از flavor مورد نیاز توسط گرفتن لیست flavorها:

 $ curl -s -XGET  <api_url>/v2/<project_id>/flavors -H "X-Auth-Token: <token_id>"

 

۲- دریافت تصدیق امکان تغییر سایز ماشین مجازی به flavor انتخاب شده (به عنوان مثال هنگامی که flavor انتخاب شده کوچکتر از flavor کنونی باشد، تغییر اندازه ممکن نخواهد بود)

$ curl -s -XPOST  <api_url>/v2/<project_id>/servers/<instance_id>/action  -H "X-Auth-Token: <token_id>" -H "Content-Type: application/json" -d '{"resize": {"flavorRef": "<flavor_id>"}}'

۳- اعمال تغییر اندازه

$ curl -s -XPOST <api_url>/v2/<project_id>/<instance_id>/action  -H "X-Auth-Token: <token_id>" -H "Content-Type: application/json" -d '{"confirmResize": null}'

همانطور که ملاحظه می‎کنید، استفاده از API در زیرساخت XaaS بر مبنای استاندارد APIها در openstack می‎باشد. بنابراین شما می‎توانید برای اطلاعات بیشتر به مجموعه راهنماهای کار با API در openstack مراجعه نمایید.

در ضمن برای دسترسی به آدرس (پورت)های مورد استفاده API در هر سرویس می‎توانید از لینک زیر که در پنل ۳۶۰ نیز قابل مشاهده است استفاده نمایید:

https://360.xaas.ir/project/access_and_security/?tab=access_security_tabs__api_access_tab 

نکته: لطفا دقت داشته باشید در کلیه دستورات و  ارجاعات این مستند، عبارت "http://controller" می‎بایست با عبارت "http://360.xaas.ir" جایگزین گردد.

...
...