پلی بوک انسیبل (Playbook) چیست ؟ چطور یک پلی بوک بنویسیم؟
امیدواریم که تا به اینجا، مقالات انسیبل را دنبال کرده و برایتان مفید بوده باشد. اکنون در این مقاله میخواهیم، پلی بوک انسیبل و اینکه چگونه یک پلی بوک انسیبل بنویسیم را برایتان توضیح دهیم. این مقاله را تا انتها دنبال کنید که موارد زیادی برای آموختن وجود دارد.
در قسمت اول این سری مجموعه، آموزش انسیبل و کاربرد انسیبل را با هم دنبال کردیم و درباره مخزن انسیبل، جایی که سرورهای هدف همراه با مشخصاتشان در آن تعریف میشوند، با یکدیگر گفتوگو کردیم؛ در قسمت بعدی نیز درباره ابزار های انسیبل که مهمترین قسمت برای کار با انسیبل هستند را مورد بررسی قرار دادیم.
در این مقاله، قصد داریم در سیستم عامل ابونتو تا شمای کلی پلی بوک انسیبل را مورد بررسی قرار دهیم. در نظر داشته باشید که این مقاله، صرفا جهت آشنایی با این مبحث، توسط تیم ابر آراز نگارش شده است؛ در آینده مقالاتی با سطح پیشرفتگی بالاتر نیز به شما ارائه خواهد شد.
پلی بوک انسیبل چیست ؟
در ابتدا دریافتیم که انسیبل قسمتهای متفاوتی دارد. داستان انسیبل، با استفاده از مخزن انسیبل که مکانی برای تجمع و دستهبندی سرورهای هدف انسیبل میباشد، شروع میشود. در این مخزن، ما میتوانیم این سری سرورها را علاوه بر معرفی و ایجاد نحوه ارتباط با آنها، دستهبندی هم بکنیم.
در ادامه با دستورات انسیبل برای تغییر در سیستم عامل های هدف، آشنا شدیم که وظیفه داشتند، کاری را که میخواهیم، در تعداد زیادی سرور انجام شود را با استفاده از این دستورات انسیبل خالی بنویسد. پس از اجرا، اتفاقی که در آن لحظه نیاز داشتیم تا در سرورهای هدف قرار گیرد اجرا خواهد شد. مفهوم نهایی که در انسیبل با آن رو به رو خواهیم شد دست بر جایی میگذارد که انسیبل به آن دلیل متولد شده است؛ مدیریت یک پارچه زیر ساخت و اتومیشن تعداد زیادی سرویس، در تعداد زیادی ماشین مجازی یا ابری.
در همین ابتدای امر، یادآور شویم که ابر آراز، از سریعترین و پرقدرتترین نرم افزار و سختافزارهای موجود، برای ارائهی سرورهای خود استفاده میکند. علاوهبر آن، رعایت استاندارهای بینالمللی در ارائهی خدمات میزبانی وبسایت، ابرآراز را به انتخاب اول بسیاری از خریداران هاست و سرور ابری تبدیل میکند. برای خرید سرور مجازی سری به وبسات ابر آراز بزنید و از دیگر خدمات ما نیز بهرهمند شوید.
درواقع، پلی بوک انسیبل (Playbook)، فایلی است که در آن میتوانیم، مراحل مختلف اجرا را تعریف کرده، هدف هر اتفاق را بررسی و در نهایت تنظیم کنیم. به عبارتی، انجام یک کار تکراری، به صورت مداوم در یک قالب منظم و مدون و بدون اشتباه. پلی بوک انسیبل ساخته شد تا کسانی که کار دواپس یا سیس ادمین میکنند، زیرساختها و خواستههای خود را در قالب یک کانفیگ فایل یا کد yml درست کرده و در ادامه، با همین ابزار، به سرعت اتفاقات مورد نظر خود را در سرورهای متعدد انجام دهند.
الگوی کلی پلی بوک انسیبل چیست ؟
الگوی کلی پلی بوک انسیبل ، یک فایل yaml,yml بوده که در آن میتوانید تسکهای مختلف، رولهای متفاوت و هدفها یا هاستهای گوناگون را تعیین نمایید. در مرحلهی بعد، با وارد کردن این فایل به دستور ansible paly-book میتوان اتفاقات را رقم زد.
فایل yml چیست؟
استاندارد نوشتاری فایلهای تنظیمات yaml یک نوع فایل با الگوی خاص نوشتاری میباشد، که در آن میتوانیم، خواستههای مورد نیاز خود را در قالب یک نوشتار الگومند و با تعدی از نوع نوشتار کلی بنویسیم. در مرحلهی بعد، با معرفی این فایل به ابزار مختلف میتوانیم استفادههای زیادی از این فایلها بکنیم.
از استفادههای این فایل میتوان به موارد زیر اشاره کرد:
- پلی بوک انسیبل (ansible playbook)
- دیپلویمنت فایلهای کوبرنیتز
- فایل netplan برای تنظیمات شبکه در توزیعهای اوبونتو
- فایل داکر کامپوز
این فایل، به مرور زمان به یک استاندارد جهانی برای فایلهای تنظیمات یا کانفیگ فایلها تبدیل میشود.
چطور یک پلی بوک انسیبل بنویسیم؟
اگر نیاز دارید، که یک سری اتفاقات پشت سر هم در یک یا چند سرور در بازه زمانیهای متعدد رخ دهد، میتوانید این فایل را به صورت Playbook انسیبل درآورید. در ابتدا یک فایل پلی بوک انسیبل کوچک نوشته و در ادامه به توضیح آن میپردازیم تا نوع نوشتاری این نوع فایل، به راحتی در اختیار شما قرار گیرد.
--- 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 سرور، بر روی چیزی جز دی ان اس گوگل تنظیم است آن را تغییر داده تا به حالتی که ما دوست داریم تغییر پیدا کند. به طور کلی، Playbook انسیبل همینگونه نوشته میشود و میتوانید این پایه را به خیلی حالات دیگر تغییر دهید و اتفاقاتیکه دوست دارید را در آن رقم بزنید.
سخن پایانی
امیدوارم از بحث امروز لذت برده و مقدمهی استفاده از پلی بوک انسیبل را به خوبی یاد گرفته باشید. ما را در وبلاگ ابر آراز دنیال کنید. در هفتههای بعد، قصد داریم، بیشتر دربارهی پلی بوک انسیبل و انسیبل Conditional با هم بحث کرده و یاد بگیریم.
در صورتی که انتقاد یا پیشنهادی دربارهی این مقاله دارید، میتوانید با ما در میان بگذارید، تا در مقالات بعدی به تفصل درمورد آنان توضیح دهیم.