Ansible چیست و آشنایی با مزایا و کاربردهای انسیبل
اگر درحوزه IT فعال هستید، احتمالا این روزها واژه Ansible زیاد به گوشتانخورده است. CIO آن را “محبوب” DevOps برای اتوماسیون نرم افزار مینامد و اضافه میکند که هیچگاه انتخاب اول اتوماسیون ( automation ) نرم افزار در بسیاری از سازمانها نبوده است. ولی بیش از 1000شرکت را که از Ansible استفاده میکنند. شامل: Intel Evernote ،Hootsuite و Ansib1 لیست کرده و نام میبرد. le blog نیز میگوید اپل و ناسا نیز آن را پذیرفتهاند. بنابراین با وجود این میزان اهمیت، در اینجا به معرفی آن و این که Ansible چیست ؟ چرا به این سرعت محبوبیت پیدا کرده؟ کاربرد Ansible چیست ؟ و همچنین در مورد اینکه چرا Ansible و Docker به خوبی با هم کار میکنند و نحوه استفاده از نرم افزار انسیبل در Docker خواهیم پرداخت. با ما همراه باشید.
همچنین نگاهی هم به دلیل قدرتمندبودن ترکیب Ansible-Docker میاندازیم. اما بیایید ابتدا با جواب سوال انسیبل چیست ؟ شروع کنیم.
Ansible چیست ؟
ابزار ی اتوماتیک یا پلتفرمی منبع باز است، که برای کارهای IT مانند: مدیریت پیکربندی ، استقرار برنامهها، تنظیم درون سرویس و تامین آن استفاده میشود. اتوماسیون این روزها به امری بسیار مهم قلمداد میشود و محیطهایIT نیزبسیار پیچیده هستند و معمولاً باید خیلی سریع مقیاسبندی شوند تا مدیران سیستم و توسعهدهندگان در صورتنیاز به انجام کارها به صورت دستی، بتوانند این روند را ادامه دهند.
اتوماسیون ( automation ) نه تنها باعث سادهتر شدن کارهای پیچیده میشود، بلکه مشاغل توسعهدهندگان را قابل کنترلتر میسازد و علاوه بر این به آنها امکان میدهد تا توجه خود را به سایر کارهایی که به یک سازمان ارزش میبخشند، منعطف کنند. به عبارت دیگر، باعث آزادتر شدن زمان و افزایش کارایی میشود. همانطور که در بالا ذکر شد، Ansible به سرعت در حال بالا رفتن در لیست ابزار های اتوماسیون دنیاست. حال بیایید برخی از دلایل این محبوبیت و مزایای آن را بررسی کنیم.
علاوه بر تمام اینها، نرم افزار انسیبل خود دارای ابزار های متعدد و بیشماری است که شما را در راه رسیدن به اهدافتان یاری مینماید. اگر میخواهید با ابزار های انسیبل بیشتر اشنا شوید، وبلاگ ابر اراز را از دست ندهید.
دلایل استفاده از ansible چیست ؟
ابزارهای دیگری هم همانند Ansible به عنوان مثال Puppet و Chef وجود دارند. Agentless بوده و نصب به نیاز Agent بر روی سیستم و یا دیوایس نیست و تنها از پروتکل SSH برای ارتباط و مدیریت آنها استفاده مینماید اما در Puppet و Chef نیاز به نصب Agent هست.
انسیبل بر پایه زبان پایتون ساخته شده و از فرمت YAML که یک زبان پیکربندی ساده است، استفاده و یادگیری آن را آسان میکند. اما در puppet و Chef از زبان Ruby استفاده شده است. برای مدیریت لینوکس ( linux ) نیاز به python و برای مدیریت ویندوز هم نیاز به powershell دارد و برای ارتباط و مدیریت هم از ssh استفاده می نماید.
مزایای Ansible چیست ؟
در ادامهی آموزش ansible ، قد داریم تا مزایای آن را به طور کامل برای شما شرح دهیم:
- رایگان بودن: انسیبل ابزار ی منبع باز است.
- سادهبودن راهاندازی و استفاده: برای استفاده از پلیبوکهای انسیبل نیاز به مهارت خاصی در برنامه نویسی نیست.
- قدرتمند بودن: انسیبل به شما امکان میدهد تا حتی از ورک فلوهای بسیار پیچیده IT نیز الگو بگیرید.
- انعطاف پذیری: میتوانید همهی محیط برنامه را بدون در نظر گرفتن محل استقرار آن تنظیم کنید. همچنین بر اساس نیاز خود آن را سفارشیسازی کنید.
- Agentless بودن: با استفاده از انسیبل نیازی به نصب هیچ نرم افزار یا پورت فایروال دیگری روی سیستمهای کلاینتی که می خواهید به صورت خودکا دربیاورید وجود ندارد. همچنین لازم نیست یک ساختار مدیریت جداگانه نیز تنظیم کنید.
- کارآمدی: از آنجا که نیازی به نصب هیچ نرم افزار اضافی نیست، فضای بیشتری برای منابع برنامه در سرور شما وجود خواهد داشت.
ویژگیها و قابلیتهای Ansible
در مرحله بعدی در مسیر درک اینکه انسیبل چیست ، می خواهیم به سراغ ویژگیها و قابلیتهای آن برویم.
1. مدیریت پیکربندی Ansible چیست ؟
نرم افزار انسیبل برای مدیریت تنظیمات، بسیار ساده، قابل اعتماد و سازگار طراحی شده است. اگر مدتی است که درحوزهIT فعالیت دارید، میتوانید خیلی سریعتر با آن ارتباط برقرار کرده و آن را به کار گیرید. پیکربندیهای انسیبل ، دیسکریپشن یا توصیف سادهی دادههای زیرساختها است، که هم توسط انسانها قابل خواندن و هم توسط ماشینها قابل تجزیه می باشد. اگر میخواهید با آموزش انسیبل (Ansible) بیشتر آشنا شوید، به وب سایت ما سر بزنید.
تمام آنچه برای شروع مدیریت سیستم نیاز دارید، رمز عبور یا کلید SSH (Secure Socket Shell، یک پروتکل شبکه) است. به این مثال که برای نشان دادن چگونگی آسان کردن مدیریت پیکربندی توسط آن است، دقت کنید:
اگر میخواهید یک نسخه بهروز شده از نوع خاصی از نرم افزار را روی همه ماشینهای سازمانی خود نصب کنید، تمام کاری که باید انجام دهید این است که تمام آدرسهای IP نودها (و ریموت هاست) را بنویسید، یک پلیبوک (playbook) انسیبل بنویسید، تا بتوانید آن را در همه نودها نصب کنید، سپس playbook را از دستگاه کنترل خود اجرا کنید.
2. استقرار برنامه
نرم افزار انسیبل به شما امکان میدهد به سرعت و با آسانی برنامههای چندرسانهای را مستقر کنید. علاوه بر این، برای اتوماسیون سیستمهای خود نیازی به نوشتن کد سفارشی ندارید. شما وظایفی را که باید با نوشتن یک playbook انجام شود را لیست میکنید و انسیبل میفهمد، که چگونه شما سیستمهای خود را به وضعیتی که میخواهید در آن قرار بگیرند، برسانید. به عبارت دیگر، شما نیازی به پیکربندی برنامهها روی هر دستگاه به صورت دستی نخواهید داشت. هنگامی که از سیستم کنترل خود یک playbook را اجرا میکنید، Ansible از SSH برای برقراری ارتباط با میزبانهای از راه دور یا remote hosts و اجرای همه کامندها (یا task ها) استفاده میکند.
3.منظور از ارکستراسیون در Ansible چیست ؟
همانطور که از نامش پیداست، ارکستراسیون یا orchestration که در اصطلاح فارسی به آن هماهنگی نیز میگوییم، شامل آوردن عناصر مختلف در یک عملیات بسیار زیبا و حرفه ای، شبیه روشی که یک رهبر موسیقی نتهای تولید شده توسط همه سازهای مختلف را به یک کار منسجم هنری در می آورد است.
به عنوان مثال، با استقرار برنامه شما نه تنها سرویسهای front-end و backend، بلکه پایگاههای داده، شبکه ها، ذخیره سازی و غیره را نیز میبایست مدیریت کنید. همچنین باید از این که همه وظایف به ترتیب مناسب انجام میشوند اطمینان حاصل کنید. نرم افزار انسیبل از گردش کار خودکار (automated workflows)، تامین (provisioning) و سایر موارد استفاده میکند تا کارهای مربوط به تنظیمات را آسان کند تا در نتیجه هنگامی که زیرساخت خود را با استفاده از playbook های انسیبل و به لطف قابلیت حمل (portability) آن، در هر کجا که بخواهید بتوانید از همان ارکستراسیون استفاده کنید.
4. امنیت و انطباق
همانند استقرار برنامهها، سیاستهای امنیتی وب سایت نیز (مانند قوانین فایروال یا قفل کردن کاربران) میتوانند همراه با سایر فرایندهای خودکار اجرا شوند. اگر جزئیات امنیتی را بر روی ماشین کنترل پیکربندی کرده و playbook مربوطه را اجرا کنید، همه remote host ها به طور خودکار با آن جزئیات به روز می شوند.
این بدان معناست که برای رعایت امنیت، نیازی به کنترل هر دستگاه به صورت دستی و به طور مستمر نیست. و برای امنیت بیشتر، شناسه کاربری و گذرواژه یک ادمین در متن ساده روی آن قابل بازیابی نیست.
5. ارائه ی ابر
اولین مرحله در اتوماسیون چرخه عمر برنامههایتان، خودکار کردن تأمین زیرساختهای شما است. با نرم افزار انسیبلمیتوانید سیستمعامل های ابری، میزبانهای مجازی، دستگاههای شبکه و سرور های bare-metal را تهیه کنید.
معماری Ansible چیست
قطعات تشکیلدهندهی Ansible ها شامل موارد زیر میشوند، که جداگانه به هرکدام از آنها میپردازیم:
1. ماژول ها
منظور از ماژولها در Ansible چیست ؟ ماژولها مانند برنامههای کوچکی هستند که انسیبل از یک ماشین کنترل به سمت تمام نود ها یا remote hosts هل میدهد. ماژولها با استفاده از playbook ها اجرا میشوند و مواردی مانند سرویسها، پکیجها و فایلها را کنترل میکنند.
انسیبل تمام ماژولها را برای نصب به روزرسانیها یا هر task مورد نیاز اجرا میکند و پس از پایان، آنها را حذف میکند. انسیبل همچنین بیش از 450 ماژول برای کارهای روزمره نیز فراهم می کند.
2.منظور از پلاگین ها درAnsible چیست
همانطور که احتمالاً در گذشته از روی سایر ابزار ها و سیستمعاملها فهمیدهاید، افزونهها کدهای اضافی هستند، که باعث افزایش قابلیتها میشوند. نرم افزار انسیبل خود تعدادی افزونه دارد، با این حال شما نیزمیتوانید آنها را بنویسید. پلاگینهایAction ،Cacheو Callback سه نمونه از این افزونهها هستند.
3. موجودی ها یا Inventories
تمام دستگاههایی که با Ansible استفاده میکنید (ماشین کنترل و نودها) در یک فایل ساده به همراه آدرس IP، پایگاهداده، سرور و غیره لیست شدهاند. پس از ثبت موجودی میتوانید متغیرها را با استفاده از یک فایل متنی ساده به هر یک از میزبانها اختصاص دهید. به علاوه قادر خواهید بود موجودی را از منابعی مانند EC2 (Amazon Elastic Compute Cloud) تهیه کنید.
4. منظور از Playbook ها در Ansible چیست
ansible playbook که معنی لغویشان کتابهای بازی میشود، مانند کتابچههای راهنمای برای کارها و وظایف عمل میکنند. در واقع آنها فایلهای سادهای هستند که با YAML، مخفف YA ML Ain’t Markup Language که یک زبان مجموعهسازی شده ی داده های قابل خواندن توسط انسان است، نوشته شدهاند.
ansible playbook چیست ؟ Playbook ها موثرترین عامل در محبوبیت آن هستند؛ چرا که آنها وظایفی را برای این که سریعا انجام شوند تعریف می کنند؛ بدون اين كه کاربر نياز به دانستن يا به خاطر سپردن ترکیب خاصی داشته باشد.
آنها نه تنها میتوانند پیکربندیها را مشخص و اعلام کنند، بلکه مراحل هر کاری که به صورت دستی انجام می شود را تنظیم می کنند و کارها را همزمان یا در زمانهای مختلف اجرا میکنند. هرPlaybook از یک یا چند play تشکیل شده است و هدف آن، این است که گروهی از میزبانها را به نقشهای کاملاً مشخصی که توسط تسکها ارائه شدهاند، ترسیم کند. اگر میخواهید در مورد پلی بوک انسیبل اطلاعات بیشتری کسب کنید، از مقالهی ما با نام پلی بوک انسیبل دیدن کنید.
5. API ها
API ها یا application programming interfaces (رابطهای برنامه نویسی برنامه) مختلفی در دسترس هستند، بنابراین میتوانید نوع های مختلف اتصال Ansible (که این به معنای چیزی بیشتر از استفاده از SSH برای انجام انتقالات است) callback ها و دیگر چیزها را گسترش دهید.
چرا سرور های ابری ابرآراز؟
اگر شما نیز در کسب و کارتان نیاز به یک زیرساخت ابری قابل اطمینان دارید، ما به شما ابر آراز را معرفی می کنیم. با استفاده از پلتفرم ابری آراز می توانید به هر میزان از منابع که نیاز دارید، به صورت مقیاسپذیر دسترسی پیدا کنید و با رشد و گسترش تجارتتان، این منابع را افزایش دهید و خیالتان از بابت هزینه راحت باشد؛ چراکه محاسبه هزینه به صورت پرداخت به میزان کارکرد است.
همچنین در مواقعی که به کمک فنی نیاز داشتید، از تیم تخصصی فنی ابر آراز به صورت رایگان کمک بگیرید. در این صورت دیگر نیاز به کنترل همه ی جزییات نخواهید داشت و کارهایتان به صورت اتوماتیک و به راحتی انجام می شوند.