Red Hat Ansible Engine 2.9 کی آئندہ ریلیز دلچسپ بہتری لاتی ہے، جن میں سے کچھ پر اس مضمون میں بحث کی گئی ہے۔ ہمیشہ کی طرح، ہم کمیونٹی سپورٹ کے ساتھ کھلے عام جوابدہ نیٹ ورک کی بہتری کو تیار کر رہے ہیں۔ ہمارے ساتھ شامل ہوں - پر ایک نظر ڈالیں۔
جیسا کہ ہم نے حال ہی میں اعلان کیا،
- اریستا EOS
- سسکو IOS
- سسکو IOS XR
- سسکو NX-OS
- جونیپر جونوس
- VyOS
ان پلیٹ فارمز کی مکمل فہرست کے لیے جو جوابی آٹومیشن سبسکرپشن کے ذریعے ریڈ ہیٹ کے ذریعے مکمل طور پر سپورٹ کرتے ہیں،
ہم نے کیا سیکھا ہے۔
پچھلے چار سالوں میں، ہم نے نیٹ ورک آٹومیشن پلیٹ فارم تیار کرنے کے بارے میں بہت کچھ سیکھا ہے۔ ہم نے یہ بھی سیکھا۔ کے طور پر پلیٹ فارم کے نمونے جوابدہ پلے بکس اور آخری صارفین کے کرداروں میں استعمال ہوتے ہیں۔ اور ہمیں جو پتہ چلا وہ یہ ہے:
- تنظیمیں صرف ایک نہیں بلکہ بہت سے دکانداروں سے خودکار آلات ہیں۔
- آٹومیشن نہ صرف ایک تکنیکی رجحان ہے، بلکہ ایک ثقافتی بھی ہے۔
- آٹومیشن ڈیزائن کے بنیادی تعمیراتی اصولوں کی وجہ سے بڑے پیمانے پر نیٹ ورکس کو خودکار بنانا اس سے کہیں زیادہ مشکل ہے۔
جب ہم نے ایک سال پہلے اپنے طویل مدتی ترقی کے منصوبوں پر تبادلہ خیال کیا تو ہمارے کارپوریٹ کلائنٹس نے درج ذیل کے لیے کہا:
- حقائق کو جمع کرنے کو تمام آلات پر بہتر معیاری اور آٹومیشن ورک فلو کے ساتھ منسلک کرنے کی ضرورت ہے۔
- ڈیوائس پر کنفیگریشنز کو اپ ڈیٹ کرنے کے لیے بھی معیاری اور مستقل ہونے کی ضرورت ہے تاکہ جوابدہ ماڈیول حقائق کو جمع کرنے کے بعد سائیکل کے دوسرے نصف حصے کو سنبھال سکیں۔
- ہمیں آلہ کی ترتیب کو سٹرکچرڈ ڈیٹا میں تبدیل کرنے کے لیے سخت اور معاون طریقوں کی ضرورت ہے۔ اس بنیاد پر، سچائی کے ماخذ کو نیٹ ورک ڈیوائس سے منتقل کیا جا سکتا ہے۔
حقیقت میں بہتری
Ansible کا استعمال کرتے ہوئے نیٹ ورک ڈیوائسز سے حقائق اکٹھا کرنا اکثر بے ترتیب ہوتا ہے۔ ویب پر مبنی پلیٹ فارمز میں حقائق کو جمع کرنے کی صلاحیتوں کی مختلف ڈگریاں ہوتی ہیں، لیکن ان کے پاس کلیدی قدر کے جوڑوں میں ڈیٹا کی نمائندگی کو پارس کرنے اور معیاری بنانے کے لیے بہت کم یا کوئی فعالیت نہیں ہے۔ پڑھیں
آپ نے ہمیں جوابدہ نیٹ ورک انجن کے کردار پر کام کرتے دیکھا ہوگا۔ قدرتی طور پر، 24K ڈاؤن لوڈز کے بعد، نیٹ ورک انجن کا کردار تیزی سے نیٹ ورک آٹومیشن کے منظرناموں کے لیے Ansible Galaxy میں سب سے زیادہ مقبول Ansible کرداروں میں سے ایک بن گیا ہے۔ اس سے پہلے کہ ہم جوابی 2.8 میں اس کی تیاری کے لیے اس میں سے زیادہ تر کو Ansible 2.9 میں منتقل کریں، اس Ansible کردار نے کمانڈز کو پارس کرنے، کمانڈز کو منظم کرنے اور نیٹ ورک ڈیوائسز کے لیے ڈیٹا اکٹھا کرنے میں مدد کے لیے ٹولز کا پہلا سیٹ فراہم کیا۔
اگر آپ جانتے ہیں کہ نیٹ ورک انجن کو کس طرح استعمال کرنا ہے، تو یہ جواب میں استعمال کے لیے حقائق کے ڈیٹا کو جمع کرنے، تجزیہ کرنے اور معیاری بنانے کا ایک بہت ہی موثر طریقہ ہے۔ اس کردار کا نقصان یہ ہے کہ آپ کو ہر پلیٹ فارم اور نیٹ ورک کی تمام سرگرمیوں کے لیے تجزیہ کاروں کا ایک پورا گروپ بنانے کی ضرورت ہے۔ یہ سمجھنے کے لیے کہ پارسر بنانا، بھیجنا اور برقرار رکھنا کتنا مشکل ہے، اس پر ایک نظر ڈالیں۔
مختصراً، آلات سے حقائق حاصل کرنا اور انہیں کلیدی قدر کے جوڑوں میں معمول بنانا بڑے پیمانے پر آٹومیشن کے لیے ضروری ہے، لیکن جب آپ کے پاس بہت سے وینڈرز اور نیٹ ورک پلیٹ فارمز ہوں تو اسے حاصل کرنا مشکل ہوتا ہے۔
جوابدہ 2.9 میں ہر نیٹ ورک فیکٹ ماڈیول اب نیٹ ورک ڈیوائس کی کنفیگریشن کا تجزیہ کر سکتا ہے اور سٹرکچرڈ ڈیٹا واپس کر سکتا ہے - بغیر اضافی لائبریریوں، جوابی کرداروں یا کسٹم پارسر کے۔
Ansible 2.9 کے بعد سے، ہر بار ایک اپ ڈیٹ کردہ نیٹ ورک ماڈیول جاری کیا جاتا ہے، حقیقت ماڈیول کو ترتیب کے اس حصے کے بارے میں ڈیٹا فراہم کرنے کے لیے بہتر کیا جاتا ہے۔ یعنی، حقائق اور ماڈیولز کی ترقی اب ایک ہی رفتار سے ہوتی ہے، اور ان میں ہمیشہ ایک مشترکہ ڈیٹا ڈھانچہ ہوگا۔
نیٹ ورک ڈیوائس پر وسائل کی ترتیب کو دو طریقوں سے بازیافت اور ساختی ڈیٹا میں تبدیل کیا جا سکتا ہے۔ دونوں طریقوں سے، آپ نئے مطلوبہ الفاظ کا استعمال کرتے ہوئے وسائل کی ایک مخصوص فہرست کو جمع اور تبدیل کر سکتے ہیں۔ gather_network_resources
. وسائل کے نام ماڈیول کے ناموں سے ملتے ہیں، جو کہ بہت آسان ہے۔
حقائق جمع کرتے وقت:
کلیدی لفظ استعمال کرنا gather_facts
آپ پلے بک کے شروع میں موجودہ ڈیوائس کنفیگریشن کو بازیافت کر سکتے ہیں، اور پھر اسے پوری پلے بک میں استعمال کر سکتے ہیں۔ آلہ سے بازیافت کیے جانے والے انفرادی وسائل کی وضاحت کریں۔
- hosts: arista
module_defaults:
eos_facts:
gather_subset: min
gather_network_resources:
- interfaces
gather_facts: True
آپ نے ان مثالوں میں کچھ نیا دیکھا ہوگا، یعنی - gather_facts: true
اب نیٹ ورک ڈیوائسز کے لیے مقامی حقائق جمع کرنے کے لیے دستیاب ہے۔
نیٹ ورک فیکٹ ماڈیول کا براہ راست استعمال کرنا:
- name: collect interface configuration facts
eos_facts:
gather_subset: min
gather_network_resources:
- interfaces
پلے بک انٹرفیس کے بارے میں درج ذیل حقائق واپس کرتی ہے۔
ansible_facts:
ansible_network_resources:
interfaces:
- enabled: true
name: Ethernet1
mtu: '1476'
- enabled: true
name: Loopback0
- enabled: true
name: Loopback1
- enabled: true
mtu: '1476'
name: Tunnel0
- enabled: true
name: Ethernet1
- enabled: true
name: Tunnel1
- enabled: true
name: Ethernet1
غور کریں کہ کس طرح Ansible اریسٹا ڈیوائس سے مقامی کنفیگریشن کو بازیافت کرتا ہے اور اسے اسٹرکچرڈ ڈیٹا میں تبدیل کرتا ہے تاکہ اسے نیچے کی دھارے کے کاموں اور آپریشنز کے لیے معیاری کلیدی قدر کے جوڑے کے طور پر استعمال کیا جا سکے۔
انٹرفیس حقائق کو جوابدہ ذخیرہ شدہ متغیرات میں شامل کیا جا سکتا ہے اور وسائل کے ماڈیول میں ان پٹ کے طور پر فوری یا بعد میں استعمال کیا جا سکتا ہے۔ eos_interfaces
اضافی پروسیسنگ یا تبدیلی کے بغیر۔
وسائل کے ماڈیولز
لہذا، ہم نے حقائق کو نکالا، ڈیٹا کو نارمل کیا، انہیں معیاری اندرونی ڈیٹا ڈھانچے کے خاکے میں فٹ کیا اور سچائی کا ایک ریڈی میڈ ذریعہ حاصل کیا۔ ہورے! یقیناً یہ بہت اچھا ہے، لیکن ہمیں پھر بھی کسی نہ کسی طرح کلیدی قدر کے جوڑوں کو اس مخصوص ترتیب میں تبدیل کرنے کی ضرورت ہے جس کی مخصوص ڈیوائس پلیٹ فارم کو توقع ہے۔ اب ہمیں ان نئے حقائق کو جمع کرنے اور معمول پر لانے کی ضروریات کو پورا کرنے کے لیے پلیٹ فارم کے لیے مخصوص ماڈیولز کی ضرورت ہے۔
ریسورس ماڈیول کیا ہے؟ آپ کسی ڈیوائس کے کنفیگریشن سیکشنز کو اس ڈیوائس کے ذریعہ فراہم کردہ وسائل کے طور پر سوچ سکتے ہیں۔ نیٹ ورک ریسورس ماڈیولز جان بوجھ کر ایک ہی وسائل تک محدود ہیں اور پیچیدہ نیٹ ورک سروسز کو ترتیب دینے کے لیے بلڈنگ بلاکس کی طرح اسٹیک کیے جا سکتے ہیں۔ نتیجے کے طور پر، وسائل کے ماڈیول کے لیے ضروریات اور تفصیلات قدرتی طور پر آسان ہو جاتی ہیں، کیونکہ وسائل کا ماڈیول پڑھ سکتا ہے۔ и نیٹ ورک ڈیوائس پر ایک مخصوص نیٹ ورک سروس کو ترتیب دیں۔
یہ بتانے کے لیے کہ ریسورس ماڈیول کیا کرتا ہے، آئیے ایک مثال پلے بک دیکھیں جو نئے نیٹ ورک ریسورس فیکٹس اور ماڈیول کا استعمال کرتے ہوئے ایک آئیڈیمپوڈنٹ آپریشن دکھاتی ہے۔ eos_l3_interface
.
- name: example of facts being pushed right back to device.
hosts: arista
gather_facts: false
tasks:
- name: grab arista eos facts
eos_facts:
gather_subset: min
gather_network_resources: l3_interfaces
- name: ensure that the IP address information is accurate
eos_l3_interfaces:
config: "{{ ansible_network_resources['l3_interfaces'] }}"
register: result
- name: ensure config did not change
assert:
that: not result.changed
جیسا کہ آپ دیکھ سکتے ہیں، ڈیوائس سے جمع کردہ ڈیٹا کو بغیر کسی تبدیلی کے براہ راست متعلقہ وسائل کے ماڈیول میں منتقل کیا جاتا ہے۔ لانچ ہونے پر، پلے بک ڈیوائس سے قدریں بازیافت کرتی ہے اور ان کا متوقع اقدار سے موازنہ کرتی ہے۔ اس مثال میں، واپس کی گئی قدریں توقع کے مطابق ہیں (یعنی یہ کنفیگریشن انحراف کی جانچ کرتا ہے) اور رپورٹ کرتا ہے کہ آیا کنفیگریشن بدل گئی ہے۔
کنفیگریشن ڈرفٹ کا پتہ لگانے کا مثالی طریقہ جوابدہ ذخیرہ شدہ متغیرات میں حقائق کو ذخیرہ کرنا اور وقتاً فوقتاً انسپکشن موڈ میں ریسورس ماڈیول کے ساتھ استعمال کرنا ہے۔ یہ دیکھنے کا ایک آسان طریقہ ہے کہ آیا کسی نے اقدار کو دستی طور پر تبدیل کیا ہے۔ زیادہ تر معاملات میں، تنظیمیں دستی طور پر تبدیلیوں اور کنفیگریشن کی اجازت دیتی ہیں، حالانکہ بہت سے آپریشنز Ansible Automation کے ذریعے کیے جاتے ہیں۔
نئے وسائل کے ماڈیول پچھلے ماڈیولز سے کیسے مختلف ہیں؟
نیٹ ورک آٹومیشن انجینئر کے لیے، جوابی 3 اور پچھلے ورژن میں وسائل کے ماڈیولز کے درمیان 2.9 اہم فرق ہیں۔
1) دیئے گئے نیٹ ورک کے وسائل کے لیے (جس کے بارے میں کنفیگریشن سیکشن کے طور پر بھی سوچا جا سکتا ہے)، ماڈیولز اور حقائق بیک وقت تمام تعاون یافتہ نیٹ ورک آپریٹنگ سسٹمز میں تیار ہوں گے۔ ہمارا خیال ہے کہ اگر Ansible ایک نیٹ ورک پلیٹ فارم پر وسائل کی ترتیب کو سپورٹ کرتا ہے، تو ہمیں اسے ہر جگہ سپورٹ کرنا چاہیے۔ یہ وسائل کے ماڈیولز کے استعمال کو آسان بناتا ہے کیونکہ ایک نیٹ ورک آٹومیشن انجینئر اب مقامی اور معاون ماڈیولز کے ساتھ تمام نیٹ ورک آپریٹنگ سسٹمز پر وسائل (جیسے LLDP) کو ترتیب دے سکتا ہے۔
2) وسائل کے ماڈیولز میں اب ریاستی قدر شامل ہے۔
merged
: کنفیگریشن کو فراہم کردہ کنفیگریشن (پہلے سے طے شدہ) کے ساتھ ملا دیا جاتا ہے۔replaced
: وسائل کی ترتیب کو فراہم کردہ کنفیگریشن سے بدل دیا جائے گا۔overridden
: وسائل کی ترتیب کو فراہم کردہ کنفیگریشن سے بدل دیا جائے گا۔ غیر ضروری وسائل کی مثالیں حذف کر دی جائیں گی۔deleted
: وسائل کی ترتیب کو ڈیفالٹ پر حذف/بحال کر دیا جائے گا۔
3) وسائل کے ماڈیولز میں اب مستحکم واپسی کی قدریں شامل ہیں۔ جب نیٹ ورک ریسورس ماڈیول نے نیٹ ورک ڈیوائس میں ضروری تبدیلیاں کی ہیں (یا تجویز کی ہیں)، تو یہ پلے بک میں وہی کلیدی قدر کے جوڑے لوٹاتا ہے۔
before
: کام سے پہلے سٹرکچرڈ ڈیٹا کی شکل میں ڈیوائس پر کنفیگریشن؛after
: اگر آلہ تبدیل ہو گیا ہے (یا ٹیسٹ موڈ استعمال ہونے پر تبدیل ہو سکتا ہے)، نتیجے میں آنے والی ترتیب کو سٹرکچرڈ ڈیٹا کے طور پر واپس کر دیا جائے گا۔commands
: کوئی بھی کنفیگریشن کمانڈ ڈیوائس کو مطلوبہ حالت میں لانے کے لیے اس پر چلتی ہے۔
اس سب کا کیا مطلب ہے؟ یہ کیوں ضروری ہے؟
اس پوسٹ میں بہت سارے پیچیدہ تصورات کا احاطہ کیا گیا ہے، لیکن ہم امید کرتے ہیں کہ آخر میں آپ کو اس بات کی بہتر تفہیم ہوگی کہ انٹرپرائز کلائنٹس حقیقت میں جمع کرنے، ڈیٹا کو معمول پر لانے، اور آٹومیشن پلیٹ فارم کے لیے لوپ کنفیگریشن کے لیے کیا مانگ رہے ہیں۔ لیکن انہیں ان اصلاحات کی ضرورت کیوں ہے؟ بہت سی تنظیمیں اب اپنے آئی ٹی ماحول کو زیادہ چست اور مسابقتی بنانے کے لیے ڈیجیٹل تبدیلی کی پیروی کر رہی ہیں۔ بہتر یا بدتر کے لیے، بہت سے نیٹ ورک انجینئرز نیٹ ورک ڈویلپر بن جاتے ہیں یا تو ذاتی مفاد سے یا انتظامیہ کے کہنے پر۔
تنظیمیں یہ سمجھ رہی ہیں کہ انفرادی نیٹ ورک ٹیمپلیٹس کو خودکار کرنے سے سائلو کا مسئلہ حل نہیں ہوتا اور صرف ایک حد تک کارکردگی میں اضافہ ہوتا ہے۔ Red Hat Ansible Automation پلیٹ فارم نیٹ ورک ڈیوائس پر بنیادی ڈیٹا کو پروگرام کے مطابق منظم کرنے کے لیے سخت اور معیاری وسائل کے ڈیٹا ماڈل فراہم کرتا ہے۔ یعنی صارفین بتدریج انفرادی کنفیگریشن کے طریقوں کو ترک کر رہے ہیں اور زیادہ جدید طریقوں کے حق میں ٹیکنالوجیز پر زور دے رہے ہیں (مثال کے طور پر IP ایڈریسز، VLANs، LLDP، وغیرہ)، بجائے کسی مخصوص وینڈر کے نفاذ کے۔
کیا اس کا مطلب یہ ہے کہ قابل اعتماد اور ثابت شدہ کمانڈ ماڈیولز اور کنفیگریشن کے دن گنے جا چکے ہیں؟ کسی صورت میں نہیں۔ متوقع نیٹ ورک ریسورس ماڈیولز تمام صورتوں میں یا ہر وینڈر کے لیے لاگو نہیں ہوں گے، اس لیے کمانڈ اور کنفیگریشن ماڈیولز کی ضرورت اب بھی نیٹ ورک انجینئرز کو کچھ نفاذ کے لیے درکار ہوگی۔ وسائل کے ماڈیولز کا مقصد بڑے جنجا ٹیمپلیٹس کو آسان بنانا اور غیر ساختہ ڈیوائس کنفیگریشنز کو ایک سٹرکچرڈ JSON فارمیٹ میں معمول بنانا ہے۔ وسائل کے ماڈیولز کے ساتھ، موجودہ نیٹ ورکس کے لیے یہ آسان ہو جائے گا کہ وہ اپنی کنفیگریشن کو ساختی کلیدی قدر کے جوڑوں میں تبدیل کریں جو سچائی کے پڑھنے میں آسان ذریعہ کی نمائندگی کرتے ہیں۔ سٹرکچرڈ کلیدی قدر کے جوڑے استعمال کر کے، آپ ہر ڈیوائس پر کنفیگریشن چلانے سے لے کر آزاد سٹرکچرڈ ڈیٹا کے ساتھ کام کر سکتے ہیں اور نیٹ ورکس کو بنیادی ڈھانچے کے طور پر کوڈ کے نقطہ نظر کے سامنے لا سکتے ہیں۔
جوابی انجن 2.9 میں کون سے وسائل کے ماڈیولز آئیں گے؟
اس سے پہلے کہ ہم آپ کو تفصیل سے بتائیں کہ جواب 2.9 میں کیا ہوگا، آئیے یاد رکھیں کہ ہم نے کام کے پورے دائرہ کار کو کس طرح تقسیم کیا۔
ہم نے 7 زمروں کی نشاندہی کی اور ہر ایک کو مخصوص نیٹ ورک وسائل تفویض کیے:
نوٹ: بولڈ میں وسائل کی منصوبہ بندی کی گئی تھی اور جوابی 2.9 میں لاگو کیا گیا تھا۔
انٹرپرائز صارفین اور کمیونٹی کے تاثرات کی بنیاد پر، نیٹ ورک ٹوپولوجی پروٹوکول، ورچوئلائزیشن، اور انٹرفیس سے متعلق ان ماڈیولز سے پہلے نمٹنا منطقی تھا۔
مندرجہ ذیل وسائل کے ماڈیولز جوابدہ نیٹ ورک ٹیم کے ذریعہ تیار کیے گئے ہیں اور یہ Red Hat کے تعاون یافتہ پلیٹ فارم سے مطابقت رکھتے ہیں:
درج ذیل ماڈیولز جوابدہ کمیونٹی کے ذریعہ تیار کیے گئے ہیں:
exos_lldp_global
- ایکسٹریم نیٹ ورکس سے۔nxos_bfd_interfaces
- سسکو سےnxos_telemetry
- سسکو سے
جیسا کہ آپ دیکھ سکتے ہیں، وسائل کے ماڈیولز کا تصور ہماری پلیٹ فارم پر مرکوز حکمت عملی میں فٹ بیٹھتا ہے۔ یعنی، ہم نیٹ ورک ماڈیولز کی ترقی میں معیاری کاری کی حمایت کرنے کے لیے، اور جواب دہ کرداروں اور پلے بکس کی سطح پر صارفین کے کام کو آسان بنانے کے لیے خود Ansible میں ضروری صلاحیتوں اور افعال کو شامل کرتے ہیں۔ وسائل کے ماڈیولز کی ترقی کو بڑھانے کے لیے، جواب دینے والی ٹیم نے ماڈیول بلڈر ٹول جاری کیا۔
جوابدہ 2.10 اور اس سے آگے کے منصوبے
Ansible 2.9 کے جاری ہونے کے بعد، ہم Ansible 2.10 کے لیے وسائل کے ماڈیولز کے اگلے سیٹ پر کام کریں گے، جو نیٹ ورک ٹوپولوجی اور پالیسی کو مزید کنفیگر کرنے کے لیے استعمال کیا جا سکتا ہے، جیسے
وسائل اور شروع کرنا
ماخذ: www.habr.com