مرحبا يا هبر!
قبل وقت قصير من عيد الميلاد ، تقرر دراسة Spacewalk في قسم تكنولوجيا المعلومات - هذا هو نظام Red Hat ، وهو نظير مجاني للقمر الصناعي ، لإدارة التهيئة المركزية ، وتحديثات النظام ، ودعم مناسب لحديقة الخوادم بأكملها.
نظرًا لحقيقة أن الوثائق المتوفرة على الموقع الرسمي نادرة جدًا للحصول على تعليقات إضافية حول أنواع مختلفة من حل المشاكل ، كانت المهمة هي دراسة المنتج من أجل تقديمه التدريجي أولاً لاختبار الخوادم ، ثم للمنتجات.
لم تكن الفكرة الرئيسية لإدخال Spacewalk هي المركزية وتبسيط التحكم فحسب ، بل وأيضًا حتى لا يلعب أحد التحديثات على خوادم المشروع الجديد بأقلام مرحة ، لأن السوابق قد حدثت بالفعل.
بعد أسبوعين من العمل ، تم إدخال كل المعرفة التي تلقيتها في التماثل الداخلي للالتقاء ، ودفعني يوم عطلة مجاني لكتابة مقال عن هبر.
قبل أن أبدأ ، أود أن أبرز بإيجاز ما كان وما لم يتأثر ، حتى لا أتأهل للحصول على الدليل الكامل للعمل مع Spacewalk:
+ تركيب وتكوين الخادم / العميل
+ إعداد النظام في واجهة المستخدم الرسومية
+ استكشاف أخطاء حزم التثبيت / التحديث ، والعمل مع التكوينات
+ Errata (جمع معلومات حول التحديثات الهامة ، الثغرات الأمنية ، إلخ.)
- وكيل (الحاجة اختفت ، بعد التخلي عن HA)
- الإسكافي / kickstart
- OpenSCAP
متطلبات النظام
نظرًا لحقيقة أن البنية التحتية بأكملها تعمل على VMWare ، تم تنفيذ العمل على VM يعمل بنظام CentOS 7. متطلبات النظام الموصى بها من المطور هي:
- ذاكرة الوصول العشوائي 4GB
- مساحة خالية 6 غيغابايت لـ / var / قمر صناعي /
- 12GB ل DB
اعتدت:
- ذاكرة الوصول العشوائي 6GB
- 4 وحدة (وحدات)
- 40GB HDD
أنصحك أيضًا بتعطيل SELinux ، وإذا لم تستخدم ، جدار الحماية. أو أضف خدمة http إلى الاستثناءات.
ملاحظة: في نهاية المقال ، سيكون هناك كتب تشغيل لـ Ansible ، لكل من العميل وخادم الأجزاء ، وكذلك نصوص bash. من خلال مساعدتهم ، سيكون من الممكن نشر البنية التحتية بأكملها في بضع دقائق.
التثبيت
تم وصف التثبيت نفسه في الوثائق الرسمية وفي العديد من المواقع ، ومع ذلك ، من أجل سلامة المقالة ، اسمحوا لي أن أذكر هذه النقطة هنا.
Spacewalk يعمل مع اثنين من قواعد البيانات: PostgreSQL و Oracle RDBMS. لدي تجربة مع الأول ، وسوف تستخدمه الآن.
هناك خياران للتثبيت: كلاهما من خلال برنامج التثبيت التلقائي من Spacewalk ، والذي سيقوم بتثبيت وتكوين نفسه وقاعدة البيانات ، على نفس الخادم ، والتثبيت اليدوي ، حيث يمكنك وضع DB والتطبيق على خوادم مختلفة. سوف أفكر في كلا الخيارين ، سأبدأ بتثبيت منفصل.
PostgreSQL
yum install -y postgresql-server
من الضروري أيضًا توصيل وحدات PL / Tcl الخاصة بـ PG:
yum install -y postgresql-pltcl postgresql-setup initdb systemctl start postgresql
إنشاء قاعدة بيانات ، مستخدم ، وتوصيل الوحدة النمطية:
su - postgres -c 'PGPASSWORD=verystrong; createdb spcwlkdb ; createlang plpgsql spcwlkdb ; createlang pltclu spcwlkdb ; yes $PGPASSWORD | createuser -P -sDR spcwlkuser'
لتجنب مشاكل الاتصال ، يجدر تغيير
/var/lib/pgsql/data/pg_hba.conf ، مع إضافة السطور قبل السطر بالكامل:
local spcwlkdb spcwlkuser md5 host spcwlkdb spcwlkuser 127.0.0.1/8 md5 local spcwlkdb postgres ident
أعد تشغيل كل شيء:
systemctl restart postgresql
إذا كنت تنوي تثبيت التطبيق وقاعدة البيانات على خوادم مختلفة ، فتأكد من تثبيت الحزمة
postgresql على خادم قاعدة البيانات.
السير في الفضاء
نحن نربط المستودعات:
rpm -Uvh https://copr-be.cloud.fedoraproject.org/results/@spacewalkproject/spacewalk-2.8/epel-7-x86_64/00736372-spacewalk-repo/spacewalk-repo-2.8-11.el7.centos.noarch.rpm
قم أيضًا بتوصيل epel:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
جافا:
(cd /etc/yum.repos.d && curl -O https://copr.fedorainfracloud.org/coprs/g/spacewalkproject/java-packages/repo/epel-7/group_spacewalkproject-java-packages-epel-7.repo)
الآن مباشرة المثبت ل Spacewalk - postgres:
yum -y install spacewalk-setup-postgresql
الاتصال بقاعدة البيانات لدينا:
spacewalk-setup-postgresql create --db spcwlkdb --user spcwlkuser --password verystrong
في حالة استخدامك لقاعدة بيانات / تطبيق منفصل ، ستحتاج إلى إضافة العلامة
المستقلة وتحديد عنوان IP لخادم قاعدة البيانات ، ولا تنسَ أيضًا فتح المنفذ 5432.
ملاحظة: أنصح بضبط قاعدة البيانات وفقًا لجهازك من أجل تشغيل أكثر إنتاجية للنظام بأكمله.الآن تثبيت Spacewalk نفسه وتشغيل التثبيت:
yum -y install spacewalk-postgresql spacewalk-setup --external-postgresql
بعد ذلك ، سيتم طرح العديد من الأسئلة ، سواء فيما يتعلق بشهادة SSL وقاعدة البيانات. يمكنك إدخال جميع القيم يدويًا ، أو يمكنك استخدام علامة
ملف -answer وتحديد المسار إلى الملف مع الإجابات من أجل أتمتة التثبيت في المستقبل:
admin-email = root@localhost ssl-set-cnames = spcwlkserver ssl-set-org = Unicorn ssl-set-org-unit = EOH ssl-set-city = Prague ssl-set-state = HMP ssl-set-country = CZ ssl-password = verystrong ssl-set-email = root@localhost ssl-config-sslvhost = Y db-backend=postgresql db-name=spcwlkdb db-user=spcwlkuser db-password=verystrong db-host=localhost db-port=5432 enable-tftp=Y
للتحكم في التطبيق مباشرة ، يجب عليك استخدام:
/usr/sbin/spacewalk-service [stop|start|restart]
لعرض جميع خدمات الجهات الخارجية التي تساهم في التطبيق:
spacewalk-service status
الخيار الثاني ، التثبيت التلقائي
بعد توصيل المستودعات ، قم بإعداد وتشغيل:
yum -y install spacewalk-setup-postgresql yum -y install spacewalk-postgresql spacewalk-setup
مرة أخرى ، سيتم طرح الأسئلة المتعلقة بقاعدة البيانات و SSL ، نستخدم مفتاح
الملف --answer والمسار إلى الملف مع الإجابات.
قنوات الأساس والطفل ، Repos
لإدارة محطات العملاء ، يستخدم نظام Spacewalk ما يسمى بالقنوات ، والتي يمكن أن تكون إما رئيسية (تابعة) أو تابعة (تابعة) ، ومستودع تحتاجه مرتبط بكل قناة ، وكذلك مفتاح - يتم إقران العميل به الخادم.
نتيجة لذلك ، تتم مزامنة المستودعات مع القنوات ، والتي بدورها مرتبطة بالعملاء ، ويعمل Spacewalk بطريقة عامة. من الجدير بالذكر أيضًا أن Errata ، والذي يمكن ربطه بالقنوات ، مما يبسط عملية التحديث والتحكم في الحزمة.
يمكن تجميع جميع العملاء وفقًا لمعايير مختلفة ، سواء مع نفس القنوات أو مع قنوات أو مستودعات مختلفة ، فمن الممكن العمل مع عدد كبير من العملاء في وقت واحد ، مما يساعد على إجراء تحديثات على أكثر من 100 خادم.
تتوفر قائمة بجميع الحزم المثبتة ، وبعد مزامنة المستودعات وإمكانية التثبيت. بعض النقاط بديهية ، وليس من المنطقي التفكير في كل سطر على حدة.
تتم جميع الإجراءات في Spacewalk وفقًا لجدول (جدول) ، ويمكن تكوين أي إجراء تقريبًا في الوقت الأكثر ملاءمة لك.
بعد التثبيت ، سيكون من الممكن الانتقال إلى عنوان الخادم الخاص بك ، وتنفيذ مزيد من التكوين عبر الواجهة الرسومية:

أدخل كلمة المرور واسم المسؤول واسم المؤسسة (والتي تعد أيضًا إحدى الطرق لإدارة العملاء) ، وانتقل إلى لوحة البداية.
في الوقت الحالي ، يمكنك إما استكشاف الخيارات المتاحة بنفسك ، أو الانتقال إلى إنشاء القنوات.
القنوات - إدارة قنوات البرامج - إنشاء قناة:
أوصي بتعيين أسماء القنوات وفقًا لأنواع ونوع نظام التشغيل الذي سيتم
ربطه بهذه القناة ، على سبيل المثال ،
CentOS_7_x86_64 ، يمكنك اختيار sha256 بأمان كشيكات ، الحقل Channell Summary مخصص لوصف صغير للقناة. أيضا ، يمكنك اختياريا تقديم معلومات إضافية.
أنشئ الآن قناة فرعية واربطها بالقناة الرئيسية. نذهب بنفس طريقة إنشاء القناة الرئيسية ، فقط في حقل القناة الرئيسية سنشير إلى القناة التي تم إنشاؤها مسبقًا.
قم بربط المستودعات بالقنوات الرئيسية والفرعية.
القنوات - إدارة المستودعات
بالنسبة للقنوات الرئيسية ، أستخدم "الموارد الأساسية" للقنوات الفرعية - تحديثات.
بعد إنشاء المستودعات ، تحتاج إلى توصيلها بالقنوات.
القنوات - إدارة قنوات البرامج ، افتح قناتك الرئيسية ، افتح قسم المستودعات.

ستكون هناك جميع المستودعات التي تم إنشاؤها ، وحدد المستودع الذي تحتاجه ، وقم بتمييزه ، وانقر فوق تحديث الموارد.
بعد ذلك ، افتح المفتاح Sync الفرعي:

حيث يمكنك مزامنة المستودع والقناة ، قم بتكوين جدول التزامن.
ملاحظة: في حالة الأقلام المشغولة ، اضطررت إلى حذف المستودع القياسي من نظام العميل.تثبيت العميل ، وإقران العميل مع الخادم ، وإدارة المفاتيح ، وإعداد قناة التكوين
كما ذكرت سابقًا ، يستخدم Spacewalk نظامًا رئيسيًا من شبكة Red Hat Network ، والذي يستخدم في الاقتران والإدارة.
لإنشاء مفتاح ، انتقل إلى
الأنظمة - مفاتيح التنشيط - إنشاء مفتاح:
كل شيء بسيط للغاية هنا ، هل تجدر الإشارة إلى أنه يمكنك تعيين المفتاح بنفسك ، وسيكون تنسيقه دائمًا
1 XXXXXX ، وأيضًا كل مفتاح متصل بالقناة. يفرض العلم الافتراضي العالمي أنظمة جديدة على التقاط المعلمات الأساسية.
تثبيت العميلقم بتوصيل مستودع العميل وتثبيت الحزم اللازمة:
rpm -Uvh https://copr-be.cloud.fedoraproject.org/results/@spacewalkproject/spacewalk-2.8-client/epel-7-x86_64/00742644-spacewalk-repo/spacewalk-client-repo-2.8-11.el7.centos.noarch.rpm yum -y install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin rhncfg-actions deltarpm
ملاحظة: هناك حاجة إلى إجراءات rhncfg و deltarpm لكي تعمل التهيئة والتحكم عن بُعد بشكل صحيح.يستخدم Spacewalk rhn_check لمزامنة خادم العميل ، الذي يعمل كل 4 ساعات. يمكن تخفيض هذه القيمة إلى 60 دقيقة ، ولكن بالنسبة لي لم يكن أي من الخيارات هو الأمثل ، لذلك هناك خياران: استخدام osad ، الذي يأتي مع Spacewalk ، أو ببساطة إضافة cronjob ل rhn_check ، على سبيل المثال ، لكل دقيقة بينما نحن اختبار النظام ، ثم يمكن تغيير القيمة كما يحلو لك.
crontab -e * * * * * /usr/sbin/rhn_check
لن يكون من الضروري أيضًا إضافة / usr / bin / rhn-Actions-control - يمكن تمكينه جميعًا إلى Cron أيضًا ، فهو يستخدم لنشر التكوينات ، وفي بعض الأحيان يمل.
نعود إلى إدارة المفاتيح ، وننسخ معرف المفتاح الذي أنشأناه ، وننفذه:
rhnreg_ks --serverUrl=http://your-server-ip/XMLRPC --activationkey=1-YOURKEY --force
فقط لا تنسى أن تغير IP والقيم الأساسية الخاصة بك. مرة أخرى ، أنصحك باستخدام علامة
القوة ، حيث لاحظت وجود مشاكل دون استخدام هذه العلامة.
نعود إلى
الأنظمة - الكل ، يسرنا أن نلاحظ نظامنا. يمكنك الآن فتحه واستكشاف ماذا وكيف هناك ، لكن الآن أوصي بشدة بإنشاء مجموعة لإدارة نظام أكثر ملاءمة.
Systems - Goups System - إنشاء مجموعة ، وملء الاسم والوصف ، وحفظ ، وفتح المجموعة التي تم إنشاؤها حديثًا ، انتقل إلى قسم
الأنظمة وإضافة النظام إلى المجموعة.
اشترك الآن في القناة ،
الأنظمة - النظام الخاص بك - مجلد البرامج - المجلد الفرعي لقنوات البرامج:
اختر قناتك وانقر على التأكيد. للمتعة ، يمكنك محاولة تثبيت الحزمة ،
البرامج - الحزم - التثبيت .
قناة التكوينلإدارة التكوينات بين خادم العميل / الجهاز المحلي ، فضلاً عن جهاز التحكم عن بُعد ، يجدر إعداد قناة التكوين وربط النظام بها.
نذهب إلى
التكوين - قنوات التكوين - إنشاء قناة التكوين ، وتعيين الاسم والوصف ، وحفظ ، ثم في
التكوين - إدارة قنوات التكوين - الاشتراك في القنوات وتوقيع قناة التكوين إلى قناة البرنامج ، وعلى النظام.

الآن يمكننا نشر التكوينات من كل من الخادم والأجهزة المحلية ، وإنشاء أقسام.
التكوين - إضافة ملفات - إنشاء ملف / تحميل ملف:
أيضًا ، يمكننا إرسال أوامر عن بُعد في شكل نص bash:

أذكرك بأن جميع الإجراءات تمر عبر جدول زمني ، ويمكن الاطلاع على قائمة بجميع الإجراءات المطبقة على هذا النظام في قسم الأحداث:
يراتاواحدة من أهم الميزات في Spacewalk هي دعم الأخطاء ، والذي يرتبط بشكل ملائم بالقنوات ويسمح لك بمراقبة مستوى أهمية آخر التحديثات. تم تكوين هذا مباشرة على الخادم ، بالإضافة إلى البرامج النصية ، تحتاج إلى تنزيل الحزم اللازمة لـ Pearl:
yum -y install perl-Frontier-RPC perl-Text-Unidecode wget https://raw.githubusercontent.com/stevemeier/cefs/master/errata-import.pl chmod +x errata-import.pl
ثم أنشئ التحديث الرئيسي
وخطأ البرنامج النصي ، والذي سيتم تخزينه في
/ etc / rhn /:
في التصدير ، حدد اسم وكلمة مرور مسؤول Spacewalk ، الذي حددته في البداية.
لنجعل البرنامج النصي قابلاً للتنفيذ وإضافته إلى Cron:
chmod +x spcwlk_errata.sh crontab -e 0 2 * * 7 /usr/bin/sh /etc/rhn/spcwlk_errata.sh
دعنا ننفذها الآن لرؤية التغييرات في واجهة الرسوم. سوف يستغرق التنفيذ بعض الوقت.

ملخص
هناك نقطة مهمة ، في رأيي ، فاتني شخصيا ، هي إعداد وكيل وتثبيته ، بالإضافة إلى رفع النظام بالكامل مثل HA. كان لدي فكرة لتكوين التطبيق من خلال جهاز تنظيم ضربات القلب ، والمزامنة على قاعدة البيانات. ونتيجة لذلك ، تقرر التخلي عن هذه الفكرة ، في ضوء أسطول الخوادم غير الضخم للغاية من محطات العملاء. ومع ذلك ، إذا أثبت النظام أنه مفيد للغاية في الأشهر الستة المقبلة ، فقد تضطر إلى توسيع الخادم الأصلي.
الأتمتة
الخادم:البرنامج النصي Bash لنشر الخادم (DISABLES firewalld): نص باش لتثبيت errata (قم أولاً بتعيين اسم وكلمة مرور مسؤول Spacewalk): كتاب اللعب غير المرغوب فيه لنشر الخادم (لا تنس إضافة ملف الإجابات): - hosts: spcwlk-server tasks: - name: Install Spacewalk repo yum: name: https://copr-be.cloud.fedoraproject.org/results/@spacewalkproject/spacewalk-2.8/epel-7-x86_64/00736372-spacewalk-repo/spacewalk-repo-2.8-11.el7.centos.noarch.rpm state: present - name: Install epel repo yum: name: https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm state: present - name: Install PostgreSQL packages yum: name: - spacewalk-setup-postgresql - spacewalk-postgresql - wget - perl-Frontier-RPC - perl-Text-Unidecode - perl-XML-Simple - name: Creates directory for Spacewalk answer file file: path: /usr/share/spcwlk-tmp/ state: directory mode: 0755 - name: Deploy answer file copy: src: /etc/ansible/spcwlk_answer dest: /usr/share/spcwlk-tmp/spcwlk_answer - name: Spacewalk Server Deploy shell: spacewalk-setup --answer-file=/usr/share/spcwlk-tmp/spcwlk_answer - name: Stop firewalld systemd: name: firewalld state: stopped enabled: no
العميل:البرنامج النصي Bash لنشر العميل (لا تنسَ عنوان IP والمفتاح): Anisble playbook لنشر العميل: - hosts: spcwlk-clients tasks: - name: Install spacewalk repo yum: name: https://copr-be.cloud.fedoraproject.org/results/@spacewalkproject/spacewalk-2.8-client/epel-7-x86_64/00742644-spacewalk-repo/spacewalk-client-repo-2.8-11.el7.centos.noarch.rpm state: present - name: Install client packages yum: name: - rhn-client-tools - rhn-check - rhn-setup - rhnsd - m2crypto - yum-rhn-plugin - rhncfg-actions - deltarpm - wget - name: Create cronjob for rhn_check cron: name: "rhn_check" minute: "*" hour: "*" day: "*" month: "*" weekday: "*" job: "/usr/sbin/rhn_check" - name: Enable controls for config and remote control deployment shell: /usr/bin/rhn-actions-control --enable-all - name: Get certificate from server to client get_url: url: http://YourServerIPAddress/pub/RHN-ORG-TRUSTED-SSL-CERT dest: /usr/share/rhn/ - name: Register client to server rhn_register: state: present server_url: http://YourServerIPAddress/XMLRPC activationkey: "{{ activation_key }}"
شكرا لكم جميعا لقراءة المقال. حظا سعيدا