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

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

 

1. نصب composer:

 

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

 

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

 

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

 

php composer.phar require rackspace/php-opencloud

 

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

 

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

 

php composer.phar install

 

3. كد نويسي:

 

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

خط زير را به اول كد php خود اضافه كنيد:

 

require 'vendor/autoload.php';

 

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

 

3.1 احراز هويت:

 

require 'vendor/autoload.php';

$openstack = new OpenStackOpenStack([
'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}'
]
]
]);

 

3.2 اضافه كردن كاربر:

كد اضافه كردن كاربر به صورت زير خواهد بود:

 

require 'vendor/autoload.php';

$openstack = new OpenStackOpenStack([
'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}'
]);

 

3.3 ايجاد سرور:

 

require 'vendor/autoload.php';

$openstack = new OpenStackOpenStack([
'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 OpenStackComputev2ModelsServer $server */
$server = $compute->createServer($options);

 

براي كسب اطلاعات در مورد خدمات ارائه شده توسط نوين هاست ، از جمله ثبت نام دامنه ، خريد هاست ، سرور مجازي در لوكيشن هاي مختلف ، سرور اختصاصي ، هاست ابري و سرور مجازي ايران ، به www.novinhost.org مراجعه كنيد يا با شماره 66015891 تماس بگيريد تا با يكي از اعضاي بخش فروش ما صحبت كنيد. پيروز و سر بلند باشيد.

https://www.novinhost.org/blog/730