خانه » مقدمه ای بر پلت فرم اتوماسیون Ansible
DevOPS آموزش

مقدمه ای بر پلت فرم اتوماسیون Ansible

آیا شما یک مبتدی در خصوص Ansible هستید؟ این راهنما به معرفی مختصری از Ansible و سایر عوامل مهم پلت فرم اتوماسیون Ansible از جمله معماری Ansible، inventory، ماژول‌ها و playbookها می‌پردازد.

اگر شما سعی می کنید بدانید ansible چیست و ویژگی های اصلی آن چیست، این مقاله برای شما مناسب است.

معرفی

آیا تا به حال در موقعیتی بوده اید که چندین منبع را به صورت دستی در محیط حرفه ای/شخصی خود مستقر کنید؟

وقتی می‌گویم «منابع»، می‌توانیم از سرورها، پایگاه‌های داده، دستگاه‌های شبکه، وب سرورها و غیره نام ببریم.

به عنوان یک مدیر سیستم، می توانید با خوشحالی بگویید که آن روزها خیلی گذشته است. اختراع ابزارهای اتوماسیون زندگی همه مدیران سیستم را آسان کرد.

نه تنها مدیریت سیستم، بلکه ابزارهای اتوماسیون نیز توسط توسعه دهندگان برای خودکارسازی کارها توسعه یافت. یکی از این ابزارهای اتوماسیون، Ansible است!

امروز، من قصد دارم با شما را در مورد آنچه که در Ansible و اجزای اصلی وجود دارد، صحبت کنم.

Ansible چیست؟

Ansible یک ابزار اتوماسیون است که می تواند در هر منطقه از مجموعه فناوری شما مانند شبکه، پایگاه داده، سرورها، استقرار برنامه ها، کانتینرها، امنیت، ابر و غیره استفاده شود.

Ansible بوسیله Python نوشته شده است ، بنابراین اگر شما یک توسعه دهنده پایتون هستید، ایجاد ماژول های سفارشی در Ansible آسان است.

Ansible در ابتدا توسط Michael DeHaan ایجاد شد و بعداً توسط Redhat در سال 2015 خریداری شد. Ansible منبع باز است و Redhat یک نسخه تجاری از ansible را نیز ارائه می دهد.

معماری Ansible

اولین قدم در یادگیری ansible، درک معماری Ansible است.

ترکیبی از اجزایی مانند موتور Ansible، Inventory، Playbooks و غیره، معماری ansible را تشکیل می دهد.

در اینجا یک تصویر گرافیکی از نحوه کار Ansible را با هم مشاهده می کنیم:

نمودار معماری Ansible

Ansible از معماری بدون عامل پیروی می کند. برای استفاده از

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

Ansible از پروتکل ssh برای برقراری ارتباط با تمام دستگاه های مورد نظر استفاده می کند و از هر پورتی ssh که در دستگاه client تنظیم شده است استفاده می کند. به این ترتیب دیگر نیازی به باز کردن پورت های اختصاصی برای ansible ندارید.

دو نوع گره در ansible وجود دارد. اگر تعجب می کنید که اصطلاح "node"به چه چیزی اشاره دارد؟ این فقط یک سرور یا ایستگاه کاری است .

  • Node Master/Controller – گره ای که در آن نرم افزار ansible را نصب خواهید کرد.
  • گره های مدیریت شده – گره هایی که توسط Ansible مدیریت می شوند.

می‌توانید گره‌ها را به‌عنوان گره‌های Master و Slave بنامید، اما از اصطلاحات تخصصی استفاده کنید که بهترین روش است.

از این نقطه، من گره اصلی را به عنوان گره کنترل کننده و گره های slave را به عنوان گره های مدیریت شده در سراسر مقاله معرفی خواهم کرد .

Ansible Inventory

Inventory جایی است که شما اطلاعات میزبان/IP مدیریت گره را در اختیار ansible قرار می دهید. فایل inventory به صورت پیش فرض با فرمت INI خواهد بود و از فرمت YAML نیز پشتیبانی می کند.

وقتی دستورات ansible-playbook یا Adhoc را اجرا می‌کنید، موتور ansible فایل inventory را تحلیل می‌کند و لیستی از میزبان‌هایی که باید با آنها کار کند را شناسایی می کند.

ماژول های Ansible

ماژول ها برنامه هایی هستند که در پایتون برای یک کار خاص نوشته می شوند. هنگامی که دستورات playbook یا Adhoc را اجرا می کنید، ansible این برنامه را به تمام گره های مدیریت شده ارسال می کند.

به عنوان مثال ماژول apt را در نظر می گیریم. این ماژول برای مدیریت بسته ها در سیستم های مبتنی بر دبیان و اوبونتو است.

اگر برای نصب بسته‌ها در پنج گره مدیریت‌شده یک play-book اجرا کنید، ماژول apt در تمام گره‌های مدیریت‌شده کپی می‌شود و برنامه apt اجرا می‌شود.

شما همچنین می توانید ماژول های خود را ایجاد کنید، اما بیشتر اوقات ماژول هایی برای رفع نیازهای شما وجود دارد.

Ansible Play-Book

play-bookها در Ansible مجموعه کارهایی هستند که شما می خواهید آن ها را بروی گره های مورد نظرتان اجرا کنید. play-bookها در فرمت YAML نوشته می شوند.

نتیجه

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

در مقاله‌های آینده‌مان، به نحوه راه‌اندازی و استفاده از Ansible در لینوکس خواهیم پرداخت.

منابع:

مهدی منصوری

من مهدی منصوری و کارشناس حوزه نرم افزار و امنیت اطلاعات هستم. کارشناسی ارشد خودم را در رشته امنیت اطلاعات از دانشگاه مالک اشتر تهران گرفتم. هم اکنون در زمینه DevOPS مشغول هستم. و در زمان های ممکن در این سایت و چند سایت دیگه مطلب می گذارم

درباره نویسنده

مهدی منصوری

من مهدی منصوری و کارشناس حوزه نرم افزار و امنیت اطلاعات هستم. کارشناسی ارشد خودم را در رشته امنیت اطلاعات از دانشگاه مالک اشتر تهران گرفتم.
هم اکنون در زمینه DevOPS مشغول هستم. و در زمان های ممکن در این سایت و چند سایت دیگه مطلب می گذارم

افزودن نظر

برای ارسال نظرات خود اینجا را کلیک کنید