سرور را juju یی کنید .
توسط royaflash دذ ۲۲ اسف, ۱۳۹۱ دذ ۰۴:۳۳ بعد از ظهر | دسته‌بندی شده در خط فرمان, شبکه, گنو/لینوکس, مجازی سازی | با ۰ دیدگاه |1,369 views

كاربران توزیع‌های دسكتاپی لینوكس، با APT آشنایی دارند. این نرم‌افزار كه وظیفه مهمی را به‌دوش كشیده است، بسادگی می‌تواند نصب، پیكربندی و راه‌اندازی پشته‌های پیچیده‌ای از نرم‌افزارها و سرویس‌ها را انجام دهد، اما محدودیت APT این است كه تمام این كارهای فوق‌العاده را تنها در یك سیستم انجام می‌دهد. Juju این قابلیت را گسترش می‌دهد و می‌تواند در چند ماشین نیز چنین كارهایی را انجام دهد. 

اغلب اوقات سرورهای لینوكسی برای كارهای مشابهی راه‌اندازی می‌شوند. چند ماشین فیزیكی می‌توانند پیكربندی مشابهی داشته باشند تا بتوانند با یكدیگر درون شبكه كار كنند. مثلا برای توزیع میزان بار سرور یا جلوگیری از زمان قطعی (Downtime) در زمانی كه یكی از سرورها قطع می‌شود یا بار روی آن زیاد است از چند سرور با تنظیمات مشابه استفاده می‌كنند. مدیران سیستم هم در ایجاد و رهبری چنین شبكه‌هایی استادند. هر چند انجام این كارها به شیوه سنتی نیازمند این است كه تك‌تك ماشین‌ها را جدا از هم پیكربندی كرد و… .

سال‌ها برای ساده‌كردن چنین وظیفه‌ای، ابزارهای مختلفی تولید شده است كه از میان آنها می‌توان به‌ Chef و Puppet اشاره كرد. شیوه كاركرد Juju در سرورها، درست مانند پكیج منیجرها در سیستم‌های تكی است. این ابزار برای نصب، راه‌اندازی و مدیریت بسته‌ها در چند سیستم استفاده می‌شود و روند پیكربندی را ساده می‌كند و بخصوص طوری طراحی شده است كه از رایانش ابری بهتر استفاده كند.

درست همانند دستور پخت در Chef یا مانیفست در Puppet، این سرویس نیز از فرمول‌هایی برای نوشتن وظیفه‌های مختلف استفاده می‌كند كه می‌تواند در اختیار دیگران نیز قرار داده شود تا آنها نیز روی سرور‌های خود از این سرویس‌ استفاده كنند. چیزی كه Juju را با دیگران متمایز می‌كند، همین فرمول‌هاست كه Charm نامیده می‌شود. سرویس‌های ایزوله‌ای تمام روش‌های لازم برای نصب یا پیكربندی داده‌ها را در خود قرار می‌دهد. از چارم‌های Juju می‌توان به‌روش‌های مختلفی استفاده كرد. از نوشتن اسكریپت‌های شل گرفته تا اجرای Chef به‌عنوان مسئول انجام دهنده وظایف سیستمی. همچنین بهتر است اشاره شود كه Juju می‌تواند منابع خود را مدیریت كند. این منابع می‌تواند EC2، Eucalyptus یا OpenStack باشد.

شروع به‌كار

نصب Juju در سرور ساده است و فقط باید دستور زیر را اجرا كنیم:‌

sudo apt‌ـ‌get install juju

سپس باید به سیستم بگوییم از منبع Cloud (وب‌سرویس‌های آمازون، EC2 و…) استفاده كند یا از محیط محلی (برای تست و توسعه). دستوری كه برای bootstrap استفاده می‌كنیم، برای هر سیستم متفاوت خواهد بود، اما دستور اولیه آن به‌صورت زیر است:

juju bootstrap

نخستین باری كه این دستور اجرا می‌شود، فایلی را در مسیر زیر قرار می‌دهد كه محتوای آن در ادامه آمده است:

~‌/‌.juju‌/‌environments‌/‌yaml

در این فایل نمونه، اگر از سرویس‌های وب‌ آمازون استفاده می‌كنید، باید خطوط مربوط به آن را در این فایل قرار دهید تا Juju بتواند به حساب AWS دسترسی پیدا كند. افرادی كه درگیر با تنظیمات سرور هستند بخوبی با این نوع فایل‌ها آشنایی دارند، به همین دلیل از این مرحله عبور می‌كنیم. انجام bootstrap چند دقیقه وقت می‌گیرد، اگر می‌خواهید اوضاع را بررسی كنید، دستور زیر را بزنید:

juju status

وقتی status به حالت up and running رسید، ایده خوبی است كه Session log را شروع كنیم. این كار الزامی نیست، اما حل مشكل را ساده‌تر می‌كند. از دستور زیر استفاده كنید:

juju debug‌ـ‌log

حالا بخش جالب‌تر یعنی راه‌اندازی سرویس‌ها آغاز می‌شود. برای شروع یك كار ساده را انجام می‌دهیم، نصب یك بلاگ وردپرس در تمام سرورها با تمام سرویس‌هایی كه لازم است از آنها استفاده كنیم.

این كار را با كمك چارم انجام می‌دهیم كه درحقیقت برای جزئیات نصب و راه‌اندازی سرویس‌های ‌خاص استفاده می‌شود. به دستورات زیر نگاه كنید:

juju deploy mysql

juju deploy wordpress

حالا سرویس‌ها نصب شده‌اند، اما هنوز به یكدیگر متصل نشده‌اند، برای ایجاد این ارتباط باید دستور زیر را بزنیم كه در مثال فعلی، به‌صورت زیر می‌شود:

juju add‌ـ‌relation wordpress mysql

حالا اگر وضع خود را چك كنید، چیزی مشابه شكل زیر خواهید دید:‌

۰:

agent‌ـ‌state: running

dns‌ـ‌name: localhost

instance‌ـ‌id: local

instance‌ـ‌state: running

services:

mysql:

charm: cs:precise‌/‌mysql‌ـ‌۳

relations:

db:

‌ـ‌ wordpress

units:

mysql‌/‌۰:

agent‌ـ‌state: started

machine: 2

public‌ـ‌address: 192.168.122.165

wordpress:

charm: cs:precise‌/‌wordpress‌ـ‌۳

exposed: false

relations:

db:

‌ـ‌ mysql

units:

wordpress‌/‌۰:

agent‌ـ‌state: started

machine: 1

public‌ـ‌address: 192.168.122.166

اكنون با استفاده از expose می‌توان سرویس را به وب وصل كرد تا خارج از محیط سرور بتوان به آن دست یافت:‌

juju expose wordpress

و به‌همین سادگی، نصب انجام شده است. با استفاده از آدرس‌های پابلیك و مرورگر می‌توان به صفحه پیكربندی وردپرس رسید.

اكنون اگر بلاگ وردپرسی كه داریم محبوب شد و سرور سنگین شد باید چه كار كنیم؟ در حالت سنتی، باید تنظیمات، دیتابیس و خود وردپرس را به سرورهای دیگر نیز ببریم و به‌صورت دستی تنظیمات را انجام دهیم. با كمك juju كافی است دستور زیر را بزنیم:

juju add‌ـ‌unit wordpress

این دستور یك نمونه جدید از WordPress می‌سازد، ارتباطات لازم با نمونه فعلی وردپرس را تنظیم می‌كند، در تنظیماتش متوجه می‌شود كه به یك دیتابیس خاص MySQL‌مرتبط است، پس آن را هم مرتبط می‌كند و در نتیجه با یك دستور می‌توان وردپرس را چند سروره كرد.

چارم‌ها

چارم‌ها شیوه پیاده‌سازی و یكپارچگی سرویس‌های مختلف با یكدیگر را در خود نگه می‌دارند. Juju اطلاعات لازم برای نصب و مدیریت سرویس‌ها را بر مبنای دستورات موجود در چارم‌ها انجام می‌دهد. چارم‌ها فایل‌های متنی ساده هستند. این فایل‌ها كه با پسوند Yaml ذخیره می‌شوند، اطلاعات لازم برای نصب یك سرویس را درون خود نگهداری می‌كنند.

هر چند اطلاعاتی كه در ادامه می‌آید كمی پیچیده‌ به‌نظر می‌رسد (و پیچیده هم است)؛ اما با اندكی مطالعه، هر كسی كه به‌اندازه كافی درباره سرویس مورد نظرش اطلاعات داشته باشد، می‌تواند یك چارم برای آن بنویسد.

مثلا در مورد MySQL و wordpress كه از آن در مثال خود استفاده كردیم، فایل چارم به این صورت خواهد بود:

name: mysql

summary: “A pretty popular database”

maintainer: “Juju Charmers “

provides:

db: mysql

name: wordpress

summary: “A pretty popular blog engine”

maintainer: “Juju Charmers “

provides:

url:

interface: http

requires:

db:

interface: mysql

شاید دشوارترین بخش این فایل‌ها، ارتباط سرویس‌ها با یكدیگر باشد. مثال بالا می‌تواند اندكی به درك بهتر از این رابطه كمك كند. همان‌طور كه مشاهده می‌كنید، ریزگزینه‌هایی وجود دارد كه در رابطه‌ها از آن استفاده می‌شود.

در حال حاضر، چارم‌های از پیش‌ آماده زیادی وجود دارد كه می‌توان از Ubuntu Juju Charm Browser آنها را استخراج، مشاهده و استفاده كرد. با كمك این چارم‌ها می‌توان بسادگی دیتابیس Hadoop، مدیاویكی یا سرور Minecraft راه‌اندازی كرد. برای كسب اطلاع بیشتر می‌توانید به نشانی زیر مراجعه كنید تا از چم و خم امور مرتبط با چارم‌ها اطلاعات زیادی كسب كنید:

https:‌/‌‌/‌juju.ubuntu.com‌/‌

منبع:linuxtoday

 

درباره - یاشار اسمعیل دخت هستم ۲۷ سالمه (به دنیال یافتم آنم که کیستم)به صورت ۱۰۰٪ به گنو/لینوکس مهاجرت کردم . من رو با نام royaflash میشناسید . در زمینه شبکه و امنیت شبکه فعالیت میکنم . لینوکس همیشه چیزی برای یادگیری داره و لینوکس یه فرهنگه . در صورت نیاز میتونین با آدرس ایمیل : [email protected] یا شماره تلفن : 09141100257 در ارتباط باشید . وبلاگ شخصی من (-:) درباره من

فرستادن یک دیدگاه

XHTML: شما می‌توانید از این برچسب‌ها استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>