آشنایی با OPENSTACK PHP API

زمان مطالعه: 3 دقیقه
انتشار :
۱۳۹۷-۰۸-۲۳

اوپن استک در حال تبدیل شدن به رایج ترین پلتفرم پردازش ابری است و به نظر می آید به زودی جای روش های قدیمی مجازی سازی را خواهد گرفت, هرچند زبان پایتون و Django در حال رشد است, اما هنوز زبان php بازار وب را در دست دارد, برای ارتباط فرانت اند با بستر ابری در وبسایت های تحت php و حتی وردپرس, میتوانید از OpenStack PHP API نوشته شده توسط RackSpace استفاده کنید.

برای دانلود و نصب api توصیه شده از composer استفاده کنید, کامپوزر به شما کمک میکند کتابخانه های مورد نیاز را گرد هم بیاورید.

 

۱. نصب composer:

 

curl -sS https://getcomposer.org/installer | php

 

این دستور را در پوشه اصلی وبسایت مورد نظر انجام دهید.

 

۲.نصب OpenStack PHP API با composer:

 

php composer.phar require rackspace/php-opencloud

 

با اجرای این دستور تمام پیش نیاز ها و کتابخانه های api php اوپن استک نصب میشود.

 

اگر repository این api را دستی یا با git دانلود کردید, از دستور زیر برای نصب استفاده کنید:

 

php composer.phar install

 

۳. کد نویسی:

 

حالا شما OpenStack PHP API را نصب کرده اید و آماده کد نویسی برای فرانت اند اوپن استک هستید.

خط زیر را به اول کد php خود اضافه کنید:

 

require 'vendor/autoload.php';

 

ایجاد token در پروژه های اوپن استک, به مثابه چاپ Hello World در زبان های برنامه نویس است, چرا که احراز هویت اوپن استک اساسی ترین سرویس این پلتفرم است, و منطقی ترین روش احراز هویت, استفاده از token ها است که میتوانند برای زمان مشخص, و کاربر مشخص ایجاد شوند و سایر سرویس ها برای کسب دسترسی از این token استفاده کنند.

 

۳.۱ احراز هویت:

 

<?php

require 'vendor/autoload.php';

$openstack = new OpenStack\OpenStack([
'authUrl' => '{authUrl}',
'region' => '{region}',
'user' => [
'id' => '{userId}',
'password' => '{password}'
],
'scope' => [
'project' => ['id' => '{projectId}']
]
]);

 

در این کد مشخصات احراز هویت اوپن استک را وارد کردیم به صورت اختیاری scope یا حوزه تمرکز احراز هویت را بر روی یک پروژه خاص تعریف کردیم.

 

برای بدست اوردن userid میتوانید در خط فرمان اوپن استک دستور openstack user list را وارد کنید.

حالا کد زیر را جهت ایجاد token اضافه کنید:

 

$identity = $openstack->identityV3();

// Since usernames will not be unique across an entire OpenStack installation,
// when authenticating with them you must also provide your domain ID. You do
// not have to do this if you authenticate with a user ID.

$token = $identity->generateToken([
'user' => [
'name' => '{username}',
'password' => '{password}',
'domain' => [
'id' => '{domainId}'
]
]
]);

 

۳.۲ اضافه کردن کاربر:

کد اضافه کردن کاربر به صورت زیر خواهد بود:

 

<?php

require 'vendor/autoload.php';

$openstack = new OpenStack\OpenStack([
'authUrl' => '{authUrl}',
'region' => '{region}',
'user' => [
'id' => '{userId}',
'password' => '{password}'
],
'scope' => ['project' => ['id' => '{projectId}']]
]);

$identity = $openstack->identityV3();

$user = $identity->createUser([
'defaultProjectId' => '{defaultProjectId}',
'description' => '{description}',
'domainId' => '{domainId}',
'email' => '{email}',
'enabled' => true,
'name' => '{name}',
'password' => '{userPass}'
]);

 

۳.۳ ایجاد سرور:

 

<?php

require 'vendor/autoload.php';

$openstack = new OpenStack\OpenStack([
'authUrl' => '{authUrl}',
'region' => '{region}',
'user' => [
'id' => '{userId}',
'password' => '{password}'
],
'scope' => ['project' => ['id' => '{projectId}']]
]);

$compute = $openstack->computeV2(['region' => '{region}']);

$options = [
// Required
'name' => '{serverName}',
'imageId' => '{imageId}',
'flavorId' => '{flavorId}',

// Required if multiple network is defined
'networks' => [
['uuid' => '{networkId}']
],

// Optional
'metadata' => ['foo' => 'bar'],
'userData' => base64_encode('echo "Hello World. The time is now $(date -R)!" | tee /root/output.txt')
];

// Create the server
/**@var OpenStack\Compute\v2\Models\Server $server */
$server = $compute->createServer($options);

 

برای کسب اطلاعات در مورد خدمات ارائه شده توسط نوین هاست ، از جمله ثبت نام دامنه ، خرید هاست ، سرور مجازی در لوکیشن های مختلف ، سرور اختصاصی ، هاست ابری و سرور مجازی ایران ، به www.novinhost.org مراجعه کنید یا با شماره ۶۶۰۱۵۸۹۱ تماس بگیرید تا با یکی از اعضای بخش فروش ما صحبت کنید. پیروز و سر بلند باشید.

بازخوردها
مقالات مرتبط
گیم فیشینگ چیست؟
گیمیفیکیشن چیست و چه تاثیری بر کسب و کارها دارد؟
یکی از نوین‌ترین روش‌ها برای برقراری ارتباط با مشتریان و یا مخاطبان، استفاده از روش‌های گیمیفیکیشن Gamification است.…
زمان مطالعه: 5 دقیقه
انواع سیستم عامل چیست ؟
سیستم عامل چیست؟ (معرفی انواع سیستم عامل)
بدون شک تمامی افرادی که با سیستم‌ها و تجهیزات کامپیوتری در ارتباط هستند، نام سیستم‌عامل را شنیدند و…
زمان مطالعه: 4 دقیقه