راهکاری ساده برای مدیریت وابستگی‌های نرم‌افزاری
انسیبل (Ansible) چیست و چگونه باید از آن استفاده کنیم؟
اگر در حوزه فناوری اطلاعات و توسعه نرم‌افزارهای کاربردی به فعالیت اشتغال دارید، به احتمال زیاد نام انسیبل (Ansible) را شنیده‌اید. مدیران ارشد فناوری اطلاعات، این فناوری را گزینه مورد علاقه توسعه‌دهندگان دوآپس توصیف می‌کنند که نقش مهمی در خودکارسازی نرم‌افزارهای کاربردی دارد. به‌طوری‌که فناوری مذکور اصلی‌ترین گزینه برای خودکارسازی نرم‌افزار‌ها در بیشتر سازمان‌ها است. پژوهشی که وب‌سایت StackShare انجام داده، نشان می‌دهد بیش از صد شرکت بزرگ دنیای فناوری مثل ناسا، اینتل، Evernote، Hootsuite، Ansib1 و غیره از انسیبل استفاده می‌کنند. انسیبل چیست و چرا در زمان کوتاه به موفقیت‌های بزرگی دست پیدا کرده است؟ در این مقاله به بررسی این موضوع خواهیم پرداخت و کمی در مورد این موضوع که چرا انسیبل و داکر با هم خوب کار می‌کنند و نحوه استفاده از انسیبل در داکر را بررسی خواهیم کرد.

Ansible چیست؟

انسیبل (Ansible) یک پلتفرم خودکارسازی متن‌باز است که برای وظایف مختلف مرتبط با حوزه فناوری اطلاعات مثل مدیریت پیکربندی، استقرار برنامه‌ها، هماهنگ‌سازی درون‌سرویسی و تامین منابع استفاده می‌شود. خودکارسازی این روزها در محیط‌های فناوری اطلاعات که پیچیدگی زیادی دارند و اغلب نیازمند مقیاس‌پذیری سریع هستند به‌شدت مورد توجه قرار دارد. در چنین محیط‌هایی، اگر مدیران سیستم‌ها و توسعه‌دهندگان مجبور باشند همه کارها را به‌شکل دستی انجام دهند، هماهنگی و سازگاری میان مولفه‌ها از میان می‌رود. خودکارسازی، ضمن آن‌که انجام کارهای پیچیده را ساده‌تر می‌کند، مشغله‌های ذهنی توسعه‌دهندگان در مورد مدیریت نرم‌افزارها را کمتر می‌کند و به آن‌ها اجازه می‌دهد تا تمرکز خود را معطوف به وظایفی کنند که برای سازمان ارزش‌آفرین هستند. به بیان دقیق‌تر، ابزار خودکارسازی زمان آزاد بیشتری در اختیار توسعه‌دهندگان قرار می‌دهد و عملکرد آن‌ها را بهبود می‌بخشد. انسیبل، به‌دلیل قابلیت‌های کاربردی مختلفی که ارائه می‌کند در دنیای ابزارهای خودکارسازی به‌سرعت در حال محبوب شدن است. 

انسیبل چه مزایایی در اختیار توسعه‌دهندگان قرار می‌دهد؟ 

از مزایای شاخص این ابزار به موارد زیر باید اشاره کرد:

  • رایگان: انسیبل یک ابزار متن‌باز است، به این معنی که برای استفاده از آن نیازی به پرداخت هزینه اضافی ندارید.
  • سهولت در راه‌اندازی و کاربری: برای استفاده از شیوه‌نامه‌های انسیبل نیازی به مهارت‌های کدنویسی خاصی نیست.
  • قدرتمند: انسیبل به شما اجازه می‌دهد گردش‌های کاری بسیار پیچیده فناوری اطلاعات را مدل‌سازی کنید.
  • انعطاف‌پذیری: می‌تواند کل محیط فناوری اطلاعات را هماهنگ کند. البته، امکان سفارشی‌سازی آن مطابق با نیازهای کاری وجود دارد. 
  • کارآمدی: از آن‌جایی که نیازی به نصب نرم‌افزار اضافی ندارید، فضای بیشتری برای استقرار برنامه‌ها روی سرور و دسترسی به منابع سیستمی در اختیارتان قرار دارد. 

انسیبل چه ویژگی‌های کاربردی در اختیارتان قرار می‌دهد؟

همان‌گونه که اشاره شد، انسیبل برای خودکارسازی وظایف و فرآیندهای استقرار و توسعه مورد استفاده قرار می‌گیرد، به همین دلیل، یکسری قابلیت‌های کاربردی برای این منظور در اختیار توسعه‌دهندگان و کارشناسان فناوری اطلاعات قرار می‌دهد. از جمله این ویژگی‌ها به موارد زیر باید اشاره کرد:

  • مدیریت پیکربندی: انسیبل به‌منظور مدیریت پیکربندی‌ها به شکلی ساده، قابل اعتماد و سازگار طراحی شده است. اگر توسعه‌هنده نرم‌افزارهای کاربردی یا مهندس دوآپس هستید، پیشنهاد می‌کنیم در اولین فرصت به‌فکر یادگیری آن باشید. انسیبل به ساده‌ترین شکل داده‌های زیرساخت را توصیف می‌کند، به‌طوری‌‌که فرآیند درک اطلاعات برای متخصصان را ساده می‌کند تا بتوانند اطلاعات را به‌شکل ساده‌ای تجزیه‌و‌تحلیل کنند. تنها چیزی که برای مدیریت سامانه‌ها نیاز دارید یک رمز عبور یا یک کلید SSH است. فرآیند مدیریت پیکربندی با استفاده از انسیبل به این صورت است که اگر می‌خواهید یک نسخه به‌روزشده از نوع خاصی از نرم افزار را بر روی همه ماشین‌های موجود در شرکت نصب کنید، کافی است تمام آدرس‌های آی‌پی گره‌ها را بنویسید (همچنین میزبان‌های راه دور) و در ادامه یک شیوه‌نامه انسیبل آماده کنید و آن‌را روی همه گره‌ها نصب کنید، سپس شیوه‌نامه را از طریق ماشین کنترل‌کننده خود اجرا کنید.
  • استقرار برنامه: انسیبل به شما اجازه می‌دهد به‌سرعت و به‌راحتی برنامه‌های چند لایه را اجرا کنید. برای خودکارسازی سامانه‌ها نیازی به نوشتن کد سفارشی نیست. شما کارهایی را که باید با نوشتن یک شیوه‌نامه انجام شوند فهرست می‌کنید و انسیبل چگونگی هماهنگ کردن سامانه‌ها با شیونامه را کنترل می‌کند. هنگامی که یک شیوه‌نامه را از دستگاه کنترل‌کننده خود اجرا می‌کنید، انسیبل از SSH برای برقراری ارتباط با میزبان‌های راه دور و اجرای تمام دستورات (وظایف) استفاده می‌کند.
  • هماهنگ‌سازی: همان‌گونه که از نام آن مشخص است، هماهنگ‌سازی یا ارکستراسیون به مرتب‌سازی مولفه‌های کلیدی اشاره دارد به‌شکلی که بدون مشکل با یک‌دیگر کار کنند. درست به همان صورتی که یک رهبر ارکستر این کار را انجام می‌دهد و نت‌های موسیقیایی را به‌گونه‌ای می‌نویسد که همه سازها در هماهنگی کامل با یک‌دیگر کار کنند. به‌طور مثال، با استقرار برنامه، شما نه‌تنها باید سرویس‌های فرانت‌اند و بک‌اند، بلکه پایگاه‌های داده، شبکه‌ها، زیرساخت ذخیره‌سازی و غیره را مدیریت کنید. همچنین، باید اطمینان حاصل کنید که تمام وظایف به‌ترتیب انجام می‌شوند. انسیبل از گردش‌های کاری خودکار، تدارکات و موارد دیگر برای ساده‌سازی هماهنگی وظایف استفاده می‌کند. هنگامی که زیرساخت خود را با استفاده از شیوه‌نامه‌های انسیبل تعریف کردید، به‌لطف قابل حمل بودن شیوه‌نامه‌های انسیبل، می‌توانید از همان ارکستراسیون هر کجا که نیاز دارید، استفاده کنید.
  • امنیت و انطباق: مانند استقرار برنامه، خط‌مشی‌های امنیتی در محیط فناوری اطلاعات (مانند قوانین فایروال یا قفل کردن حساب‌های کاربران) را می‌توان همراه با سایر فرآیندهای خودکار پیاده‌سازی کرد. اگر جزئیات امنیتی را روی دستگاه کنترل پیکربندی کنید و شیوه‌نامه مرتبط را اجرا کنید، همه میزبان‌های راه دور به‌طور خودکار با آن جزئیات به‌روز می‌شوند. به بیان دقیق‌تر، نظارت دستی بر دستگاه‌ها برای رعایت امنیت ضرورتی ندارد. لازم به توضیح است که برای افزایش امنیت، شناسه کاربری و رمز عبور مدیر به‌صورت متن ساده در انسیبل ذخیره‌سازی نمی‌شوند یا قابل بازیابی نیستند.
  • تدارکات ابری: اولین گام در خودکارسازی چرخه عمر برنامه‌های کاربردی، خودکار کردن زیرساخت‌ها است. با انسیبل می‌توانید پلتفرم‌های ابری، میزبان‌های مجازی، دستگاه‌های شبکه و سرورهای Bare Metal را به بهترین شکل مدیریت کنید. 

معماری انسیبل

اکنون که اطلاعات کلی در مورد قابلیت‌های انسیبل به‌دست آوردیم، وقت آن رسیده تا اطلاعاتی درباره مولفه‌های کلیدی انسیبل به‌دست آوریم. از مولفه‌های مهم و کلیدی این فناوری به موارد زیر باید اشاره کرد: 

ماژول‌ها

ماژول‌ها مانند برنامه‌های کوچکی هستند که انسیبل آن‌ها را از یک دستگاه کنترل‌کننده به تمام گره‌ها یا میزبان‌های راه دور منتقل می‌کند. ماژول‌ها با استفاده از شیوه‌نامه‌ها اجرا می‌شوند و مواردی مانند خدمات، بسته‌ها و فایل‌ها را کنترل می‌کنند. انسیبل همه ماژول‌ها را برای نصب به‌روزرسانی‌ها یا هر کاری که لازم است اجرا می‌کند و پس از اتمام، آن‌ها را حذف می‌کند. انسیبل بیش از 450 ماژول برای کارهای روزمره در دسترس توسعه‌دهندگان قرار می‌دهد. 

افزونه‌ها (پلاگین‌ها)

افزونه‌ها تکه‌های کد اضافی هستند که عملکرد انسیبل را افزایش می‌دهند. انسیبل با تعدادی افزونه‌ها در اختیار توسعه‌دهندگان قرار می‌گیرد، اما امکان ساخت افزونه‌ها نیز وجود دارد. از افزونه‌های قدرتمند انسیبل باید به Action، Cache و Cache Back اشاره کرد. 

موجودیت‌ها 

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

شیوه‌نامه‌ها

شیوه‌نامه‌های انسیبل مثل کتابچه راهنمای کارها هستند. آن‌ها فایل‌های ساده‌ای هستند که با YAML سرنام YAML Ain’t Markup Language نوشته می‌شوند. YAML یک زبان سریال‌سازی داده‌ها و قابل خواندن توسط انسان است. شیوه‌نامه‌ها عامل اصلی محبوبیت انسیبل هستند، زیرا آن‌ها وظایفی را که باید به‌سرعت و بدون نیاز به دانستن یا به خاطر سپردن نحو (Syntax) خاصی توسط کاربر انجام شود، توصیف می‌کنند. آن‌ها نه‌تنها می‌توانند پیکربندی‌ها را اعلام کنند، بلکه می‌توانند مراحل هر کار سفارشی دستی را هماهنگ کنند و می‌توانند وظایف را همزمان یا در زمان‌های مختلف اجرا کنند. هر شیوه‌نامه از یک یا چند بخش تشکیل شده است. هدف یک بخش ترسیم گروهی از میزبان‌ها به نقش‌های کاملا تعریف شده است که توسط وظایف نمایش داده می‌شود.

واسط‌های برنامه‌نویسی کاربردی

واسط‌های برنامه‌نویسی کاربردی مختلفی در دسترس توسعه‌دهندگان قرار می‌دهد. از این‌رو می‌توانید به روش‌های مختلف اتصالات انسیبل را برقرار کنید و از پروتکل‌هایی مثل SSH برای ارسال و دریافت ایمن اطلاعات استفاده کنید. 

Ansible Tower چیست؟

Ansible Tower راه‌حل تجاری وب‌محور شرکت Red Hat برای مدیریت انسیبل است. شناخته‌شده‌ترین ویژگی آن رابط کاربری ساده برای مدیریت تنظیمات و استقرار است که نسبت به رابط کاربری اصلی قابلیت‌های بیشتری ارائه می‌کند. Ansible Tower شامل ویژگی‌های ضروری انسیبل است، به‌ویژه آن‌هایی که به‌جای قالب‌های متنی، در قالب گرافیکی راحت‌تر دیده می‌شوند. این راه‌حل برای حداکثر ده گره به‌شکل رایگان در دسترس قرار دارد. 

مزایای استفاده از انسیبل همراه با داکر چیست؟ 

انسیبل عملکرد بسیار خوبی در خودکارسازی داکر و عملیاتی کردن فرآیند ساخت و استقرار کانتینرها انجام می‌دهد. به‌طور مثال، اگر یک محیط فناوری اطلاعات سنتی را مدیریت می‌کنید، افزودن قابلیت‌های کانتینر-ابزار سخت است، اما انسیبل نیاز به انجام فرآیندها به‌صورت دستی را برطرف می‌کند. به‌طور کلی، چهار مزیت اصلی استفاده از انسیبل با داکر به‌شرح زیر است: 

قابل حمل/انعطاف پذیری

این واقعیت که شیوه‌نامه‌های انسیبل قابل حمل هستند، به این معنا است که می‌توان از آن‌ها در هر مکانی استفاده کرد و تکثیرپذیر هستند. قابلیت مهمی که صرفه‌جویی در انجام کارها را به‌همراه دارد. به‌طور مثال، اگر از یک Dockerfile خالص برای ساخت یک کانتینر استفاده می‌کنید، می‌توانید برنامه را فقط در یک کانتینر داکر بازتولید کنید. از طرف دیگر، اگر از یک شیوه‌نامه انسیبل برای ساخت یک کانتینر استفاده می‌کنید، می‌توانید برنامه را در داکر، فضای ابری و غیره بازتولید کنید.

قابلیت حسابرسی

هنگامی که کانتینرهایی را می‌سازید، همچنان باید کدها را رصد کرده و آسیب‌پذیری‌ها را شناسایی و برطرف کنید. به‌کارگیری انسیبل همراه با داکر اجازه می‌دهد فرآیند اشکال‌زدایی مشکلات را به‌سرعت انجام دهید و همچنین به اطلاعاتی در مورد فردی که کانتینرها را مستقر کرده دست پیدا کنید. علاوه بر این، قادر هستید آن‌چه را که در همه کانتینرها وجود دارد زیرنظر بگیرید تا بتوانید در صورت لزوم به بازسازی هر کانتینر بپردازید. 

مدیریت کل محیط‌ها

انسیبل اجازه می‌دهد فرآیند مدیریت کانتینرهای داکر را به ساده‌ترین شکل انجام دهید. به‌طوری‌که قادر خواهید بود محیطی را که همه کانتینرها در آن قرار دارند، حتا در محیط‌های بسیار پیچیده، مدیریت کنید. انسیبل می‌تواند محیط‌های مبتنی بر کانتینر و غیرکانتینر را به‌طور همزمان زیر نظر بگیرید که قابلیت ارزشمندی است، زیرا برنامه‌های کاربردی کانتینری اغلب نیاز به تعامل با برنامه‌های غیرکانتینری دارند.

ترکیب نحوی یکسان 

همان‌گونه که اشاره شد، انسیبل از فایل‌های YAML برای شیوه‌نامه‌های خود استفاده می‌کند، در حالی‌که داکر از اسکریپت‌های غیر YAML استفاده می‌کند، اما ترکیب نحوی این فایل‌ها شباهت زیادی به یک‌دیگر دارند، به‌طوری‌که در برخی موارد ترکیب نحوی یکسانی دارند. 

چگونه انسیبل را همراه با داکر استفاده کنیم

ابتدا اجازه دهید توضیح کوتاهی در مورد داکر ارائه کنیم. داکر (Docker) یک پلتفرم متن‌باز لینوکس‌محور است که برای کمک به استقرار خودکار برنامه‌ها در کانتینرهای نرم‌افزاری استفاده می‌شود. لازم به توضیح است که کانتینر مولفه‌ای نرم‌افزاری است که در آن کدها و همه وابستگی‌های آن با هم بسته‌بندی می‌شوند. فرآیند راه‌اندازی نرم‌افزار به این روش به اجرای مطمئن و پیوسته برنامه‌ها در محیط‌های محاسباتی مختلف کمک می‌کند و پیچیدگی را کاهش می‌دهد. 

اکنون، اجازه دهید نحوه استفاده از انسیبل همراه با داکر را مورد بررسی قرار دهیم. همان‌گونه که اشاره شد، شما می‌توانید از انسیبل برای خودکارسازی داکر، ساخت و استقرار کانتینرهای داکری استفاده کنید. برای این منظور، ابتدا باید Docker SDK برای پایتون را نصب کنید. پس از نصب ابزارها، آخرین Ansible rolebdd را بررسی کنید و سپس با استفاده از تکنیک‌های رایج استقرار را انجام دهید. اصل مهمی که باید به آن دقت کنید، انجام مستمر آزمایش‌‌ها است. به همین دلیل، پیشنهاد می‌کنیم هر دو تست ادغام و پیوستگی را اجرا کنید. در غیر این صورت، برنامه شما ممکن است به‌درستی اجرا نشود. مطمئن شوید که جدیدترین نسخه کانتینر را دارید، برنامه قدیمی را همزمان با برنامه جدید اجرا کنید و تست‌ها را پس از استقرار انجام دهید. هنگامی که تمام آزمون‌های مرتبط با برنامه کاربردی را انجام دادید و پیکربندی روی برنامه جدید تنظیم شد، باید نحوه تعامل انسیبل و داکر را بررسی کنید. اطمینان حاصل کنید که Git، Vagrant و VirtualBox نصب شده باشند. در ادامه، یک فایل Vagrant ایجاد کنید که دارای ماشین مجازی اوبونتو است. سپس، شیوه‌نامه انسیبل خود را اجرا کنید تا همه موارد لازم را نصب و پیکربندی کند. سپس، می‌توانید برنامه خود را مستقر کنید. به یاد داشته باشید که برخی از مولفه‌ها باید دانلود شوند، بنابراین ممکن است زمانی را که برای اولین بار برای استقرار صرف می‌کنید طولانی شود. تا این‌جا به‌خوبی درک کرده‌ایم که انسیبل چیست. اکنون باید نحوه مدیریت کانتینرهای داکر با استفاده از ماژول‌های انسیبل را بررسی می‌کنیم.

مدیریت کانتینرهای داکر با استفاده از ماژول‌های انسیبل

انسیبل چند ماژول برای مدیریت داکر دارد. از ماژول‌های مهم باید به docker_image، docker_container،  Docker_image و docker_service برای ساخت، بارگذاری یا حذف ایمیج‌ها و برچسب‌گذاری و بایگانی ایمیج‌ها اشاره کرد. Docker_container به شما اجازه می‌دهد کانتینرهای داکر را ایجاد و حذف کنید یا راه‌اندازی، متوقف و به‌روزرسانی کنید. Docker_service در راه‌اندازی، خاموش کردن و مقیاس‌بندی سرویس‌ها کمک می‌کند. از آن‌جایی که به‌روزرسانی‌ها به‌طور مداوم برای انسیبل و داکر انجام می‌شود، همواره باید به‌دنبال جدیدترین فهرست ماژول‌ها و عملکردهای آن‌ها باشید. 

کلام آخر

به‌طور خلاصه، استفاده از انسیبل همراه با داکر می‌تواند فرآیندهای مدیریت وابستگی‌های نرم‌افزارها را به‌شکل قابل توجهی ساده کند و به شما اجازه دهد با کانتینرها کار کنید و طیف گسترده‌ای از فرآیندهای کاری را خودکارسازی کنید. به همین دلیل است که ترکیب Ansible-Docker به‌شدت محبوب شده است. یادگیری نحوه استفاده از انسیبل با داکر نه‌تنها مزایای درخشانی برای سازمان‌ها دارد، بلکه گزارشی که سایت کاریابی Payscale منتشر کرده نشان می‌دهد که متوسط حقوق یک توسعه‌دهنده یا مهندس دوآپس با مهارت‌های انسیبل به‌شکل قابل توجهی بالاتر از یک مهندس دوآپس است که هیچ‌گونه آشنایی در این زمینه ندارد 

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟