Ansible Architecture

Ansible Architecture

Ansible Architecture

معماری Anisble

 Ansible چیست ؟

چنانچه شما بعنوان یک Linux System Administratior در دیتا سنتری کار کنید میدانید که مدیریت

و راهبری تعداد زیاد server کار آسانی نیست مثلا اگر قرار باشد تعداد ۵ تا server را بروز رسانی

کنید شاید کار زیاد زمان بری نباشد اما اگر لازم باشد تعداد ۱۰۰ یا ۲۰۰ تا بیشتر را پشتیبانی و

بروز رسانی کنید کاری بسیار پر استرس و زمان بر خواهد بود .

در سالهای گذشته بیشتر System Administrator ها از قابلیت نوشت script به منظور راهبری و

پشتیبانی server های خود استفاده میکردند که نیاز به دانش عمیق در برنامه نویسی با زبان script

داشت و مستلزم وقت برای نوشتن script های صحیح و دقیق و کارا بود .

فرض کنید میخواهید کلیه server های خود را update کنید و یا می خواهید backup بگیرید , چنانچه

بخواهید بر روی هر server جداگانه این کار را انجام دهید مسلما کاری وقت گیر است که در این زمانه

وقت و زمان بسیار در سیستم های آنلاین و برخط مهم است و اینکه server و service شما بالا و برخط

باشد و در همان شرایط بتوانید عملیات لازم را روی آن انجام دهید مسئله ای ارزشمند است .

Ansible  یک برنامه opensource  برای متمرکز کردن کارهای دیتاسنترها روی server های می باشد .

بوسیله Ansible قادر خواهید بود که بسیاری از وظایف ادمین را بصورت خودکار راه اندازی و تعریف کنید

تا در زمان مناسب بصورت remote یا از راه دور روی ماشین های شما اجرا گردد. ساختار Ansible  بگونه ای

طراحی شده است که شما را قادر خواهد ساخت بدون shutdown کردن سیستم به عملیات مختلف روی

ماشین های خود ادامه دهید .

مثلا Ansible  میتواند عملیاتی مثل update ماشین های مختلف را بصورت Zero Downtime انجام دهد .

در ضمن system admin نیازی به نوشتن script های بهینه شده نداشته و میتواند از زبانهای high-level

در ansible  براحتی استفاده نماید .

در Ansible  می توانید وظایف را بصورت گروه های مختلف مثلا گروه های مرتبط با host یا نوع آنها و

ساختار معماری آنها تعریف نمایید .

مفهومی بنام paly در  Ansible  داریم که مجموع از وظایف مرتبط با یک گروه از host ها را برعهده دارد

و فایلی که یک یا بیش از یکی از این palys ها را شامل باشد palybook نامیده می شود .

 معماری Ansible  بصورت agentless است . هر زمانی که Ansible کاری را اجرا کند و فرمانی صادر

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

ماژول در core خود دارد لذا کار system administrator ها را خیلی راحت می کند .

 Ansible  اولین بار توسط Michael DeHaam طراحی و تولید شد ، شخصی که بوجود آورنده برنامه

Collber provisioning  بود. از آنجاییکه Ansible  بسیار ساده است لذا بسیاری از system admin

ها از آن استفاده میکنند . همچنین Developer ها یا توسعه دهندگان برنامه ها نیز می توانند براحتی

از Ansible استفاده نمایند زیرا بر پایه زبان Python  نوشته شده است  . Ansible توسط ابزارهای

DevOps مثل Vagrant و Jenkins پشتیبانی می شود.

 در این بین کارهای زیادی هم وجود دارد که ansible قادر به انجام آنها نیست . مثلا Ansible نمیتواند

تغیراتی که توسط کابران در سیستم انجام میگردد را audit یا رسد کند . مثلا اینکه این فایل را چه

کسی تغییر داده است .

لیست زیر نمونه ای از کارهایی که توسط Ansible  قابل انجام نمی باشد آمده است :

Ansible می تواند package های مورد نیاز در زمان نصب را اضافه کند، اما قادر به نصب اولیه در

حالت minimal  روی سیستم نیست . هر سیستمی را میتوان بصورت Minimal  راه اندازی کرده

و سپس توسط Kickstart  یا ابزارهای مشابه یک image از آن تهیه نمود، سپس با Ansible  برای

پیکربندی های دیگر استفاده کرد . 

با اینکه Ansible  قادر است پیکربندی مربوط به فایروال را  تنظیم نماید اما بر آن نظارتی ندارد . 

Ansible  نمی تواند تغییرات روی فایل های داخل سسیتم را پیگیری کند که آیا این تغییرات توسط

کاربر انجام شده یا توسط process . غالبا بهتر است که این گونه تغییرات بهتر است با ابزارهای دیگر

مخصوص version control  یا ابزارهای audit خود سیستم عامل لینوکس انجام پذیرد.

 

نمونه سوالات مربوط به  معماری Ansible  به همراه جواب آنها

 

۱- Which of the following programmng languages is Ansible built on?

        a.  C++

        b. Per

        c. Python

        d. Ruby

 


۲- Which of the following terms best describe Ansible’s architecture?

               a.  Agentless

               b. Client/Server

               c. Event-driven

               d. Stateless

 


۳- What is the network protocol that Ansible uses, by default, to communicate with managed nodes?

              a. HTTP

              b. HTTPS

              c. Paramiko

             d. SNMP

              e. SSH

 


۴- Which of the following files define the actions Ansible performs on manamged nodes?

          a. Configuration file

          b. Host inventory

          c. Manifest

          d. Playbook

          e. Script


 ۵- what systax is used to define Ansible Playbooks?

          a. Bash

          b. Perl

         c. Python

         d. YAML

 

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *