سلام و خسته نباشید عرض میکنم خدمت شما همراهان هفتگی سری مقالات آموزش انسیبل.
این هفته با موضوع جدیدی به نام ابزارهای انسیبل در خدمت شما هستم تا چند مورد از مهم ترین ابزارهای انسیبل را به شما معرفی کنم.
در قسمت اول این سری مجموعه درباره مخزن انسیبل یا جایی در انسیبل که سرورهای هدف با مشخصات آنها را در آن تعریف میکنیم با یکدیگر گفتوگو کردیم؛ همچنین در قسمت دوم درباره چگونگی استفاده از دستورات انسیبل به صورت ابتدایی و کلی بحث کردیم همچنین در سومین قسمت از این سری مقالات درباره ابزارهای انسیبل که مهمترین قسمت برای چگونه کار کردن با انسیبل میباشند را مورد بررسی قرار دادیم.
در قسمت پیش درباره استفاده از تسک انسیبل حرف زدیم و جهت گذار از آن بحث به قسمت پلیبوکهای انسیبل که سطح حرفهایتری از استفاده از انسیبل میباشد نیاز داریم تا ابزارهای مختلف خود برای استفاده در انسیبل را بیشتر بشناسیم.
در این مقاله قصد داریم تا شمای کلی پلی بوکهای انسیبل را مورد بررسی قرار دهیم. در نظر داشته باشید که این مقاله صرفا جهت آشنایی با این مبحث بوده و در آینده مقالاتی با سطح پیشرفتگی بالاتر نیز به شما ارائه خواهد شد.
در ابتدا دریافتیم که انسیبل قسمتهای متفاوتی دارد. داستان انسیبل با استفاده از مخزن انسیبل که مکانی برای تجمع و دسته بندی سرورهای هدف انسیبل میباشد شروع میشود و در این مخزن ما میتوانیم این سری سرورها را علاوه بر معرفی و ایجاد نحوه ارتباط با آنها دستهبندی هم بکنیم.
در ادامه با دستورات انسیبل آشنا شدیم که وظیفه آن را بر عهده داشتند که یک کار که دوست داریم در تعداد زیادی سرور انجام شود را با استفاده از این دستوران انسیبل خالی نوشته و بعد از اجرا اتفاقی که در آن لحظه نیاز داشتیم تا در سرورهای هدف قرار گیرد اجرا خواهد شد.
مفهوم نهایی که در انسیبل با آن رو به رو خواهیم شد دست بر جایی میگذارد که انسیبل به آن دلیل متولد شده است. مدیریت یک پارچه زیر ساخت و اتومیشن تعداد زیادی سرویس در تعداد زیادی ماشین مجازی یا ابری.
پلی بوک انسیبل یک فایل است که در آن میتوانیم مراحل مختلف اجرا را تعریف کنیم؛ هدف هر اتفاق را بررسی کرده و تنظیم کنیم. یک کار تکراری را به صورت مداوم در یک قالب منظم و مدون و بدون اشتباه.
پلی بوک انسیبل ساخته شد تا کسانی که کار دواپس یا سیس ادمین میکنند زیرساختها و خواستههای خود را در قالب یه کانفیگ فایل یا کد yml درست کرده و در ادامه با همین ابزار به سرعت اتفاقات مورد نظر خود را در سرورهای متعدد انجام دهند.
الگوی کلی پلی بوک انسیبل یک فایل yaml,yml بوده که در آن میتوانید تسکهای مختلف، رول های مختلف و هدفها یا هاستهای مختلف تعیین نمایید و با وارد کردن این فایل به دستور ansible paly-book میتوان اتفاقات را رقم زد.
استاندارد نوشتاری فایلهای تنظیمات yaml یک نوع فایل با الگوی خاص نوشتاری میباشد که در آن میتوانیم خواستههای مورد نیاز خود را در قالب یک نوشتار الگو مند و با تعدی از نوع نوشتار کلی بنویسیم و با معرفی این فایل به ابزار مختلف میتوانیم استفادههای زیادی از این فایلها بکنیم.
از استفادههای این فایل میتوان به موارد زیر اشاره کرد:
این فایل رفته رفته دارد تبدیل به یک استاندارد جهانی برای فایل های تنظیمات یا کانفیگ فایلها میشود.
اگر نیازدارید که یک سری اتفاقات پشت سر هم در یک یا چند سرور در بازهزمانیهای متعدد رخ دهد میتوانید این فایل را به صورت پلیبوک انسیبل درآورید.
در قسمت پایین ابتدا یک فایل انسیبل پلی بوک کوچک مینویسیم و در ادامه به توضیح آن میپردازیم تا نوع نوشتاری این نوع فایل به راحتی در اختیار شما قرار گیرد.
--- - name: Update Servers and configure DNS hosts: all tasks: - name: Update Servers shell: ‘apt update -y’ - name: Configure DNS file lineinfile: path: /etc/resolv.conf regexp: ‘^nameserver ’ line: nameserver 8.8.8.8
ابتدا در این قسمت از انسیبل پلی بوک مشاهده میکنیم که سه عدد خط تیره در بالای این متن قرار دارد که به عنوان جدا کننده این موضع انتخابی استفاده میشود.
در سطر بعد، بعد از علامت - که نمایانگر تعریف یک قسمت جدید میباشد نام اتفاقی که قرار است بیوفتد جلوی name قرار میگیرد.
در نظر داشته باشید که این اکشن باید داخل چند سرور اتفاق بیوفتد؛ در خط دوم بعد از عبارت hosts نام قسمتی از اینونتوری را که نیازداریم تا در آن این اتفاق انجام شود را مینویسیم.
این قسمت از اینونتوری معرفی شده به دستوری که باعث اجرای انسیبل پلی بوک میشود انتخاب میشود.
خط بعدی تعریفیست برای اتفاقی که در خطهای بعد در حال انجام میباشد.
واژه tasks در این خط نمایانگر این است که از اینجای فایل به بعد قرار است از تسکتها استفاده شود تا اتفاقات پشت سر هم انجام شود.
هر تسک در یک شاخه جداگانه که با - در پایین جدا شده است قرار میگیرد.
در تسک اولی که در بالا به آن اشاره شده است نیازداریم تا سرور مورد نظر را آپدیت کنیم به همین منظور قرار است با استفاده از ماژول shell این دستور را در سرورهای هدف قرار دهیم.
خط بالایی این اتفاق اسمیاست که برای این تسک انتخاب میکنیم که صد در صد اتفاقی که آن تسک باعث آن میشود را بنویسید.
در خط پایینی با همان الگوی نوشتاری خط بالایی مواجه میشویم با این اتفاق که تعداد آرگومانتهای موجود در این ماژول بسیار ببیشتر از حالت قبل میباشد.
در این قسمت قرار است فایل مربوط به DNS بررسی شود و در صورتی که DNS سرور بر روی چیزی جز دی ان اس گوگل تنظیم است آنرا تغییر داده تا به حالتی که ما دوست داریم تغییر پیدا کند.
به طور کلی انسیبل پلیبوک همینگونه نوشته میشود و میتوانید این پایه را به خیلی حالات دیگر تغییر دهید و اتفاقاتیکه دوست دارید را در آن رقم بزنید.
امیدوارم از بحث امروز لذت برده باشید و مقدمه استفاده از انسیبل پلی بوک را به خوبی یاد گرفته باشید.
در هفته های بعد بیشتر دربارهی پلیبوک با هم بحث کرده و یاد میگیریم.
امیدوارم توضیحات من برای شما در یادگیری انسیبل کاربردی باشد.
در صورتی که انتقاد یا پیشنهادی درباره این مقاله دارید میتوانید با بنده در میان گذاشته تا سوالات شما حل شده یا در مقالات بعدی تصحیح شود.
با تشکر از تیم ابرآراز که فرصت ارائه این مقاله را در اختیار من گذاشت.
تا هفته بعد...