آشنایی با OPENSTACK PHP API

اوپن استک در حال تبدیل شدن به رایج ترین پلتفرم پردازش ابری است و به نظر می آید به زودی جای روش های قدیمی مجازی سازی را خواهد گرفت, هرچند زبان پایتون و 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 مراجعه کنید یا با شماره ۶۶۰۱۵۸۹۱ تماس بگیرید تا با یکی از اعضای بخش فروش ما صحبت کنید. پیروز و سر بلند باشید.

نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *