در مورد Playbook Ansible برای خودکار کردن کارها بیاموزید

برای خودکار کردن کارها ، در مورد Playbook Ansible اطلاعات کسب کنید.


پیش از این ، درباره معرفی مسؤول ، راهنمای نصب و موارد بعدی بحث کرده ایم ، بگذارید در مورد Playbook و بلوک های ساختمانی آن صحبت کنیم.

Playbook قابل قبول چیست؟?

دفترچه بازی زبان اتوماسیون قابل قبول است. این یک فایل ساده با مجموعه ای از دستورالعمل ها است. این در کتابهای پخش است که ما آنچه را که می خواهیم پاسخ مناسب را تعریف کند ، تعریف می کنیم. Playbooks شامل نمایشنامه هایی است که وظایف را اجرا می کنند و این وظایف ماژول ها را اجرا می کنند. وظایف آنها به صورت متوالی انجام می شود.

به عنوان مثال ، می تواند به سادگی اجرای یک سری دستور روی سرورهای مختلف به صورت متوالی و مجدداً تنظیم مجدد آن سرورها باشد. یا می تواند به اندازه استقرار و تأمین صدها VM در یک ابر عمومی و خصوصی از جمله توازن بار ، نظارت ، راه اندازی شبکه ، پیچیده باشد..

زبان Playbook

کتابهای پخش فایلهای ساده ای هستند که با کد YAML نوشته شده اند.

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

در زیر یک نمونه از پرونده YAML برای نصب mysql آورده شده است:


– نام: نصب MySQL
میزبان: geekflare-mysql-service
وظایف:
– نام: نصب MySQL
عمل: $ ansible_pkg_mgr pkg = حالت سرور mysql = نصب شده
– name: Python MySQL DB را اضافه کنید
عمل: $ ansible_pkg_mgr pkg = حالت پایتون-mysqldb = نصب شده

مبانی نامه قابل قبول Playbook

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

میزبان و کاربران

پاسخ های نیازمند دستگاه های هدف در زیرساخت هایی است که نمایشنامه ها از آن استفاده می شود. میزبان ها از طریق آدرس های IP خود به موجودی Ansible اضافه می شوند. هاست ها لیستی از یک یا چند گروه یا الگوهای میزبان است که توسط یک روده بزرگ از هم جدا شده اند. Remote_user حاوی نام حساب کاربری است.


– میزبان: ProdServers
remote_user: geekflare

متغیرها

متغیرها به شما امکان می دهند نحوه اجرای یک دفترچه بازی را تغییر دهید. آنها می توانند تقریباً در همه جا در playbook مورد استفاده قرار گیرند و می توانند از یک موجودی که به صراحت در زمان اجرا تنظیم شده است ، کشف شود که در ابتدای اجرای یک playbook کشف شده است. شما می توانید یک نام متغیر را با استفاده از حروف ، اعداد و زیرین تعریف کنید ، اما فقط باید با یک حرف شروع شود.

به عنوان مثال ، port_01 یک متغیر معتبر است ، در حالی که 01_post یک متغیر نامعتبر است. در اینجا مثالی از متغیرهای موجود در یک لیست پخش حساس آورده شده است:

vars:
http_port: 80
max_clients: 200

موجودی ها

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

همچنین می توانید یک متغیر را به عنوان بخشی از لیست موجودی ها تعیین کنید. موجودی ها نهایتا لیستی از مواردی است که می خواهید به صورت خودکار در سراسر کشور انجام دهید.

[سرور]
192.168.20.1
192.168.20.2
192.168.20.4
[dbservers]
172.17.1.56
172.17.1.57

وظایف

کارهای مربوط به اجرای دفترچه پخش را پخش می کند. وظیفه اجرای ماژول های قابل اعتماد است. در هر زمان ، فقط یک کار می تواند انجام شود ، و کارها به ترتیب متوالی انجام می شوند. وظایف آنها به زبان YAML نوشته شده است ، که تقریباً شبیه زبان انگلیسی است.

به عنوان مثال: install pack_name ، Update software_name و غیره را در زیر مثالی از یک کار در دفترچه بازی Ansible برای نصب httpd آورده است:

وظایف:
– نام: نصب پکیج httpd
yum: name = حالت httpd = آخرین

دستگیرها

هندلرها نوع خاصی از کارها هستند.

آنها را می توان با یک کار شروع کرد و یک بار در پایان بازی اجرا می شود. در صورت وجود تغییر در پرونده پیکربندی ، برای ارسال نوتیفیکیشن استفاده می شود ، به عنوان مثال ، به سرویس اطلاع دهید تا پس از نصب ، آپاچی را شروع کند. نحو “اعلان” برای تماس گیرندگان استفاده می شود. در زیر مثالی از کنترل کننده برای شروع مجدد آپاچی آورده شده است:


– میزبان: همه
وظایف:
– name: اطمینان حاصل شود که apache آخرین نسخه است
yum: name = حالت httpd = آخرین
اعلام کردن:
– راه اندازی مجدد آپاچی
– name: اطمینان حاصل کنید که آپاچ در حال اجرا است (و آن را در صورت راه اندازی فعال کنید)
سرویس: name = وضعیت httpd = فعال شده = بله
دستگیرندگان:
– نام: راه اندازی مجدد آپاچی
سرویس: name = وضعیت httpd = دوباره شروع شد

اولین نسخه قابل اعتماد Playbook خود را ایجاد و اجرا کنید

بگذارید برای شما تعریف کنم که چگونه یک دفترچه بازی بنویسید. هر کتاب پخش با سه خط (-) در قسمت بالا شروع می شود.

اولین چیزی که در یک Playbook Ansible به آن اشاره می کنید ماشین های میزبان است که می خواهید از طریق آن Playbook را اجرا کنید.

سپس می توانید متغیرها را با جمع آوری حقایق ذکر کنید؛ سپس می توانید کارهای مختلفی را که می خواهید انجام دهید ذکر کنید. حال به یاد داشته باشید که کار به همان ترتیبی که شما آنها را می نویسید اجرا می شود. به عنوان مثال ، شما می خواهید ابتدا نرم افزار A و سپس نرم افزار B را نصب کنید ، اطمینان حاصل کنید که اولین کار نوشته شده در playbook نصب نرم افزار A است و کار بعدی می تواند نرم افزار B را نصب کند..

سپس شما باید دستگیره ها را در پایین قرار دهید. کنترل کننده ها وظایف دیگری نیز دارند ، اما تفاوت این است که در صورت دستیابی به هندلرها ، شما باید در لیست کارها به نوعی از عوامل ایجاد کننده برای اجرای هکرها کمک کنید..

اجازه دهید من به شما نشان دهم که چگونه یک دفترچه بازی سازنده ایجاد کنید تا nginx را روی میزبان نصب و شروع کنید.

یک فایل .yml ایجاد کنید که کدهای YAML خود را برای ایجاد یک لیست پخش حساس در اختیار شما قرار می دهد.

gedit nginx.yml

کد YAML زیر را در این پرونده قرار داده و پرونده را ذخیره کنید.


– میزبان: مشتری
سودو: بله
vars:
– server_port: 8080

وظایف:
– name: سرور وب nginx را نصب می کند
apt: pkg = حالت nginx = نصب شده update_cache = true
اعلام کردن:
– شروع nginx

دستگیرندگان:
– نام: شروع nginx
سرویس: name = state nginx = شروع شد

پرونده YAML فوق با میزبان ها شروع می شود ، من می خواهم این کتاب پخش را روی دستگاه مشتری (Client) اجرا کنم. آدرس IP مشتری قبلاً در پرونده / etc / ansible / host ها ذخیره شده است.

خط بعدی اجازه می دهد تا وظایف را با امتیازات sudo انجام دهید.

سپس من server_port را به عنوان متغیری در این لیست پخش تعریف کردم.

سپس اولین وظیفه من در این دفترچه بازی مناسب برای نصب سرور وب Nginx است. این کار همچنین دارای پارامتر اعلان است ، که بدین معنی است که پس از این کار ، یک کنترل کننده اجرا با run.

سرانجام ، من یک Handler برای شروع nginx در دستگاه مشتری نوشته‌ام.

اکنون که با کدهای YAML موجود در دفترچه بازی مناسب مشخص نیستید ، باید Play Play را اجرا کنیم. در زیر نحو برای اجرای یک لیست پخش نامناسب است:

ansible-playbook file_name.yml

اکنون ، من playbook ansible را که ایجاد می کنم برای نصب و شروع nginx اجرا می کنم.

[ایمیل محافظت شده]: / home / geekflare # ansible-playbook nginx.yml

PLAY [Client] ************************************************ ********************

کار [جمع آوری حقایق] ********************************************** ************
ok: [node1]

کار [نصب سرور وب nginx] ******************************************** ****

تغییر کرد: [node1]

در حال اجرا [شروع nginx] ******************************************* ******
ok: [node1]

PLAY RECAP ************************************************** *********************
node1: ok = 3 تغییر = 1 غیرقابل دستیابی = 0 شکست خورده = 0 پرش = 0 نجات = 0 نادیده گرفته = 0

دستور زیر را اجرا کنید تا بررسی کنید آیا سرور nginx نصب شده است یا به طور صحیح توسط دفترچه بازی سازگار آغاز شده است.

[ایمیل محافظت شده]: / home / geekflare # ps wux | grep nginx
root 3021 0.0 0.0 0.0 77676 1516؟ Ss 15:27 0:00 nginx: master master / usr / sbin / nginx -g daemon on؛ master_process در؛

نتیجه

این مربوط به کتاب بازی Ansible بود. امیدوارم این مقاله به شما کمک کند تا یاد بگیرید که چگونه می توانید یک کتاب بازی Ansible را ایجاد و اجرا کنید. اینو ببین دوره, اگر می خواهید مباحث پیشرفته را در Ansible ، از جمله نقش ها ، Jinja2 ، جستجو ، فیلتر ، ماژول های سفارشی بیاموزید.

برچسب ها:

  • پاسخگو

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map