پشتیبانی Ansible از استفاده متغیرها جهت سفارشیسازی اجرای تسکها و Playbookها
Ansible امکان استفاده از متغیرها را فراهم میکند تا بتوانید اجرای تسکها و playbookها را بر اساس نیاز خود شخصیسازی کنید. به این ترتیب، میتوانید از یک playbook یکسان برای اهداف و محیطهای مختلف استفاده نمایید.
متغیرها میتوانند از منابع مختلفی باشند، مانند خود فایل playbook یا فایلهای متغیر خارجی که در playbook وارد میشوند. قوانین تقدم خاصی برای مواقعی که چند منبع مختلف یک متغیر با نام یکسان را تعریف میکنند، اعمال خواهد شد.
منبع قوانین تقدم متغیرها
برای دیدن عملکرد متغیرها در عمل، یک playbook تستی جدید ایجاد میکنیم که مقدار دو متغیر username و home_dir را چاپ کند. یک فایل جدید به نام playbook-02.yml در دایرکتوری ansible-practice خود ایجاد کنید:
سپس خطوط زیر را به فایل playbook جدید اضافه نمایید:
---
- hosts: all
vars:
username: "sammy"
home_dir: "/home/sammy"
tasks:
- name: Print variables
debug:
msg: "username: {{ username }} - home_dir: {{ home_dir }}"
پس از پایان ویرایش، فایل را ذخیره کنید و ببندید.
بخش vars در playbook لیستی از متغیرها را تعریف میکند که در محدوده همان play تزریق میشوند.
تمام تسکها و همچنین هر فایل یا template که ممکن است در playbook گنجانده شود، به این متغیرها دسترسی خواهند داشت.
برای اجرای این playbook روی سرورهای فایل inventory، دستور ansible-playbook را با همان پارامترهای اتصال قبلی اجرا کنید. باز هم از فایلی با نام inventory و کاربر sammy برای اتصال به سرورهای ریموت استفاده خواهیم کرد:
ansible-playbook -i inventory playbook-02.yml -u sammy
خروجی مشابه زیر خواهید دید:
TASK [Print variables] ***************************************
ok: [your_server_ip] => {
"msg": "username: sammy - home_dir: /home/sammy"
}
تسک print variables از ماژول debug برای چاپ مقادیر دو متغیر تعریفشده در بخش vars playbook استفاده میکند.
از همراهی شما با پارمین کلود متشکریم.
نظرات کاربران