آموزش نصب و پیکربندی Ansible در Ubuntu 16.04

Ansible نصب تنظیم آموزش banner

آموزش نصب و پیکربندی Ansible در Ubuntu 16.04

How to Install and Configure Ansible on Ubuntu 16.04

 

 

معرفی Ansible 

سیستم های مدیریت پیکربندی و تنظیمات به منظور سادگی بیشتر مدیران و تیم های عملیاتی برای کنترل سرورهای زیاد طراحی شده اند و با کمک این سیستم های مدیریتی می توانید سیستمهای متفاوتی را از یک مکان مرکزی کنترل کنید.

هم اکنون سیستم های مدیریت پیکربندی محبوب برای سیستم های لینوکس مانند Chef و Puppet وجود دارند ولی اغلب این برنامه ها پیچیده تر از چیزی هستند که مردم می‌خواهند و به این نیاز دارند. Ansible بهترین جایگزین برای این کار است زیرا کمترین سربار را هنگام راه اندازی دارد.

در این آموزش روش نصب Ansible را بر روی سرور Ubuntu 16.04 را مطرح می کنیم و روش های ابتدایی کار با این برنامه را می گوییم.

Ansible چگونه کار می کند ؟

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

این برنامه راه حلی است که مدیریت سرور های شما را بسیار ساده می کند به این صورت که ، هر سروری که پورت SSH آن باز باشد بدون در نظر گرفتن  چرخه ای که سرور در آن قرار دارد ، می تواند تحت نظر پیکربندی Ansible قرار گیرد.

هر کامپیوتری که از طریق SSH می توانید به آن وصل شوید را می توانید از طریق Ansible مدیریت کنید.

برنامه Ansible به صورت ماژولار کار می کند که این امر باعث می شود که ویژگی های مورد نیازتان برای سناریو های متفاوت را به سیستم اصلی اضافه کنید و از آن استفاده کنید. ماژول ها با هر زبان برنامه نویسی می توانند طراحی شده باشند که باید با استاندارد JSON با یکدیگر ارتباط برقرار کنند.

فایل پیکربندی اصلی با قالب استاندارد YAML نوشته شده است که باعث می شود کاملا واضح و خوانا باشد و شبیه به زبان های نشانه گذاری محبوب باشد. برنامه Ansible از طریق هر ابزار خط فرمان یا اسکریپت های پیکربندی که به آن ها Playbook گفته می شود با کاربران در ارتباط باشد.

پیش نیاز ها

در این آموزش به یک سرور Ubuntu 16.04 با دسترسی کاربر non-root با مجوز sudo و ارتباط SSH نیاز دارید.

مرحله اول – نصب Ansible

کار با Ansible به معنی مدیریت سرور های مختلف است که برای این کار باید Ansible را حداقل بر روی یک سرور مجازی نصب کنید. در اینجا برای نصب برنامه از یک سرور Ubuntu 16.04 استفاده می کنیم.

بهترین روش نصب برای Ansible ، اضافه کردن آن به PPA ( Personal Package System ( که همان منبع مخازن سیستم می باشد ، است. برای اضافه کردن به PPA می توانید از دستور زیر استفاده کنید :

برای تایید پیام های اضافی PPA دکمه Enter را بزنید.

در ادامه باید برای سیستم مدیریت بسته های از بسته های جدید مطلع شود آن را مجددا راه اندازی کنیم ، سپس برنامه را نصب کنیم :

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

تا اینجا همه برنامه های مورد نیاز را برای مدیریت سرورهای مان از طریق برنامه Ansible را داریم.


مرحله دوم – پیکربندی میزبان های Ansible

برنامه Ansible سرور هایی که در فایل hosts  تعریف شده اند را بررسی می کند ، پس برای برقراری ارتباط با کامپیوتر های دیگر باید این فایل را تنظیم کنیم. این فایل را با دسترسی root باز کنید :

در این فایل تنظیمات نمونه زیادی را مشاهده می کنیم که هیچکدام کارایی لازم را برای ما ندارند ، پس برای شروع پیکربندی با قرار دادن “#” در ابتدای تمام خطوط ، همه این تنظیمات را به حالت توضیح در می آوریم و در آینده برای سناریو های پیچیده می توانیم از این تنظیمات کمک بگیریم.

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

مقدار group_name برای دسته بندی سرور هاست که باید از یک کلمه استفاده کنید.

مقدار alias نیز فقط یک نام است که به سرور اشاره می کند.

 

در سناریو ما فرض بر این است که سه سرور قرار است که بوسیله Ansible کنترل شوند. این سرور های باید با دستور زیر از سرور Ansible در دسترس باشند :

اگر تنظیمات را به درستی انجام داده باشید نباید پیغام رمز عبور را مشاهده کنید و این به این معنی است که باید کلید SSH سرور را به درستی تنظیم کرده باشید. آدرس های IP که به سرور ها اختصاص دادیم ۱۹۲٫۰٫۲٫۱ ، ۱۹۲٫۰٫۲٫۲ و ۱۹۲٫۰٫۲٫۳ می باشند و نام های host1 ، host2 و host3 را با نام گروه servers به آنها اختصاص داده ایم.

برای انجام این کار باید بلاک زیر را به فایل hosts اضافه کنید :

هاست ها می توانند در گروه های متفاوتی باشند و هر گروه می تواند تنظیمات جداگانه ای برای اعضای خودش داشته باشد. بعدا این مسئله را امتحان کنید.

با تنظیماتی که تا الان انجام شده اگر بخواهیم از طریق Ansible به سرور های هاست ها متصل شویم با خطا مواجه خواهیم شد ( با فرض اینکه کاربر root نباشید ). به این دلیل که کلید SSH برای کاربر root تعریف شده است و Ansible به صورت پیش فرض برای اتصال از کاربر فعلی شما استفاده می کند. اگر اقدام به اتصال کنید خطای زیر را مشاهده خواهید کرد :

در سرور Ansible از کاربری به نام demo استفاده می کنیم و Ansible تلاش می کند که با این دستور به همه سرور ها متصل شود ssh demo@server ، و اگر این کاربر بر روی سیستم راه دور تعریف نشده باشد ، این دستور کار نمی کند. برای رفع مشکل یک فایل ایجاد می کنیم تا همه سرور های عضو گروه server با کاربر root متصل شوند.

برای این کار یک دایرکتوری در ساختار پیکربندی Ansible با نام group_vars ایجاد می کنیم. در این پوشه برای هر گروهی که می خواهیم تنظیم کنیم یک فایل با فرمت استاندارد YAML ایجاد می کنیم :

تنظیمات را در این فایل قرار می دهیم. فایل های YAML با “—” شروع می شوند ، پس فراموش نکنید که در ابتدای فایل آن را اضافه کنید :

در انتها فایل را ذخیره کرده و خارج شوید.

اگر میخواهید تنظیمات خاصی را برای همه سرور های بدون در نظر گرفتن گروه آنها انجام دهید ، این تنظیمات را در فایل etc/ansible/group_vars/all/ قرار دهید. برای اعمال تنظیمات خاص برای هاست های نیز می توانید در مسیر etc/ansible/host_vars/ فایل های پیکربندی را ایجاد کنید.

مرحله سوم – دستورات ساده Ansible

تا اینجا سرور های هاست ها را تنظیم کردیم و پیکربندی کافی برای اتصال به سرور های هاست ها را انجام دادیم و اکنون می توانیم دستورات اولیه را اجرا کنیم.

از سرور هایی که تنظیم کردیم با دستور زیر ping می گیریم :

این یک تست ساده برای بررسی اتصال Ansible با سرور های هاست های تعریف شده بود. در اینجا کلمه “all” برای همه هاست استفاده می شود ، اگر می خواهید که از گروه خاصی تست ping بگیرید از دستور زیر استفاده کنید :

همچنین می توانید یک هاست خاص را تعیین کنید :

همچنین چند هاست خاص که آنها را با کولون : از یکدیگر جدا می کنیم :

مقدار m ping- در دستور گفته شده برای استفاده از ماژول “ping” در ساختار Ansible است. این ها دستورات پایه ای هستند که می توانید بر روی سرور ها هاست ها از راه دور اجرا کنید. ماژول ping در بیشتر موارد مانند ابزار ping لینوکس  عمل می کند ولی در Ansible ارتباطات را بررسی می کند.

ماژول ping هیچ آرگومانی را نمی گیرد ولی می توانیم دستور دیگری را امتحان کنیم تا از صحت عملکرد آن مطمئن شویم. می توانیم آرگومان a- را ارسال کنیم. ماژول shell این امکان را برای ما فراهم می کند که دستورات خط فرمان را از راه دور بر روی سرور های هاست ها اجرا کنید و نتیجه را دریافت کنیم. برای مثال از دستور زیر برای پیدا کردن مقدار فضای استفاده شده حافظه رم از سرور host1 استفاده می کنیم :

پایان

تا اینجا باید توانسته باشید که سرور Ansible را پیکربندی کرده باشید و سرور هایی را که می خواهید تنظیم کنید با موفقیت به Ansible متصل کرده باشید.

تا اینجا سرور Ansible را برای اتصال به سرور هایی که می خواهیم آنها را مدیریت کنیم پیکربندی کرده و به سرور های هاست ها متصل کردیم. در ادامه بررسی صحت اتصال به سرور های هاست ها را بررسی کردیم و دستورات ساده ansible را از راه دور اجرا کردیم.

سعی کردیم مطالب مفید و کاربردی را در این مطلب بیان کنیم ولی مطالب عنوان شده بسیار ساده و ابتدایی هستند و به ویژگی های پرقدرت Ansible پرداخته نشده است ، مانند Playbook ها.

Leave a Reply