Frame 18712

مدرس

کیوان نیکویی

سطح

مبتدی

فصل

10

دانشجو

47

ساعت

40:00:00

Automation With Ansible Hands-On-DevOps


Ansible یک پلت فرم اتوماسیون فناوری اطلاعات منبع باز از Red Hat است . این ابزار سازمان ها را قادر می سازد تا بسیاری از فرآیندهای فناوری اطلاعات را که معمولاً به صورت دستی انجام می شوند، خودکار کنند. 

از مهمترین کارهای قابل انجام توسط این ابزار می توان به (Infrastructure-as-a-Code  (IaaC) ,  Configuration-as-a-Code  (CaaC  اشاره کرد که طی آن قادر است یک دیتا سنتر را از زمانی که سرور ها در رک ها مستقر می شوند و IP ILO برروی آنها قرار می گیرد تحویل انسیبل داد و در انتها کل سرور ها را با سیستم عامل و Virtualization  بصورت کلاستر شده به همراه ماشین های ساخته شده روی آنها با شبکه و دیسک موجود و نرم افزارهای مورد نیاز نصب شده برروی آنها تحویل گرفت و از جمله این موارد قابلیت برروز رسانی و تغییرات  هر نرم افزار یا سخت افزاری را نیز دارد و امکان متصل شدن به نرم افزار های مختلفی اعم از مانیتورینگ ها جهت اجرای کد  و رفع اختلال ها و ابزارهای امنیتی تا سایر Device  هاو غیره را نیز خواهد داشت.

این پلتفرم پشتیبانی شده از شرکت  Redhat است که حول محور Ansible Core ساخته شده است. این ابزار بصورت AgentLess کار می کند و جهت مدیریت هر نوع Hostی اعم از Windows , Linux , Cisco , Mac , VMWare , Cloud و هر موجودیتی که برروی آن IP قرار گیرد وبا پروتکل SSH سازگاری داشته باشد را می تواند از راه دور و بصورت یکپارچه و با روش اتومیشن مدیریت نماید و این نرم افزار اتوماسیون فناوری اطلاعات خط فرمان که به زبان برنامه نویسی پایتون نوشته شده است، روشی منعطف و امن را برای خودکارسازی بسیاری از وظایف فناوری اطلاعات و فرآیندهای پیچیده در اختیار سازمان ها قرار می دهد. این پلتفرم دارای اجزای متعددی است که در یک محصول کارآمد بصورت یکپارچه قرار گرفته است و توانمدیهای ویژه ای دارد .

Automation With Ansible Hands-On-DevOps

Rectangle 1644

مدرس


کیوان نیکویی

سطح

مبتدی

فصل

10

دانشجو

675

ساعت

40:00:00
4680000تومان
5200000تومان
4680000 تومان
5200000 تومان

خدمات جانبی

درباره Ansible :

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

 این ابزار که در اکتبر 2015 توسط شرکتی با نام Ansible Inc معرفی شد است یکی از پروژه‌های زیر نظر  Redhat بوده و در حال حاضر مالیکیت و استراتژی‌های کاری آن توسط Redhat پایه‌ریزی می‌شود.

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

این ابزار در حال حاضر بر روی توزیع‌های CentOS ، Redhat Enterprise ، Debian ،  Ubuntu و سایر توزیع‌های استاندارد بر پایه لینوکس‌های ذکر شده قابل نصب و استفاده می‌باشد.

 در یک تعریف کلی می‌توان گفت ، Ansible یک ابزار Remote Administration است که این توانایی را به مدیر یک شبکه می‌دهد تا سرورهای لینوکسی دیگر را به صورت جامع در یک پنل کارآمد مدیریت و کنترل نماید.

اهداف و طراحی Ansible

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

مزایای Ansible :

  • حدعقل میزان مصرف منابع
  • امنیت
  • اعتمادپذیری بالا
  • سهولت در یادگیری

ماژول‌ها

ماژول‌های انسیبل ، واحدهای کاری آن محسوب می‌شوند و هر یک از آنها قابلیت کارایی به صورت تنها و بدون وابستگی را دارند و می‌توان آنها را با زبان‌های اسکریپت‌نویسی Bash ، Python ، Perl و Ruby تولید نمود. لازم بذکر است که بدانید تا به امروز بیش از ۱۶۰۰ ماژول متنوع برای این ابزار سیستمی طراحی و توسعه داده شده است که هر یک از آنها را نسبت به نیاز خود می‌توانید دانلود و استفاده نمایید.

نحوه عملکرد Ansible

تمامی کلاینت‌هایی که با نام Node  یا Host به سروری که Ansible نصب شده است که به آن Control Machine گفته می‌شود از طریق SSH  متصل شده و پس از درخواست اجرای یک دستور ، ماژول به صورت موقت از Control Machine به Node ارسال می‌گردد و از طریق پروتکل‌های استاندارد JSON اجرا می‌شوند و نتیجه را به انسیبل (Control Machine) باز می‌گرداند. لازم بذکر است که بدانید در هنگامی که دستوری برای هر Node ارسال نمی‌گردد ، انسیبل هیچ سرویسی را در Background Host ها اجرا نمی‌کند ، بنابراین پردازشی بر روی Host ها انجام نشده و در نتیجه منابع سخت‌افزاری برای این موضوع در اختیار Ansible قرار نمی‌گیرد.

دلایل استفاده از Ansible :

ابزارهای دیگری هم همانند Ansible به عنوان مثال Puppet و Chef وجود دارند.

  • Agentless  بوده و نصب به نیاز Agent بر روی سیستم و یا دیوایس نیست و تنها از پروتکل SSH برای ارتباط و مدیریت آنها استفاده می نماید ، اما در Puppet و Chef نیاز به نصب Agent هست.
  • بر پایه زبان پایتون ساخته شده و از فرمت YAML که یک زبان پیکربندی ساده هست استفاده و یادگیری آن را آسان میکند اما در puppet و Chef از زبان Ruby که یادگیری آن سخت است استفاده شده است.
  • برای مدیریت لینوکس نیاز به python و برای مدیریت ویندوز هم نیاز به powershell دارد.

لازم به ذکر است که از برتری های Ansible نقش پررنگ آن در LPI می باشد که به عنوان Configuration Management بهتر معرفی شده و در دوره DevOps Engineer Tools می توان آنرا مشاهده نمود

اجزای اصلی Ansible :

  • Inventories
  • Modules
  • Variables
  • Facts
  • Playbooks and plays
  • Configuration Files
  • Templates
  • Handlers
  • Roles
  • Ansible Vault

 

نقش Ansible در DevOps:

Infrastructure-as-a-Code (IaaC):

Ansible می تواند در پیاده سازی یک زیرساخت در DevOps راه گشا باشد .و کلیه بستر موجود برروی kubernetes را بصورت اتوماتیک پیاده سازی کند و کلیه Host های موجود را با در نظر گرفتن امکانات ایزولیشن تحویل استفاده کننده دهد .

 

Configuration-as-a-Code (CaaC) :

با پیاده سازی Ansible در مجموعه کلیه تغییرات در نسخه و Update سیستم عامل و نرم افزار های موجود و هر گونه Change Management با شرایط زیر قابل پیاده سازی هست:

  • صورت اتوماتیک
  • بدون هیچ گونه اختلال و خطا
  • بصورت Zero DownTime
  • مکان High Availability
  • قابلیت انعطاف پذیری و Auto Scale
  • امکان RollBack
  • امکان Auditing
  • امکان Version Control

 

Benefits of IaaC and CaaC

  • Automation of the infrastructure environment provides standardization
  • Setups are free of human error
  • Collaboration is enhanced between operations and development
  • Makes infrastructure more flexible, ready to scale
  • Each step is consistent across all resources
  • Version control is a given

 

نقش Ansible در CICD دواپس