ترويض WSUS مع Ansible والمزيد


حسنًا ، حان الوقت الآن لجعل Windows يقوم بتحديث الأصدقاء مع عالم مفتوح المصدر. في هذه المقالة ، ننوع الحياة من خلال دمج Ansible مع جميع مصادر التحديثات الممكنة لأجهزة Windows. على الرغم من أن إمكانات النظام أوسع بكثير من مجرد طرح التحديثات على الخوادم ومحطات العمل ، عليك أن تبدأ في مكان ما.


في الوقت نفسه ، سنتخلص من الإزعاج المزعج لـ WSUS إذا كنت تفضل "المدرسة القديمة".


لماذا لا نحب WSUS


لن أتحدث عن إعداد خدمات Windows Server Update Services ، لأنها تافهة. ركز على السلبيات.



لم تتغير واجهة WSUS كثيرًا عبر التاريخ.


عدم القدرة على التثبيت عند الطلب . في الواقع ، يعمل WSUS بشكل جيد للتشغيل المنتظم - يتم تكوين التحديثات وتثبيتها بسهولة على الشبكة المحلية عند إيقاف تشغيل أجهزة الكمبيوتر. ولكن إذا كنت بحاجة ماسة إلى تثبيت تصحيحات الأمان ، فسيتعين عليك الخروج باستخدام البرامج النصية والحلول لتشغيل هذه البرامج النصية. يمكن أن تساعد مادتنا " طريقة 1000 ++ لتشغيل الأوامر على جهاز كمبيوتر بعيد " في ذلك.


عدم وجود طريقة منتظمة لتثبيت تحديثات برامج الجهات الخارجية . إذا كان هناك خادم تحديث ، فيبدو من المعقول استخدامه ليس فقط لتحديثات برامج MS ، ولكن أيضًا للحلول الأخرى. على سبيل المثال ، لا يتم اكتشاف الثغرات بشكل منتظم في Adobe Flash Player المذكور أعلاه على فترات منتظمة ، وأود أيضًا أن أسعد المستخدمين بميزات FireFox الجديدة. لتثبيت التحديثات من خلال WSUS ، يجب عليك استخدام حلول الجهات الخارجية مثل WSUS Package Publisher . يمكنك الاطلاع على أمثلة التهيئة في المقالة " تثبيت أي برنامج باستخدام WSUS - 2 ".


باستخدام قاعدة بيانات Windows المضمنة . في التثبيت القياسي ، يستخدم WSUS WID - قاعدة بيانات Windows الداخلية. هذا هو في الأساس خادم SQL صغير مضمن مع قاعدة بيانات. في حالة حدوث أي أعطال أو تضارب - على سبيل المثال ، إذا كان لديك وسيط اتصال سطح المكتب البعيد و WSUS على نفس الخادم - يجب عليك إصلاح قاعدة البيانات هذه وتكوين حقوق الوصول والاستمتاع بكل طريقة. نعم ، ولن يؤذي النسخ الاحتياطي. لحسن الحظ ، يمكن لـ WSUS استخدام SQL الكلاسيكية أيضًا. لترحيل قاعدة بيانات WSUS ، يمكنك استخدام التعليمات الخاصة بترحيل قاعدة بيانات WSUS من WID إلى SQL من Microsoft.


الحاجة إلى الخدمة والإعداد غير الواضح للعملاء الفاشلين. كما هو الحال مع منتجات Microsoft ، عاجلاً أم آجلاً ، يبدأ WSUS في التباطؤ: لا يمكن للعملاء الحصول عليه لفترة طويلة وتنزيل التحديثات. يمكن العثور على مجموعة من النصائح والتحسينات في مقالة " تسريع WSUS " وفي التعليقات عليها.


بالطبع ، يمكنك العيش مع هذه السلبيات ، ولكن يمكنك أيضًا أن تجعل حياتك أسهل باستخدام أدوات أخرى ، باستخدامها مع WSUS ، وبدونها.


تثبيت التحديثات باستخدام Ansible


يمكن لأي نظام إدارة تكوين تقريبًا تسهيل العمل مع التحديثات. لنحلل مثالاً يعتمد على Ansible لتثبيت التحديثات عند الطلب.


ترتيب holivar ، وهو أفضل من الأنظمة الحرة - Ansible أو Chef أو Puppet أو حتى Salt ، ليس هناك أدنى رغبة. تم اختيار Ansible لعدم وجود حاجة للوكلاء ولسهولة التكوين. وبطبيعة الحال ، بسبب Python: بعد كل شيء ، هذه اللغة أسهل بكثير في التعلم عن التشغيل الآلي للمبتدئين ، على عكس Ruby.

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


أولاً ، قم بإعداد خادم Ansible. ستفعل أي توزيعة GNU \ Linux تقريبًا ، لكني سأقدم أمثلة على أوامر خادم Ubuntu (كما كان تاريخياً).


أولاً ، قم بتثبيت مدير الحزم لتطبيقات Python:


apt-get install python-pip pip install --upgrade pip pip install --upgrade virtualenv 

ثم نحتاج إلى تثبيت حزمة pywinrm للاتصال بأنظمة Windows ونظام Ansible مباشرة:


 sudo pip install pywinrm sudo pip install ansible 

يمكنك التحقق من التثبيت باستخدام الأمر ansible --version .



التحقق من التثبيت.


بدلاً من الحزمة في نظرية pywinrm ، يمكنك استخدام أي أداة أخرى لإدارة Windows من جهاز Linux. تمت مناقشتها في مقالة " التلقيح المتبادل: إدارة لينكس من ويندوز ، والعكس بالعكس ".

تحتاج الآن إلى تمكين الاتصال بـ Windows عبر WinRM. للقيام بذلك ، هناك برنامج نصي ConfigureRemotingForAnsible.ps1 جاهز متوفر على GitHub . حسنًا ، أنت تعرف بالفعل كيفية تشغيل البرامج النصية على الأجهزة البعيدة.


يمكنك التحقق من الاتصال بـ Windows باستخدام الأمر:


 ansible windows -m win_ping 


تم التحقق من الاتصال بنجاح.


الآن يمكنك البدء في إنشاء كتاب اللعب. حقيقة أن المطورين Ansible قد فكروا بالفعل بالنسبة لنا وجعلوا وحدة win_updates ، فقط لحل مثل هذه المشاكل ، ستجعل حياتنا أسهل.


إن دليل التشغيل هو "تعليمات" تخبر نظام إدارة التهيئة بما يجب فعله. خطوة بخطوة بالطبع.

أي كتاب تشغيل هو ملف yml وهو عبارة عن مجموعة من التوجيهات - لكل وحدة نمطية خاصة بها. تتيح لك وحدة winupdate استخدام التوجيهات التالية (القيم الافتراضية بخط غامق):


العنوانالقيمةالوصف
أسماء الفئةالتطبيق
موصلات
تحديثات مهمة
التعريفات
مجموعات المطور
حزم الميزات
الإرشاد
تحديثات الأمان
حزم الخدمة
أدوات
UpdateRollups
التحديثات
فئة التحديثات.
القائمة البيضاءتحديث الرقم أو قالب الاسم.عدد التحديثات المثبتة مباشرة هو KB01234 أو نمط اسم التعبير العادي لـ PowerShell.
القائمة السوداءتحديث الرقم أو قالب الاسم.مباشرة عدد التحديثات التي لا تحتاج إلى تثبيت ، مثل KB01234 أو قالب الاسم في شكل PowerShell تعبير عادي.
إعادة التشغيلنعم
لا
هل يلزم إعادة التشغيل بعد الترقية؟
مهلة إعادة التشغيلثواني ، 1200ما هو الوقت المناسب لانتظار السيارة بعد إعادة التشغيل.
الدولةمثبتة
تم البحث
سواء لتثبيت التحديثات ، أو مجرد البحث.
log_pathمسار الملفيجب أن يوجد سجل التثبيت والمجلد.

وبالتالي ، فإن دليل التشغيل التالي مناسب لتثبيت تحديثات معينة:


 - name: Install specific updates based on the KBs for those updates win_updates: category_name: - SecurityUpdates whitelist: - KB4073819 - KB4074228 

وإذا كنت بحاجة فقط إلى حساب عدد التحديثات المفقودة ، فسيكون كتاب التشغيل على النحو التالي:


  – name: Check for missing updates win_updates: state=searched register: update_count 

لتثبيت جميع التحديثات المتاحة ، متبوعة بإعادة التشغيل ، سيكون هناك دليل تشغيل مشابه:


 - name: Install all critical and security updates win_updates: category_names: - CriticalUpdates - SecurityUpdates - UpdateRollups state: installed register: update_result - name: reboot host if required win_reboot: when: update_result.reboot_required 

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


 [DCs] dc1.mydomain.local dc2.mydomain.local [AppServers] app1.mydomain.local app2.mydomain.local [DBServers] db1.mydomain.local db2.mydomain.local 

والآن ، لتثبيت التحديثات فقط على وحدات تحكم المجال ، يمكنك استخدام playbook:


 - hosts: DCs tasks: - name: Choose which Windows updates to install win_updates: category_names: - SecurityUpdates - CriticalUpdates - UpdateRollups 

سيكون الفريق الذي سيقوم بكل هذه العمليات على هذا النحو:


 ansible-playbook -i inventory.yml -s windowsupdates.yml 

قد يسأل القارئ اليقظ عن مصدر التحديثات التي تم تنزيلها. سيكون المصدر هو المصدر الذي تم تكوينه على الكمبيوتر: سواء كان Windows Update على الإنترنت أو WSUS المحلي. حتى إذا لم تصل يديك إلى إعدادات WSUS ، يمكنك إصدار الأمر لتثبيت التحديثات العاجلة الضرورية ، خاصة إذا كانت أجزاء Lego قد انسكبت بالفعل تحت قدميك.


يبقى أن نضيف أنه ليس من الضروري استخدام Ansible بالضبط. على سبيل المثال ، بالنسبة لنظام إدارة تكوين Chef ، يمكنك استخدام Cookbook Wsus Client أو boxstarter الأكثر تعقيدًا . توجد وحدات مماثلة للدمى. بشكل عام ، يمكن لأي نظام إدارة تكوين تقريبًا القيام بشيء مماثل ، بما في ذلك MS SCCM.


أخيرًا ، سأعطيك بعض الأدوات الأخرى التي تهمني.


أنظمة وحلول أخرى


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


إدارة التصحيح بواسطة Comodo. نظام تثبيت التحديثات لنظام التشغيل Windows والبرامج الأخرى. على عكس الحلول الأخرى ، إنه مجاني.



واجهة Comodo Patch Management.


Opsi . نظام مجاني ومثير للاهتمام لا يدعم تثبيت التحديثات فحسب ، بل أيضًا أنظمة التشغيل ، بالإضافة إلى المخزون.


باتش باتش . النظام المدفوع الوحيد في القائمة. يتيح لك تثبيت البرنامج وتحديثه مثل Windows وغير ذلك الكثير. يختلف في تصميم المدرسة القديمة ، وكذلك في التكلفة ليس بالنسبة لعدد المضيفين المستضافين ، ولكن لمستخدمي البرنامج ، أي المسؤولين. ربما يكون هذا أحد الحلول القليلة التي تضع نفسها على أنها نظير لـ WSUS. يبدأ السعر من 400 دولار.



واجهة BatchPatch.


في التعليقات ، أضف أدواتك المفضلة للعمل مع التحديثات والمزيد.

Source: https://habr.com/ru/post/ar414751/


All Articles