در این مقاله خواهید آموخت که چگونه با کمک API از زیر ساخت ابری استفاده کنیم
نکته: لطفا دقت داشته باشید در کلیه دستورات و ارجاعات این مستند، عبارت “http://controller” میبایست با عبارت “https://panel.xaas.ir” یا
“https://vip.xaas.ir” یا “https://edge.xaas.ir”
(متناسب با آدرس داشبورد ابری سرویس خود ) جایگزین گردد.
[tie_index]اجزای سامانههای مبتنی بر api[/tie_index]
اجزای سامانههای مبتنی بر api
به طور کلی در یک سامانه مبتنی بر API سه مولفه وجود دارد:
سرور
سرویسی است که مسئولیت دریافت درخواستهای API و ارسال آنها به نقطه نهایی را در بر دارد. این سرور نزد XaaS قرار دارد و آمادگی لازم برای دریافت درخواستهای API را داراست.
client
نرم افزاری است که برای ارسال درخواست API از آن استفاده میشود. clientهای متفاوتی تحت سیستم عاملهای مختلف در فضای اینترنت وجود دارد که مشتریان XaaS میتوانند از آنها بهره ببرند.
به عنوان نمونه میتوان برای سیستم عامل ویندوز از نرم افزار chrom extension) postman) و برای توزیعهای مختلف سیستم عامل لینوکس از command line) curl) استفاده نمود.
در این راهنما از curl استفاده شده است.
user
هویتی است نزد سرور از پیش تعیین شده. بنابراین میتواند به سرور دسترسی داشته باشد و درخواستهای خود را از طریق client ارسال نماید. هر user برای این که بتواند به سرور اتصال پیدا کند،
میبایست خود را به سرور معرفی نماید.
در سامانههای مبتنی بر API به این عمل دریافت توکن میگویند.
در حقیقت توکن مجوز عبوری موقتی است که پس از احراز هویت به user داده میشود تا به وسیله آن بتواند درخواستهای خود را ارسال نماید.
در ادامه ابتدا به فرایند دریافت توکن و سپس به فرآیندهای ارسال درخواست خواهیم پرداخت.
[tie_index]فرآیند ارسال درخواستها[/tie_index]
فرآیند ارسال درخواستها
۱- دریافت توکن
برای دریافت توکن می بایست مقادیر زیر را به متغیر های مورد نظر اختصاص دهیم:
= http://360.xaas.ir:5000 = your_username = your_password = your_project name
و سپس از دستور زیر استفاده نماییم:
$ curl -s -XPOST /v2.0/tokens -H "Content-type: application/json" -d '{"auth":{"tenantName": "", "passwordCredentials": {"username": "", "password": ""}}}'
نمونه ای از خروجی در شکل زیر مشخص گردیده است.
همانطور که مشاهده میکنید در خروجی دستور id توکن دریافتی نمایش داده میشود و از این پس میبایست از این id در ارسال درخواستها استفاده نماییم:
= this_id برای خوانایی بیشتر میتوانید خروجی دستور بالا را در دستور python -m json.tool یا Pipe ،jq کنید. $ curl -s -XPOST /v2.0/tokens -H "Content-type: application/json" -d '{"auth":{"tenantName": "", "passwordCredentials": {"username": "", "password": ""}}}' | python -m json.tool or $ curl -s -XPOST /v2.0/tokens -H "Content-type: application/json" -d '{"auth":{"tenantName": "", "passwordCredentials": {"username": "", "password": ""}}}' | jq
۲- ارسال درخواست
برای ارسال درخواستها به آدرس سرور API احتیاج داریم:
= http://360.xaas.ir:8774
همچنین از توکن گرفته شده در مرحله قبل، به منظور احراز هویت استفاده میکنیم.
[tie_index]درخواستهای مرتبط با سرویس nova[/tie_index]
درخواستهای مرتبط با سرویس nova
گرفتن لیست ماشین ها
$ curl -s -XGET /v2//servers -H "X-Auth-Token: "
مشاهده جزئیات در مورد ماشین ها
$ curl -s -XGET /v2//servers/detailed -H "X-Auth-Token: "
مشاهده اطلاعات یک ماشین مشخص
$ curl -s -XGET /v2//servers/ -H "X-Auth-Token: "
گزارش گیری از سرورها بر اساس مشخصات آنها (به عنوان مثال تمام سرور هایی که در وضعیت active هستند)
$ curl -s -XGET /v2//servers/detailed?status=active -H "X-Auth-Token: "
متوقف کردن ماشین مجازی به صورت موقت
$ curl -s -XPOST /v2//servers//action -H "X-Auth-Token: " -H "Content-Type: application/json" -d '{"pause": null}'
خارج کردن ماشین مجازی از حالت توقف
$ curl -s -XPOST /v2//servers//action -H "X-Auth-Token: " -H "Content-Type: application/json" -d '{"unpause": null}'
متوقف کردن کامل ماشین مجازی
$ curl -s -XPOST /v2//servers//action -H "X-Auth-Token: " -H "Content-Type: application/json" -d '{"os-stop": null}'
روشن کردن ماشین مجازی
curl -s -XPOST /v2//servers//action -H "X-Auth-Token: " -H "Content-Type: application/json" -d '{"os-start": null}'
تغییر اندازه ماشین مجازی
۱- دریافت id از flavor مورد نیاز توسط گرفتن لیست flavorها:
$ curl -s -XGET /v2//flavors -H "X-Auth-Token: "
۲- دریافت تصدیق امکان تغییر سایز ماشین مجازی به flavor انتخاب شده (به عنوان مثال هنگامی که flavor انتخاب شده کوچکتر از flavor کنونی باشد، تغییر اندازه ممکن نخواهد بود)
$ curl -s -XPOST /v2//servers//action -H "X-Auth-Token: " -H "Content-Type: application/json" -d '{"resize": {"flavorRef": ""}}'
۳- اعمال تغییر اندازه
$ curl -s -XPOST /v2///action -H "X-Auth-Token: " -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” جایگزین گردد.