5 مورد از برترین ابزار های انسیبل ؛ قسمت دوم آموزش انسیبل
در این مقاله از سری مقالات آموزش انسیبل، قصد داریم چند مورد از مهمترین ابزار های انسیبل ( ansible ) را به شما معرفی کنیم.در مقالهی قبلی با عنوان آموزش انسیبل تلاش کردیم تا مفهوم انسیبل را به تفصیل توضیح داده و در ادامه، دربارهی مخزن انسیبل که در آن سرور مجازی هدف و مشخصات آنان را در این مخازن تعریف میکنیم، گفتوگو کردیم.
حال در این مقاله، قصد داریم تا 5 مورد از برترین و پر استفادهترین ماژولها یا ابزار های انسیبل را به شما معرفی کنیم؛ با ما همراه باشید. البته در نظر داشته باشید که ابزار های انسیبل موردنظر را تنها میخواهیم به صورت جزئی بررسی کنیم و آنها به طور کامل معرفی نخواهند شد. در واقع ما تنها از نوع سادهی استفاده از این ابزار های انسیبل برای توضیح استفاده خواهیم کرد.
ابزار های انسیبل ؛ file
به طوری کلی این نوع از ابزار های انسیبل ، به شما کمک میکند که فایلهای سیستم را مدیریت کنید، از دسترسی و سطح اجازه برای اجرا شدن، خوانده شده و نوشته شدن توسط یوزرها و گروههای مختلف تا لینک کردن و دیگر امکانات.
به طور مثال این ابزار به روش رو به رو نوشته و استفاده میشود:
name: Change file ownership, group and permissions _ :ansible.builtin.file path: /etc/foo.conf owner: foo group: foo 'mode: '0644
چهار آرگومانت path، owner، group و mode ، آرگومانتهای اصلی این ابزار میباشند.
آرگومانت اول path
این قسمت وظیفه آدرس دهی فایل مقصد را بر عهده دارد.
آرگومانت دوم owner
در این قسمت تعریف میکنیم که در سیستم سازنده این فایل و یوزری که دسترسی کامل به این فایل دارد چه کسی تعریف شود.
آرگومانت سوم group
در این قسمت، گروهی که اجازه دسترسی به این فایل را دارند قرار داده میشوند.
آرگومانت چهارم mode
در این قسمت حالت اجرایی فایل با استفاده از کدهای مختصری که کاملا شبیه عددی میباشد که در دستور chmod استفاده میکنیم قرار داده میشود.
ابزار های انسیبل ؛ include
در این ابزار میتوانیم یک فایل که یک تسک یا پلی در آن قرار دارد را استفاده کنیم. به طور مثال در نظر داشته باشید که داخل یک پلیبوک میخواهید در یک سری از سرورهای تعریف شده در مخزن یک پلی دیگر که در فایل دیگری گذاشته اید اجرا شود؛ در همچین موقعی میتوانیم از ابزار include استفاده کنیم.
نحوه نوشتار عادی این ابزار در داخل یک پلی بوک به صورت زیر میباشد:
name: Include a play after another play _ include: otherplays.yaml
در این قسمت از پلی بوک فایلی که بعد از include معرفی شده در سرور(های) هدف اجرا خواهد شد.
ابزار های انسیبل ؛ template
این ابزار یک تغییر دهنده و ایجاد کننده فایل است که بر اساس استاندارد زبان jinja2 کار میکند.
شما میتوانید با استفاده از این ابزار یک فایل j2 در هاست خود ساخته و با توجه به ساختار نوشتار خودتان این فایل را با یک فایل در داخل سرور مجازی هدف تغییر دهید. در نظر داشته باشید که این روش برای تنظیم فایلهای متفاوت در تعداد زیادی سرور استفاده میشود.
ابزار template به روش زیر استفاده میشود:
name: Template a file to /etc/file.conf - :ansible.builtin.template src: /mytemplates/foo.j2 dest: /etc/file.conf owner: bin group: wheel 'mode: '0644
آرگومانت src
این قسمت فایل مبدا که در داخل دستگاه ارائه دهنده انسیبل ( ansible )میباشد را نشان میدهد و آدرس این فایل j2 را باید در این قسمت بنویسیم.
آرگومانت dest
فایلی که در جلو این آرگومانت قرار میگیرد فایل میباشد که در سرور مجازی هدف تغییر میکند.
آرگومانت owner
این قسمت سازنده فایل و یوزری که در سیستم عامل اجازه دسترسی به این فایل دارد رو نمایانگر میکند.
آرگومانت group
این قسمت، گروهی که به این فایل دسترسی دارند را نشان داده و به آنها اجازه میدهد تا از محتوای فایل ساخته شده در مقصد استفاده کنند.
آرگومانت mode
در این قسمت، حالت اجرایی فایل با استفاده از کدهای مختصری که کاملا شبیه عددی میباشد که در دستور chmod استفاده میکنیم قرار داده میشود.
ابزار های انسیبل ؛ command
این ابزار وظیفه دارد که دستوری که به آن میدهید را در سرور هدف اجرا کند.
تنها ملاحظاتی که درباره این دستور وجود دارد این است که در فضای shell اجرا نمیشود؛ در نتیجه تمامی متغیرها از قبیل $HOSTNAME در این دستور کارها نبوده و همچنین علائمی مانند | در این دستور به دلیل این که در محیط غیر قابل اجرا میباشد.
این ابزار ساخته نشده که دستورات در سرور با آن اجرا شوند. دلیل ساخت این ابزار این است که اجرای دستورات در شرایط خاص مورد بررسی قرار بگیرد.
نحوه استفاده از این دستور در داخل پلی بوک به روش رو به رو میباشد:
name: Run command if /path/to/database does not exist (with 'args' keyword) - ansible.builtin.command: /usr/bin/make_database.sh db_user db_name :args creates: /path/to/database
در متن بالا جلوی اسم ابزار فایل اجراییای که باید در آن هنگام اجرا شود نوشته شده و همچنین دو آرگومانت db_user و db_name به این فایل فرستاده شده اند.
این دستور با این دو آرگومانت در صورتی ساخته میشود که فایل /path/to/database در سرور وجود نداشته باشد.
ابزار های انسیبل ؛ service
در هنگام استفاده از این ابراز انسیبل قرار نیست کار عجیبی انجام گیرد؛ صرفا قرار است که یک سرویس در سیستم عامل هدف در شرایطی قرار گیرد که ما از آن انتظار داریم.
به طور مثال فکر کنید نیاز دارید که سرویس httpd در قسمتی از کار حتما روشن باشد. برای این کار اصولیترین اتفاق آن است که از این سرویس استفاده کنید. دلیل این موضوع آن است که در هنگام اجرای دستور توسط ابزار command یا shell امکان خطا در اجرا وجود دارد؛ ولی وقتی از این ابزار استفاده میکنیم انسیبل ( ansible ) حتما این کار را انجام خواهد داد و در صورت عدم موفقیت حتما خارج میشود.
برای انجام این اتفاق میتوانیم درخواست خود را در فایل پلی بود اینگونه ثبت کنیم:
name: Start service httpd, if not started - :ansible.builtin.service name: httpd state: started
سخن پایانی
این مقاله، قسمت دوم از سری آموزشهای کاربردی انسیبل ( ansible ) است که قصد داریم به صورت هفتگی آن را پیش ببریم. امیدواریم که معرفی ابزار های انسیبل برای شما کاربردی بوده باشد. اگر انتقاد یا پیشنهادی درباره این سری مقالات دارید، میتوانید با تیم آراز در میان بگذارید تا به آنان پاسخ دهیم. در مقالهی بعدی، ما در مورد پلی بوک انسیبل صحبت کردیم. پیشنهاد میکنیم، فرصت مطالعهی این مقاله را از دست ندهید.