مفهوم و ساختار 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 #DevOps
چنانچه شما بعنوان یک 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 #DevOps
🐧 لینک گروه جامعه متن باز (لینوکس) ایران
@IRAN_Open_Source_Community
#Ansible_for_DevOps__Server_and_configuration_management_for_humans
@iranopensource🐧
@IRAN_Open_Source_Community
#Ansible_for_DevOps__Server_and_configuration_management_for_humans
@iranopensource🐧
🐧 لینک گروه جامعه متن باز (لینوکس) ایران
@IRAN_Open_Source_Community
#Ansible_for_Kubernetes
@iranopensource🐧
@IRAN_Open_Source_Community
#Ansible_for_Kubernetes
@iranopensource🐧
⭕️ تفاوت ابزارها Management Configuration Automation معروف همچون Ansible و Puppet و Chef با یکدیگر
#Ansible #Puppet #Chef
@iranopensource🐧
#Ansible #Puppet #Chef
@iranopensource🐧