مقدمه اي بر مديريت پيكربندي با Ansible
مديريت پيكربندي فرايندي است براي مديريت تغييرات در يك سيستم به شكلي كه از يكپارچگي در طول زمان اطمينان حاصل كند ، و به طور معمول شامل ابزار و فرآيندهايي است كه اتوماسيون و قابليت مشاهده را تسهيل مي كند. حتي اگر اين مفهوم از صنعت IT سرچشمه نگرفته باشد ، اين اصطلاح به طور گسترده اي براي اشاره به مديريت پيكربندي سرور مجازي ها به كار مي رود.
در زمينه سرور مجازي ها ، مديريت پيكربندي معمولاً به IT Automation يا Server Orchestration نيز شناخته مي شود. هر دو عبارت جنبه هاي عملي مديريت پيكربندي و توانايي كنترل چندين سيستم از يك سرور مجازي مركزي را تاكيد مي كنند.
اين راهنما شما را با مزاياي استفاده از يك ابزار مديريت پيكربندي براي اتوماسيون تنظيم زيرساخت سرور مجازي تان، آشنا مي كند و اينكه چگونه يك ابزار از جمله Ansible مي تواند در اين زمينه به شما كمك كند.
مزاياي استفاده از يك ابزار مديريت پيكربندي
ابزارهاي مديريت پيكربندي متعددي در بازار وجود دارند كه سطح پيچيدگي و سبك هاي معماري متنوعي دارند. اگرچه هر يك از اين ابزارها ويژگي هاي خاص خود را دارند و به روش هاي كمي متفاوت كار مي كنند ، همه آنها عملكرد مشابهي را ارائه مي دهند: اطمينان حاصل كنيد كه وضعيت سيستم مطابق با وضعيت توصيف شده توسط مجموعه اي از اسكريپت هاي آماده سازي ميباشد.
بسياري از مزاياي مديريت پيكربندي براي سرور مجازي ها از توانايي تعريف زيرساخت هاي شما به صورت كد نشات مي گيرد. اين سيستم به شما امكان مي دهد:
از يك سيستم كنترل نسخه براي پيگيري هرگونه تغيير در زيرساخت هاي خود استفاده كنيد
از تهيه اسكريپت براي چندين سرور مجازي محيط مانند توسعه ، آزمايش و توليد، استفاده مجدد كنيد
اسكريپت هاي آماده سازي بين همكاران را براي سهولت همكاري در يك محيط توسعه استاندارد به اشتراك بگذاريد
روند تكثير سرور مجازي ها را ساده تر كنيد ، و اين باعث مي شود تا بازيابي از خطاهاي مهم تسهيل شود
علاوه بر اين ، ابزارهاي مديريت پيكربندي راهي براي كنترل يك تا صدها سرور مجازي از يك مكان متمركز را به شما ارائه مي دهند كه مي تواند به طور چشمگيري بهره وري و يكپارچگي زيرساختهاي سرور مجازي شما را بهبود ببخشد.
بررسي اجمالي
Ansible ابزاري براي مديريت پيكربندي مدرن است كه وظيفه تنظيم و نگهداري سرور مجازي هاي از راه دور را تسهيل مي كند ، با يك طراحي مينيماليستي كه براي به روزرساني و اجراي سريع كاربران در نظر گرفته شده است.
كاربران ، اسكريپت هاي تهيه Ansible را در YAML مي نويسند ، يك استاندارد سريال سازي داده هاي كاربر پسند كه به هيچ زبان برنامه نويسي خاصي ربط ندارد. اين به كاربران امكان مي دهد در مقايسه با ابزارهاي مشابه در همان دسته ، اسكريپت هاي تخصصي را بطور شهودي تر ايجاد كنند.
Ansible نيازي به نصب نرم افزار خاصي روي گره هايي كه با اين ابزار مديريت مي شوند، ندارد. يك دستگاه كنترل با نرم افزار Ansible راه اندازي ميشود كه سپس از طريق SSH استاندارد با گره ها ارتباط برقرار مي كند.
Ansible به عنوان يك ابزار مديريت پيكربندي و چارچوب اتوماسيون ، كليه ويژگيهاي رايج موجود در ساير ابزارهاي همان گروه را ضبط مي كند ، در حالي كه هنوز تمركز زيادي روي سادگي و عملكرد دارد:
رفتار Idempotent
Ansible وضعيت منابع موجود در سيستم هاي مديريت شده را براي جلوگيري از تكرار كارهايي كه قبلاً انجام شده بودند ، پيگيري مي كند. اگر بسته اي از قبل نصب شده باشد ، ديگر آن را نصب نميكند. هدف اين است كه بعد از اجراي هر مرحله ، سيستم به حالت مورد نظر برسد (يا آن را حفظ كند) حتي اگر چندين بار آن را اجرا كنيد. اين همان چيزي است كه Ansible و ساير ابزارهاي مديريت پيكربندي را به خاطر داشتن يك رفتار Idempotent متمايز مي كند. هنگام اجراي يك playbook ، وضعيت هر كاري را كه بايد اجرا شود مشاهده مي كنيد و اينكه آيا اين كار باعث تغيير در سيستم شده است يا خير.
پشتيباني از متغيرها ، شرط ها و حلقه ها
هنگام نوشتن اسكريپت هاي اتوماسيون Ansible ، مي توانيد از متغيرها ، شرط ها و حلقه ها استفاده كنيد تا اتوماسيون خود را متنوع تر و كارامدتر كنيد.
حقايق سيستم
Ansible مجموعه اي از اطلاعات دقيق در مورد گره هاي مديريت شده ، مانند رابط هاي شبكه و سيستم عامل را جمع آوري كرده و آن را به عنوان متغيرهاي جهاني به نام واقعيت هاي سيستم ارائه مي دهد. از واقعيت ها مي توان در playbook ها استفاده كرد تا اتوماسيون شما متنوع تر و سازگارتر شود ، و بسته به سيستم مجهز شده ، متفاوت رفتار كند.
سيستم قالب بندي
Ansible از سيستم قالب بندي Jinja2 Python استفاده مي كند تا امكان عبارات پويا و دسترسي به متغيرها را فراهم كند. از الگوهاي مي توان براي تسهيل تنظيم فايل ها و خدمات پيكربندي استفاده كرد. به عنوان مثال ، مي توانيد از يك الگو براي تنظيم يك ميزبان مجازي جديد در Apache استفاده كنيد ، در حالي كه از همان قالب براي نصب چندين سرور مجازي استفاده مي كنيد.
پشتيباني از افزونه ها و ماژول ها
Ansible با صدها ماژول داخلي براي تسهيل اتوماسيون نوشتن جهت كارهاي اجرايي رايج سيستمها ، مانند نصب بسته هايي با apt و همزمان سازي فايل ها با rsync ، و همچنين براي كار با نرم افزارهاي رايج مانند سيستم هاي پايگاه داده (مانند MySQL ، PostgreSQL ، MongoDB ، و غيره) و ابزارهاي مديريت متعلقات (PHP’s composer, Ruby’s gem, Node’s npm و غيره) همراه است. جداي از آن ، روش هاي مختلفي وجود دارد كه مي توانيد Ansible را گسترش دهيد: وقتي به عملكردي سفارشي احتياج داريد كه به طور پيش فرض وجود ندارد ، افزونه ها و ماژول ها گزينه هاي خوبي هستند.
همچنين مي توانيد ماژول ها و افزونه هاي شخص ثالث را در پرتال Ansible Galaxy پيدا كنيد.
آشنايي با مفاهيم Ansible
اكنون به اصطلاحات و مفاهيم Ansible نگاهي خواهيم داشت تا به شما در آشنايي با اين اصطلاحات در طول مجموعه مقاله ها كمك كنيم.
Control Node (گره كنترل)
گره كنترل سيستمي است كه Ansible براي اتصال به سرور مجازي شما نصب و تنظيم شده است. شما مي توانيد چندين گره كنترل داشته باشيد ، و هر سيستم قادر به اجراي Ansible مي تواند به عنوان يك گره كنترل از جمله رايانه هاي شخصي يا لپ تاپ هايي كه داراي سيستم عامل مبتني بر لينوكس يا يونيكس هستند ، تنظيم شود. در حال حاضر ، Ansible در هاست هاي ويندوز قابل نصب نيست ، اما مي توانيد با تنظيم يك ماشين مجازي كه لينوكس را اجرا كرده و از آنجا Ansible را اجرا ميكند ، اين محدوديت را دور بزنيد.
Managed Nodes (گره هاي مديريت شده)
سيستمهايي كه با استفاده از Ansible كنترل مي كنيد گره هاي مديريت شده ناميده مي شوند. Ansible نياز دارد گره هاي مديريت شده از طريق SSH قابل دستيابي باشند ، و پايتون 2 (نسخه 2.6 يا بالاتر) يا پايتون 3 (نسخه 3.5 يا بالاتر) نصب شده باشد.
Ansible انواع مختلفي از سيستم عامل ها از جمله سرور مجازي هاي ويندوز را به عنوان گره هاي مديريت شده پشتيباني مي كند.
Inventory
فايل Inventory (موجودي ) شامل ليستي از هاست هايي است كه شما با استفاده از Ansible مديريت خواهيد كرد. گرچه Ansible به طور معمول هنگام نصب يك فايل Inventory پيش فرض ايجاد مي كند ، مي توانيد از Inventory هاي هر پروژه استفاده كنيد تا از زيرساختهاي خود تفكيك بهتري داشته باشيد و از اجراي دستورات يا Playbook ها روي سرور مجازي اشتباه جلوگيري كنيد. موجودي هاي استاتيك معمولاً به صورت فايلهاي .ini ايجاد مي شوند ، اما شما مي توانيد از موجودي هايي كه به صورت پويا توليد شده نيز به هر زبان برنامه نويسي كه قادر به بازگشت JSON است ، استفاده كنيد.
Tasks
در Ansible ، يك Task (كار) ، واحد مجزايي از كار براي اجراي يك گره مديريت شده است. هر عملي براي انجام به عنوان يك Task تعريف مي شود. كارها مي توانند به عنوان يك عمل يك طرفه از طريق دستورات ad-hoc اجرا شوند ، يا در يك Playbook به عنوان بخشي از يك اسكريپت اتوماسيون گنجانده شوند.
Playbook
Playbook شامل ليست سفارشي از وظايف و چند دستورالعمل ديگر است تا مشخص كند كدام هاست ها هدف آن اتوماسيون باشند ، آيا از سيستم افزايش امتياز براي اجراي آن كارها استفاده شود، و بخش هاي اختياري براي تعريف متغيرها يا مشموليت فايل ها دارد. Ansible وظايف را به صورت متوالي انجام مي دهد و يك اجراي كامل Playbook را يك play مي نامند. Playbook ها با فرمت YAML نوشته ميشوند.
Handlers
براي دستيابي به اقدامات روي يك سرويس ، مانند راه اندازي مجدد يا متوقف كردن سرويسي كه به طور فعال در سيستم گره مديريت شده اجرا مي شود ، از Handler استفاده مي شود. Handler ها معمولاً توسط taksها تحريك مي شوند و پس از اتمام همه كارها ، اجراي آنها در پايان يك play اتفاق مي افتد. به اين ترتيب ، اگر بيش از يك كار سرويس را ريستارت كند ، سرويس فقط يك بار و پس از انجام همه كارها ريستارت ميشود. اگرچه رفتار پيش فرض Handler كارآمدتر است و در كل يك عمل بهتر ميباشد ، اما در صورت نياز توسط يك كار نيز مي توان مجبور به اجراي سريع آن شد.
Roles
role ، مجموعه اي از Playbook و فايل هاي مرتبط است كه به يك ساختار از پيش تعريف شده توسط Ansible سازمان دهي شده است. role ها استفاده مجدد و بازگشت مجدد از Playbook ها را به بسته هاي قابل تقسيم اتوماسيون دانه اي براي اهداف خاص مانند نصب يك سرور مجازي وب ، نصب يك محيط PHP يا تنظيم سرور مجازي MySQL تسهيل مي كند.
نتيجه
Ansible ابزاري براي اتوماسيون فناوري اطلاعات جزيي است كه داراي منحني يادگيري ملايم ميباشد ، و تا حدودي به خاطر استفاده از YAML براي تهيه اسكريپت ها مفيد ميباشد. داراي تعداد زيادي ماژول داخلي است كه مي تواند براي كارهاي انتزاعي مانند نصب بسته ها و كار با قالب ها استفاده شود. الزامات ساده زيرساختي و دستورات قابل دسترس آن مي تواند مناسب كساني باشد كه مديريت پيكربندي را شروع مي كنند.
در قسمت بعدي اين مجموعه ، نحوه نصب و شروع كار با Ansible را در سرور مجازي Ubuntu 20.04 مشاهده خواهيم كرد.
از اين لينك ها زير مي توانيد آمورش هاي بيشتري براي لينوكس پيدا كنيد :
چگونه به Ubuntu 20.04 Focal Fossa ارتقا دهيد
نحوه ايجاد نماها (Views) براي توسعه وب Django
نصب Mount NFS در اوبونتو 20.04
نحوه توسعه برنامه ها در Kubernetes با Okteto
نصب و پيكربندي Laravel با Nginx در اوبونتو 20.04
نحوه تنظيم Jupyter Notebook با پايتون در Ubuntu 20.04
نصب و پيكربندي Nextcloud در اوبونتو 20.04
نصب و پيكربندي Ansible در اوبونتو 20.04
مقدمه اي بر مديريت پيكربندي با Ansible
ارائه برنامه هاي Flask با uWSGI و Nginx در اوبونتو 18.04
نصب و پيكربندي Postfix در اوبونتو 20.04
خريد vps – خريد سرور مجازي – خريد سرور – سرور هلند – فروش vps – سرور مجازي آمريكا – خريدvps – سرور مجازي هلند – فروش سرور مجازي – سرور آمريكا – vps – سرور مجازي انگليس – سرور مجازي آلمان – سرور مجازي كانادا – خريد vps آمريكا – خريد وي پي اس – سرور – خريد سرور مجازي هلند – vps خريد – سرور مجازي فرانسه – سرور مجازي هلند – خريد vps آمريكا – خريد سرور مجازي ارزان هلند – vps – خريد vps هلند – خريد سرور مجازي آمريكا – خريد vps فرانسه – تست vps – سرور مجازي تست – سرور مجازي ويندوز – ارزانترين vps – خريد وي پي اس – vps ارزان –
برچسبها:Ansible, Idempotent, IT Automation, playbook, Server Orchestration, YAML
برچسب: ،