استخدام المكونات الإضافية للمخزون من مجموعات محتوى أنسبل في برج أنسبل

أصبحت بيئات تكنولوجيا المعلومات أكثر وأكثر تعقيدا. في هذه الظروف، من المهم جدًا أن يحصل نظام أتمتة تكنولوجيا المعلومات على معلومات محدثة حول العقد الموجودة في الشبكة والخاضعة للمعالجة. في منصة Red Hat Ansible Automation Platform، يتم حل هذه المشكلة من خلال ما يسمى بالمخزون (المخزون) – قوائم العقد المدارة.

استخدام المكونات الإضافية للمخزون من مجموعات محتوى أنسبل في برج أنسبل

في أبسط أشكاله، المخزون هو ملف ثابت. يعد هذا مثاليًا عند بدء العمل مع Ansible، ولكن مع زيادة الأتمتة، يصبح غير كافٍ.

وهنا لماذا:

  1. كيف يمكنك تحديث قائمة كاملة من العقد المراقبة والحفاظ عليها عندما تتغير الأمور باستمرار، وعندما تأتي وتذهب أعباء العمل - وبالتالي العقد التي تعمل عليها -؟
  2. كيفية تصنيف مكونات البنية التحتية لتكنولوجيا المعلومات من أجل تحديد العقد على وجه التحديد لتطبيق أتمتة معينة؟

يوفر المخزون الديناميكي إجابات لكلا هذين السؤالين (المخزون الديناميكي) - برنامج نصي أو مكون إضافي يبحث عن العقد التي سيتم تشغيلها تلقائيًا، مع الإشارة إلى مصدر الحقيقة. بالإضافة إلى ذلك، يقوم المخزون الديناميكي تلقائيًا بتصنيف العقد إلى مجموعات بحيث يمكنك تحديد الأنظمة المستهدفة بشكل أكثر دقة لتنفيذ أتمتة Ansible محددة.

المكونات الإضافية للمخزون منح مستخدم Ansible القدرة على الوصول إلى الأنظمة الأساسية الخارجية للبحث ديناميكيًا عن العقد المستهدفة واستخدام هذه الأنظمة الأساسية كمصدر للحقيقة عند إنشاء المخزون. تتضمن القائمة القياسية للمصادر في Ansible الأنظمة الأساسية السحابية AWS EC2 وGoogle GCP وMicrosoft Azure، وهناك أيضًا العديد من المكونات الإضافية الأخرى للمخزون لـ Ansible.

برج Ansible يأتي مع عدد من المكونات الإضافية للمخزون، والتي تعمل بشكل مباشر، بالإضافة إلى الأنظمة الأساسية السحابية المذكورة أعلاه، توفر التكامل مع VMware vCenter وRed Hat OpenStack Platform وRed Hat Satellite. بالنسبة لهذه المكونات الإضافية، تحتاج فقط إلى توفير بيانات الاعتماد للاتصال بالمنصة المستهدفة، وبعد ذلك يمكن استخدامها كمصدر لبيانات المخزون في Ansible Tower.

بالإضافة إلى المكونات الإضافية القياسية المضمنة في Ansible Tower، هناك مكونات إضافية أخرى للمخزون يدعمها مجتمع Ansible. مع الانتقال إلى مجموعات محتوى Red Hat Ansible بدأ تضمين هذه المكونات الإضافية في المجموعات المقابلة.

في هذا المنشور، سنأخذ مثالاً على العمل مع البرنامج الإضافي للمخزون الخاص بـ ServiceNow، وهو نظام أساسي شائع لإدارة خدمات تكنولوجيا المعلومات حيث يقوم العملاء غالبًا بتخزين معلومات حول جميع أجهزتهم في CMDB. بالإضافة إلى ذلك، يمكن أن يحتوي CMDB على سياق مفيد للتشغيل الآلي، مثل معلومات حول مالكي الخادم ومستويات الخدمة (الإنتاجية/غير الإنتاجية) والتحديثات المثبتة ونوافذ الصيانة. يمكن أن يعمل المكون الإضافي Ansible مخزون مع ServiceNow CMDB وهو جزء من المجموعة الخدمة الآن على البوابة galaxy.ansible.com.

مستودع Git

لاستخدام مكون إضافي للمخزون من مجموعة في Ansible Tower، يجب تعيينه كمصدر للمشروع. في Ansible Tower، المشروع عبارة عن تكامل مع نوع من نظام التحكم في الإصدار، مثل مستودع git، والذي يمكن استخدامه لمزامنة ليس فقط قواعد تشغيل الأتمتة، ولكن أيضًا المتغيرات وقوائم المخزون.

مستودعنا بسيط جدًا في الواقع:

├── collections
│   └── requirements.yml
└── servicenow.yml

يحتوي الملف Servicenow.yml على تفاصيل مخزون المكونات الإضافية. في حالتنا، نقوم ببساطة بتحديد الجدول في ServiceNow CMDB الذي نريد استخدامه. نقوم أيضًا بتعيين الحقول التي سيتم إضافتها كمتغيرات العقدة، بالإضافة إلى معلومات معينة عن المجموعات التي نريد إنشاءها.

$ cat servicenow.yml
plugin: servicenow.servicenow.now
table: cmdb_ci_linux_server
fields: [ip_address,fqdn,host_name,sys_class_name,name,os]
keyed_groups:
  - key: sn_sys_class_name | lower
	prefix: ''
	separator: ''
  - key: sn_os | lower
	prefix: ''
	separator: ''

يرجى ملاحظة أن هذا لا يحدد مثيل ServiceNow الذي سنتصل به بأي شكل من الأشكال، ولا يحدد أي بيانات اعتماد للاتصال. سنقوم بتكوين كل هذا لاحقًا في Ansible Tower.

مجموعات الملفات/requirements.yml مطلوب حتى يتمكن Ansible Tower من تنزيل المجموعة المطلوبة وبالتالي الحصول على البرنامج الإضافي المطلوب للمخزون. بخلاف ذلك، سيتعين علينا تثبيت هذه المجموعة وصيانتها يدويًا على جميع عقد Ansible Tower الخاصة بنا.

$ cat collections/requirements.yml
---
collections:

- name: servicenow.servicenow

بمجرد أن ندفع هذا التكوين للتحكم في الإصدار، يمكننا إنشاء مشروع في Ansible Tower الذي يشير إلى المستودع المقابل. يربط المثال أدناه برج Ansible بمستودع جيثب الخاص بنا. انتبه إلى عنوان URL الخاص بـ SCM: فهو يسمح لك بتسجيل حساب للاتصال بمستودع خاص، بالإضافة إلى تحديد فرع معين أو علامة أو التزام بالسحب.

استخدام المكونات الإضافية للمخزون من مجموعات محتوى أنسبل في برج أنسبل

إنشاء بيانات الاعتماد لـ ServiceNow

كما ذكرنا سابقًا، لا يحتوي التكوين الموجود في مستودعنا على بيانات اعتماد للاتصال بـ ServiceNow ولا يحدد مثيل ServiceNow الذي سنتواصل معه. لذلك، لتعيين هذه البيانات، سنقوم بإنشاء بيانات اعتماد في Ansible Tower. وفق وثائق البرنامج المساعد لمخزون ServiceNow، هناك عدد من متغيرات البيئة التي سنقوم من خلالها بتعيين معلمات الاتصال، على سبيل المثال، كما يلي:

= username
    	The ServiceNow user account, it should have rights to read cmdb_ci_server (default), or table specified by SN_TABLE

    	set_via:
      	env:
      	- name: SN_USERNAME

في هذه الحالة، إذا تم تعيين متغير البيئة SN_USERNAME، فسيستخدمه البرنامج الإضافي للمخزون كحساب للاتصال بـ ServiceNow.

نحتاج أيضًا إلى تعيين متغيرات SN_INSTANCE وSN_PASSWORD.

ومع ذلك، لا توجد بيانات اعتماد من هذا النوع في Ansible Tower حيث يمكنك تحديد هذه البيانات لـ ServiceNow. لكن برج Ansible يسمح لنا بالتحديد أنواع بيانات الاعتماد المخصصة، يمكنك قراءة المزيد عن هذا في المقالة "تسليط الضوء على ميزة برج Ansible: بيانات الاعتماد المخصصة".

في حالتنا، يبدو تكوين الإدخال لبيانات الاعتماد المخصصة لـ ServiceNow كما يلي:

fields:
  - id: SN_USERNAME
	type: string
	label: Username
  - id: SN_PASSWORD
	type: string
	label: Password
	secret: true
  - id: SN_INSTANCE
	type: string
	label: Snow Instance
required:
  - SN_USERNAME
  - SN_PASSWORD
  - SN_INSTANCE

سيتم عرض بيانات الاعتماد هذه كمتغيرات بيئة بنفس الاسم. هذا موصوف في تكوين الحاقن:

env:
  SN_INSTANCE: '{{ SN_INSTANCE }}'
  SN_PASSWORD: '{{ SN_PASSWORD }}'
  SN_USERNAME: '{{ SN_USERNAME }}'

لذلك، قمنا بتحديد نوع بيانات الاعتماد التي نحتاجها، والآن يمكننا إضافة حساب ServiceNow وتعيين المثيل واسم المستخدم وكلمة المرور، مثل هذا:

استخدام المكونات الإضافية للمخزون من مجموعات محتوى أنسبل في برج أنسبل

نقوم بإنشاء المخزون

إذن، نحن الآن جاهزون لإنشاء مخزون في برج Ansible. دعنا نسميها ServiceNow:

استخدام المكونات الإضافية للمخزون من مجموعات محتوى أنسبل في برج أنسبل

بعد إنشاء المخزون يمكننا إرفاق مصدر بيانات به. نحدد هنا المشروع الذي أنشأناه سابقًا وندخل المسار إلى ملف مخزون YAML الخاص بنا في مستودع التحكم المصدر، وفي حالتنا يكون Servicenow.yml في جذر المشروع. بالإضافة إلى ذلك، تحتاج إلى ربط حساب ServiceNow الخاص بك.

استخدام المكونات الإضافية للمخزون من مجموعات محتوى أنسبل في برج أنسبل

للتحقق من كيفية عمل كل شيء، دعونا نحاول المزامنة مع مصدر البيانات عن طريق النقر على زر "مزامنة الكل". إذا تم تكوين كل شيء بشكل صحيح، فيجب استيراد العقد إلى مخزوننا:

استخدام المكونات الإضافية للمخزون من مجموعات محتوى أنسبل في برج أنسبل

يرجى ملاحظة أنه تم أيضًا إنشاء المجموعات التي نحتاجها.

اختتام

في هذا المنشور، نظرنا في كيفية استخدام المكونات الإضافية للمخزون من المجموعات في Ansible Tower باستخدام المكون الإضافي ServiceNow كمثال. لقد قمنا أيضًا بتسجيل بيانات الاعتماد بشكل آمن للاتصال بمثيل ServiceNow الخاص بنا. إن ربط مكون إضافي للمخزون من مشروع لا يعمل فقط مع المكونات الإضافية المخصصة أو التابعة لجهات خارجية، ولكن يمكن استخدامه أيضًا لتعديل تشغيل بعض المخزونات القياسية. وهذا يجعل Ansible Automation Platform سهلاً وسلسًا للتكامل مع الأدوات الحالية عند أتمتة بيئات تكنولوجيا المعلومات المعقدة بشكل متزايد.

يمكنك العثور على مزيد من المعلومات حول المواضيع التي تمت مناقشتها في هذا المنشور، بالإضافة إلى الجوانب الأخرى لاستخدام Ansible، هنا:

*لا تقدم Red Hat أي ضمانات بأن الكود الموجود هنا صحيح. يتم توفير كافة المواد على أساس عدم الموافقة ما لم ينص على خلاف ذلك صراحة.

المصدر: www.habr.com

إضافة تعليق