Foreman + Katello: אוטומציה של ניהול מחזור חיי שרתים
כאשר צי השרתים שלך עולה על 50 מכונות, עדכונים ידניים דרך SSH וסקריפטים אד-הוק הופכים לכאוס. חבילות מתפצלות, עדכונים מתפספסים, ודוחות תאימות לוקחים שבועות להרכבה. כל שרת חדש מוגדר ידנית, התצורות סוטות, ותיקון מאה מכונות אוכל 8–12 שעות—לעתים קרובות שובר תאימות. הגישה שלנו עם Foreman ו-Katello פותרת זאת: חלונית אחת לפריסה, ניהול תצורה, תיקון וביקורת. ראינו שזמן התחזוקה יורד פי 3–4—לדוגמה, מחזור תיקון מלא על 100 שרתים לוקח כעת 2–3 שעות במקום 12. דוחות תאימות נוצרים אוטומטית תוך דקות, וחוסכים עד 60% מתקציב הניהול. ההשקעה מחזירה את עצמה תוך 3–6 חודשים על ידי קיצוץ עלויות עבודה ב-70%. Foreman+Katello הוא פי 3 טוב יותר מניהול ידני ביעילות תיקון. עבור צי של 100 שרתים, תיקון ידני עולה כ-$15,000 בשנה בעבודה; עם Foreman+Katello, זה יורד ל-$4,000—חיסכון של $11,000 בשנה.
כמה אפשר לחסוך עם Foreman+Katello?
הלקוחות שלנו רואים בדרך כלל הפחתה של 70% בעלויות עבודה, וחוסכים אלפי דולרים בשנה. החיסכון המדויק תלוי בגודל הצי ובפרקטיקות הנוכחיות, אבל ההחזר על ההשקעה מתממש בדרך כלל תוך 3–6 חודשים.
רכיבים וארכיטקטורה — הקמת Foreman+Katello
Foreman הוא התזמור עם ממשק אינטרנט ו-REST API. Katello הוא התוסף לניהול תוכן (מאגרים, תצוגות תוכן, סביבות מחזור חיים). יחד הם מושכים מספר תלויות:
- Pulp 3 — סנכרון ואחסון מאגרים
- Candlepin — ניהול מנויים (קריטי עבור RHEL)
- Puppet Server או Ansible — ניהול תצורה
- TFTP/DHCP — לפריסת PXE (Smart Proxy)
- PostgreSQL — כל האחסון
דרישות מינימליות לייצור: 8 CPU, 20 GB RAM, 500 GB למאגרים (RHEL + CentOS + תוכנה מותאמת). זה לא שירות קטן — Foreman+Katello דורש מכונה ייעודית.
התקנה דרך foreman-installer:
# RHEL 8 / Rocky Linux 8
dnf install https://yum.theforeman.org/releases/3.9/el8/x86_64/foreman-release.rpm
dnf install https://yum.theforeman.org/katello/4.12/katello/el8/x86_64/katello.noarch.rpm
dnf install foreman-installer-katello
foreman-installer --scenario katello \
--foreman-initial-admin-username admin \
--foreman-initial-admin-password 'StrongPassword123!' \
--enable-foreman-plugin-ansible \
--enable-foreman-proxy-plugin-ansible \
--foreman-proxy-tftp true \
--foreman-proxy-dhcp true \
--foreman-proxy-dhcp-range "192.168.10.100 192.168.10.200" \
--foreman-proxy-dhcp-gateway 192.168.10.1 \
--foreman-proxy-dhcp-nameservers 192.168.10.1המתקין מגדיר את Apache, PostgreSQL, Pulp, Candlepin אוטומטית. כל התהליך לוקח 15–30 דקות.
הגדרת תצוגות תוכן לתיקון בטוח
התכונה החשובה ביותר של Katello עבור ציים גדולים היא תצוגות תוכן וסביבות מחזור חיים. הרעיון: לעולם אל תעדכן שרתים ישירות ממאגר עליון. במקום זאת:
- סנכרן את המאגר לתוך Library (תוכן עליון גולמי)
- צור תצוגת תוכן — תמונת מצב של מאגרים נדרשים עם מסננים
- פרסם גרסה של תצוגת התוכן
- קדם דרך סביבות: Dev → QA → Staging → Production
Library (upstream) → Content View v1.5 → Dev → QA → Staging → Production חבילות שמגיעות ל-Production עברו את כל שלבי הבדיקה. שרתים נרשמים לסביבה ספציפית, לא לעליון — # RHEL 8 / Rocky Linux 8 dnf install https://yum.theforeman.org/releases/3.9/el8/x86_64/foreman-release.rpm dnf install https://yum.theforeman.org/katello/4.12/katello/el8/x86_64/katello.noarch.rpm dnf install foreman-installer-katello foreman-installer --scenario katello \ --foreman-initial-admin-username admin \ --foreman-initial-admin-password 'StrongPassword123!' \ --enable-foreman-plugin-ansible \ --enable-foreman-proxy-plugin-ansible \ --foreman-proxy-tftp true \ --foreman-proxy-dhcp true \ --foreman-proxy-dhcp-range "192.168.10.100 192.168.10.200" \ --foreman-proxy-dhcp-gateway 192.168.10.1 \ --foreman-proxy-dhcp-nameservers 192.168.10.1 על שרת ייצור לעולם לא יתקין חבילה שלא נבדקה.
יצירת מסנן בתצוגת תוכן — לדוגמה, כדי להחריג חבילות עם CVEs פתוחים:
hammer content-view filter create \
--name "exclude-untested-kernels" \
--content-view "RHEL8-Base" \
--organization "MyOrg" \
--type rpm \
--inclusion falseלאחר פרסום גרסה חדשה, Library (upstream) → Content View v1.5 → Dev → QA → Staging → Production מזיז אותה לסביבה הבאה.
פריסה אוטומטית עם PXE
Smart Proxy עם TFTP ו-DHCP מופעלים נותן לך פריסת PXE ישירות מממשק Foreman. צור מארח בממשק האינטרנט או דרך yum update, בחר תבנית Kickstart, מערכת הפעלה, חלוקה — השרת באתחול הבא מקבל IP מ-Foreman DHCP, מאתחל דרך PXE, מקבל Kickstart מותאם, ומתקין אוטומטית.
לאחר ההתקנה — רישום אוטומטי דרך subscription-manager (RHEL) או foreman_register (אחרים), ולאחר מכן יישום של מניפסטים של Puppet או פלייבוקים של Ansible דרך Remote Execution.
Remote Execution מאפשר לך להריץ פקודות או פלייבוקים שרירותיים על קבוצות מארחים:
hammer job-invocation create \
--job-template "Run Command - Script Default" \
--inputs command="yum update -y --security" \
--search-query "hostgroup = web-servers AND environment = staging"ההתקדמות נראית בזמן אמת, תוצאות עבור כל מארח נמצאות ביומן הביקורת.
| פרמטר | ניהול ידני | Foreman + Katello |
|---|---|---|
| זמן לתיקון 100 שרתים | 8–12 שעות | 2–3 שעות |
| בקרת גרסאות חבילות | אין | מלאה דרך תצוגות תוכן |
| דיווח תאימות | איסוף ידני | ביקורת אוטומטית |
| מורכבות שכפול | גבוהה | לחיצה אחת |
| שלב | משך |
|---|---|
| פריסת Foreman+Katello | יום אחד |
| יצירת סביבות מחזור חיים | יום אחד |
| ייבוא מארחים קיימים | 1–2 ימים |
| הגדרת Remote Execution | 0.5 יום |
| הדרכת צוות | יום אחד |
מקרה אמיתי: תיקון 200 שרתים ב-4 שעות
לקוח עם 200 שרתי CentOS 7 בילה כ-20 שעות בעדכונים חודשיים. לאחר שפרסנו Foreman+Katello עם סביבות מחזור חיים (Dev→QA→Staging→Production) ואוטומציה דרך Remote Execution, התהליך ירד ל-4 שעות. בנוסף, דוחות תאימות לא דרשו עוד איסוף ידני — הם נוצרים כעת דרך API תוך דקות.
דיווח ותאימות
Foreman אוסף עובדות מכל המארחים המנוהלים (דרך Facter עבור Puppet או עובדות Ansible). בממשק, אתה יכול למצוא במהירות את כל המארחים עם קרנל < 5.14.0 או עם פורט 22 פתוח ללא הגבלות. לשילוב עם מערכות חיצוניות — ה-Foreman API:
curl -u admin:password \
"https://foreman.internal/api/hosts?search=os_title+%3D+RHEL+8&per_page=100" \
| jq '.results[] | {name: .name, ip: .ip, os: .operatingsystem_name, last_report: .last_report}'זה משתלב לתוך CMDB או מערכות תאימות. הזמן שנחסך על דוחות תאימות יכול להגיע ל-600 שעות בשנה עבור צי של 200 שרתים.
מה כלול בעבודה שלנו
- פריסת Foreman ו-Katello על שרת ייעודי
- הגדרת Smart Proxy (DHCP, TFTP, DNS)
- יצירת סביבות מחזור חיים ותצוגות תוכן ראשוניות
- שילוב עם Ansible או Puppet
- ייבוא מארחים וקבוצות מארחים קיימים
- הדרכת צוות ותיעוד
- אחריות יציבות לחודש אחד לאחר הפריסה
ציר זמן ועלות
פריסה בסיסית לוקחת 3–4 ימים. שילוב מלא עם ייבוא והדרכה לוקח 5–7 ימים. העלות מחושבת באופן אישי לאחר ביקורת של הצי שלך. צור קשר להערכה — המהנדסים שלנו, עם ניסיון של 10+ שנים בניהול מחזור חיי שרתים, יתאימו את הפתרון האופטימלי. בקש ייעוץ לדיון בפרטים.
קנה מידה
עבור >500 מארחים או אתרים מרובים, אנו מוסיפים Capsule Server (Smart Proxy מרוחק). Capsule מסנכרן תוכן מקומית, מטפל ב-TFTP/DHCP/DNS בקטע הרשת שלו, ומפחית תעבורה ל-Foreman המרכזי. הוספת Capsule נעשית דרך hammer content-view filter create \ --name "exclude-untested-kernels" \ --content-view "RHEL8-Base" \ --organization "MyOrg" \ --type rpm \ --inclusion false . אנו מבטיחים הפחתה פי 3 בזמן התיקון בהשוואה לשיטות ידניות, וחוסכים אלפי דולרים בשנה. הצוות שלנו השלים למעלה מ-50 פריסות מוצלחות של Foreman/Katello בתעשיות שונות.







