ansible چیست و چگونه کار میکند؟ اگه توی حوزه IT کار میکنین حتما واژه Ansible رو زیاد شنیدین. حالا اگه نمیدونین این واژه یعنی چی، توی این مطلب از بلاگ کندو همراه ما باشین تا به شما بگیم انسیبل چیست و اطلاعاتی رو توی این مبحث در اختیارتون بذاریم.
مفهوم ansible چیست؟
اول از هم میخوایم ببینیم ansible چیست. ansible یه ابزار اتوماتیک یا یه پلتفرم منبع بازه که توی حوزه آی تی و برای کارهایی مثل قرار گرفتن برنامهها، مدیریت پیکربندی، تنظیم درون سرویس و تامین اون مورد استفاده قرار میگیره. امروزه محیطهای IT خیلی پیچیده شدن و باید به سرعت مقیاسبندی بشن تا توسعهدهندهها و مدیران سیستمها بتونن کارها رو به صورت دستی هم انجام بدن.
به کمک اتوماسیون کارهای پیچیده ساده میشن و امکان کنترل بهتر مشاغل توسعهدهندهها هم فراهم میشه. به عبارت دیگه به کمک اتوماسیونها زمان و کارایی افزایش پیدا میکنن. Ansible هم یکی از اعضای لیست ابزارهای اتوماسیون دنیاست. خود انسیبل هم ابزارهای زیادی داره که به شما کمک میکنه به اهدافتون برسین.
مهمترین دلایل استفاده از ابزار ansible چیست؟
حالا که فهمیدین ansible چیست باید دلایل استفاده از اون رو بهتون بگیم.
- ابزارهایی مثل Puppet و Chef هم مثل Ansible هستن اما یه سری تفاوتها بینشون وجود داره. انسیبل یه ابزار Agentless هست و نیاز به نصب Agent روی دیوایس یا سیستم نداره. این ابزار برای ارتباط و مدیریت اونا از پروتکل SSH استفاده میکنه. اما برای ابزارهای Puppet و Chef باید Agent رو نصب کنین.
- ساخت انسیبل بر پایه زبان پایتون انجام شده و از فرمت YAML استفاده میکنه. این فرمت خیلی ساده هست و به راحتی میشه اونو یاد گرفت. اما برای ساخت puppet و Chef از زبان Ruby کمک گرفته شده.
مزایای مهم ansible چیست؟
تا اینجا تقریبا فهمیدین که ansible چیست. حالا قصد داریم توی این قسمت مزایای اون رو بررسی کنیم.
- رایگان بودن
انسیبل یه ابزار منبع بازه.
- راهاندازی و استفاده آسان
برای اینکه از پلیبوکهای انسیبل استفاده کنین به مهارت خاصی در برنامهنویسی نیاز ندارین.
- قدرتمند بودن
انسیبل امکان الگو گرفتن از ورک فلوهای بسیار پیچیده IT رو هم برای شما فراهم میکنه.
- انعطافپذیر بودن
شما میتونین محیط برنامه رو هرطور که میخواین تنظیم کنین و یا حتی طبق نیازتون اون رو سفارشیسازی کنین.
- Agentless بودن
اگه از انسیبل استفاده کنین نیاز نیست که هیچ نرم افزار یا پورت فایروال دیگهای رو روی سیستم نصب کنین. همچنین نیاز به تنظیم یک ساختار مدیریت جداگانه هم نیست.
- کارآمدی
همونطور که توی مزیت قبل گفتیم به خاطر اینکه نیاز به نصب نرمافزار اضافی نیست، توی سرور فضای بیشتری برای منابع برنامه در اختیار شماست.
برای شرکت در دوره Ansible Configuration Management کندو کلیک کنید.
انواع ویژگیها و قابلیتهایansible چیست؟
توی این قسمت از مطلب ansible چیست میخوایم ویژگیها و قابلیتهای اونو بررسی کنیم.
1 – مفهوم مدیریت پیکربندی ansible چیست؟
نرمافزار انسیبل طوری طراحی شده که تنظیمات رو بتونین به صورت قابل اعتماد و ساده انجام بدین. شما میتونین به سرعت با این برنامه ارتباط برقرار کنین و ازش استفاده کنین. در پیکربندیهای انسیبل زیرساختها به صورت ساده توصیف شدن تا هم برای ماشینها قابل فهم باشن و هم برای انسان. شما برای شروع مدیریت سیستم با انسیبل فقط به یک رمز عبور یا کلید SSHنیاز دارین. (Secure Socket Shell)
2 – نحوه استقرار کردن برنامه
به کمک نرمافزار انسیبل میتونین خیلی آسون و با سرعت برنامههای چندرسانهای رو مستقر کنین. همچنین نیاز نیست که برای اتوماسیون سیستمهای خود کد سفارشی بنویسین. شما وظایفی رو لیست میکنین که باید با نوشتن یک playbook انجام بشه. سپس انسیبل میفهمه که باید چیکار کنه. به عبارت دیگه نیاز نیست که برنامهها رو به صورت دستی روی هر دستگاه پیکربندی کنین. زمانی که یک playbook رو از سیستم کنترل خود اجرا میکنین، Ansible از SSH استفاده میکنه تا با میزبانهای از راه دور ارتباط برقرار کنه و همه کامندها رو اجرا کنه.
3 – ارکستراسیون در ansible به چه معناست؟
میخواین بدونین منظور از ارکستراسیون ansible چیست؟ این کلمه همونطور که از اسمش مشخصه در زبان فارسی یعنی هماهنگی و آوردن چندین عنصر توی یک عملیات حرفهای.
برای مثال بعد از استقرار برنامه باید همه قسمتهای شبکه ها، پایگاههای داده، ذخیره سازی، سرویسهای front-end و backend و… رو مدیریت کنین. همچنین باید مطمئن بشین که همه وظایف دارن به ترتیب و به درستی انجام میشن. نرمافزار انسیبل با استفاده از تامین، گردش کار خودکار و غیره موجب آسون شدن کارهای مربوط به تنظیمات میشه. به این ترتیب شما میتونین با استفاده از playbook های انسیبل در زیرساخت شبکه (آموزش شبکه) و به کمک قابلیت حمل اون، از ارکستراسیون بهره ببرید.
4 – امنیت و انطباق در ansible چیست؟
سیاستهای امنیتی وب سایت مثل قفل کردن کاربران و قوانین فایروال هم میتونن مثل استقرار برنامهها با بقیه فرآیندهای خودکار اجرا بشن. اگه روی ماشین کنترل جزئیات امنیتی رو پیکربندی کنین و playbook اون رو اجرا کنین، به طور اتوماتیک همه remote host ها با اون جزییات روبرو میشن. بنابراین برای اینکه امنیت رعایت بشه نیاز نیست که هر دستگاه به صورت دستی و مستمر کنترل بشه و برای امنیت بیشتر امکان بازیابی شناسه کاربری و گذرواژه یک ادمین در متن ساده وجود نداره.
5- ارائه ابر به چه معناست؟
خودکار کردن تأمین زیرساختها، اولین مرحله در اتوماسیون چرخه عمر برنامههای شما هست. شما میتونین به کمک نرمافزار انسیبل دستگاههای شبکه (آموزش میکروتیک)، میزبانهای مجازی، سیستمعاملهای ابری، سرورهای bare-metal رو تهیه کنین.
مفهوم معماری ansible چیست؟
توی این قسمت از مطلب ansible چیست کندو میخوایم قطعات تشکیلدهنده Ansible رو بهتون معرفی کنیم.
1 – ماژول
ماژولها مثل برنامههای کوچکی هستن که انسیبل اونا رو از یک ماشین کنترل به سوی تمام نودها هل میده. اجرا شدن ماژولها به وسیله playbook ها انجام میشه تا فایلها، پکیجها و سرویسها رو کنترل کنن. انسیبل همه ماژولها رو اجرا میکنه تا نصب و بروزرسانی بشن و یا هر وظیفهای دارن انجام بدن. در نهایت هم اونا رو حذف میکنه. Ansible بیشتر از 450 ماژول برای کارهای روزمره در اختیار شما میذاره.
2 – مفهوم پلاگین در ansible چیست؟
افزونهها یک سری کدهایی هستن که قابلیتها رو افزایش میدن. نرمافزار انسیبل هم تعدادی افزونه داره اما شما میتونین اونارو بنویسین. افزونههای Callback، Action و Cache نمونهای از این پلاگینها هستن.
3 – موجودیها یا inventories به چه معنا هستن؟
همه دستگاههایی که داخلشون از Ansible استفاده میکنین، به صورت لیستی توی یک فایل ساده با اطلاعاتی همچون سرور، پایگاهداده، آدرس IP و غیره قرار دارن. بعد از اینکه موجودی ثبت شد میتونین با استفاده از یک فایل متنی ساده متغیرها را به هر یک از میزبانها اختصاص بدین. همچنین میتونین از منابعی مثل EC2 (Amazon Elastic Compute Cloud) موجودی رو تهیه کنین.
4 – playbook در انسیبل یعنی چه؟
Playbook مثل یک کتابچه راهنما برای وظایف هست. در اصل پلی بوک یک فایل ساده هست که YAML نوشته شده. این زبان یک زبان مجموعهسازی شده با دادههای قابل خواندن هست.
حالا دقیقا مفهوم playbook توی ansible چیست؟ موثرترین عامل در محبوبیت انسیبل Playbook هست چراکه اینا وظایفی رو تعریف میکنن و دیگه نیاز نیست کاربر ترکیب خاصی رو به خاطر بسپره.
پلی بوک علاوه بر مشخص و اعلام کردن پیکربندیها، مراحل کارهایی که باید دستی انجام بشن رو هم تنظیم میکنه و کارها رو در زمانهای مختلف یا همزمان انجام میده. هر پلی بوک ترکیبی از چند play هست که هدفشون ترسیم گروهی از میزبانها به نقشهاییه که طبق تسکها ارائه شدن.
5. api ها به چه معنا هستن؟
API مخفف عبارت application programming interfaces و به معنای رابطهای برنامه نویسی برنامه هست. این رابطها متنوع هستن و شما میتونین callback، نوعهای مختلف اتصال Ansible و چیزهای دیگه رو گسترش بدین.
کلام آخر
ما توی این مطلب از بلاگ آموزشگاه مهندسی کندو سعی کردیم به شما بگیم که ansible چیست و ویژگیها، مزایا و معماری اون رو بررسی کنیم. اگه شما هم برای کسبوکار خودتون به یک زیرساخت ابری قابل اطمینان نیاز دارین، میتونین روی تیم کندو حساب کنین. کارشناسهای ما به شما مشاوره میدن تا بتونین بهترین تصمیم رو برای کسبوکارتون بگیرین و اونو گسترش بدین. برای شرکت در دوره آموزش devops کندو، از این قسمت اقدام کنید.