לבעוט במערכת (KickStart)

להתקין מכונה אחת פעם בכל זמן, זה לא משימה גדולה.
אבל מה עושה ה-SysAdmin הממוצע כאשר הוא נתקל בצורך להתקין מערכות פעמים רבות, ולפעמים אפילו להתקין מחדש את אותה המערכת, כמה פעמים ביום? אוטומציה.
הרבה נושאים בתחום ה-System ניתן להכניס לאוטומציה בקלות יחסית. התקנת מערכות הפעלה היא אי שם באמצע. הרבה פעמים צריך להתחשב בכמה סוגים שונים של חומרה, דרישות תוכנה ועוד.
ברוב מערכות ההפעלה כיום יש דרך לבצע התקנה אוטומטית: יש לנו את SuSE עם AutoYast, את דביאןאובונטו עם preseeding ו-RedHat עם מנגנון ה-KickStart.
כל הפתרונות האלו מאפשרים התקנה של מערכת ההפעלה, ללא מגע יד אדם, ובד"כ בצורה די גמישה. אני אתמקד דווקא ב-KickStart, כלי ההתקנה של Red Hat. כור מחצבתי, והכלי הראשון שבאמת עבדתי אתו כדי להתקין מערכות הפעלה בצורה אוטומטית.

אז מה מאפשר KickStart
בקובץ KickStart אין חלוקה ברורה בין השלבים, לכן החלטתי להתייחס אליו ב-4 חלקים: מערכת הפעלה, חלוקה למחיצותמערכות קבצים, חבילות וסקריפטים. חלקו הראשון והבסיסי הוא בעצם מענה על כל שאלות ההתקנה: מאיפה להתקין (רשת, CD, דיסק קשיח), הגדרות רשת, שפה, אבטחה וכו'. חלקו השני של הקובץ מתייחס לחלוקה למחיצות, מערכות קבצים ועוד. חלקו השלישי מאפשר בחירת קבוצות של חבילות או חבילות בודדות. חלק זה מאפשר התקנה של קבוצה שלמה, למשל "Development Tools" אשר כולל בתוכו את GCC, glibc-devel, kernel-devel ועוד. חלקו הרביעי (והאופציונאלי) של הקובץ, מאפשר הרצה של סקריפטים בנקודות עוגן שונות במהלך ההתקנה: לפני שההתקנה מתחילה ולאחריה.

הגדרות מערכת הפעלה


install
url --url http://192.168.4.112/rhel4/esu4
lang en_US.UTF-8
langsupport --default=en_US.UTF-8 en_US.UTF-8
network --device eth0 --bootproto static --ip 192.168.4.199 --netmask 255.255.255.0 --gateway 192.168.4.1 --hostname temphost
rootpw --iscrypted $1$g5CMJ64x$SDl4NK0711gLMR6bk2VRy1
firewall --disabled
selinux --disabled
authconfig --enableshadow --enablemd5
timezone Asia/Jerusalem
bootloader --location=mbr --append="console=tty0 console=ttyS0"

  • install – אומר ל-Installer כי ברצוננו לבצע התקנה חדשה, ולא שדרוג
  • url – אפשרות זו מכוונת את ה-Installer למקור קבצי ההתקנה. ניתן להפנות למקור FTP/HTTP, NFS או CIFS.
  • lang/langsupport – הגדרות מקלדתשפה.
  • network – הגדרות התקשורת של המערכת. בחלק זה ניתן לציין האם לתת למחשב כתובת קבועה, או לעבוד מול DHCP, שם המכונה ועוד
  • rootpw – אפשרות זו קובעת את סיסמת המשתמש root לאחר ההתקנה. ללא האפשרות –uscrytpted ניתן לציין סיסמה ללא הצפנתה
  • firewall – ל-Installer יש יכולת להפעיל הגדרות Firewall בסיסיות שיעזרו להגן על המחשב בעליה ראשונה.
  • selinux – מסמן למערכת האם לאפשר את השימוש ב-SELinux, ובאיזה Policy להשתמש
  • authconfig – הגדרות אבטחה כמו סיסמת root ועוד.
  • timezone – הגדרת אזור זמן
  • bootloader – הגדרות ה-bootloader. למשל: האם להגן עליו בסיסמה, איפה להתקין אותו ועוד.

הגדרות חלוקה למחיצות

clearpart --all --initlabel
part / --fstype ext3 --size=1 --grow 0--ondisk=sda
part swap --size=512

  • clearpart – אפשרות זו אומרת ל-Installer כי ברצוננו לנקות את כל המחיצות הקיימות במערכת (–all). ניתן לבקש רק מחיקה של מחיצות Linux, או מחיקה מדיסק מסוים
  • part – הגדרת מחיצה. ניתן להגדיר מחיצות שונות, מסוגים ונים. למשל, ניתן להגדיר מחיצה שתהיה מסוג PV (או Physical Volume), ותשמש לעבודה עם LVM

בחירת חבילות

בחלק זה ניתן לבצע 2 סוגים של בחירה: קבוצות וחבילות בודדות. בחירה בקבוצת חבילות תתקין כמובן את כל הבחילות בקבוצה, ואת התלויות שלהן. בחירת חבילה יחידה תתקין רק אותה, ואת התלויות שלה

%packages
@ admin-tools
@ editors
@ server-cfg
@ development-tools
grub
kernel-devel
e2fsprogs
kernel

הרצת סקריפטים

%post
chkconfig sendmail off
wget http://10.0.0.1/someprogram.rpm -C /tmp/some.rpm
rpm -ivh /tmp/some.rpm
rm -f /tmp/some.rpm

סקריפטים אלו ירוצו כבר בתוך מערכת ההפעלה המותקנת (בעזרת chroot). בחלק זה ניתן לבצע שינויים והתאמות למערכת ההפעלה, להתקין חבילות ועוד.
אפשרות נוספת היא שימוש בתגית "pre%" אשר מאפשר הרצת סקריפטים בעת טעינת ה-Installer ולפני התחלת ההתקנה עצמה.

למתעניינים, תיעוד מלא של כל האפשרויות של KickStart ניתן למצוא תיעוד באתר Fedora

This entry was posted in Uncategorized and tagged , , . Bookmark the permalink.

3 Responses to לבעוט במערכת (KickStart)

  1. ik_5 says:

    אתה לא כותב הרבה, אבל כשאתה כותב זה שווה קריאה ושמירה :)

    שכחתי מKickStart והזכרת לי אותו, תודה :)

  2. רבין says:

    תזוכרת בזמן הנכון, היום בעידן ה-VM אתה נוטה לשכוח את הדברים האלה כשאתה מגיע להתקין עמדות חדשות פיזיות.

  3. אלעד says:

    חשוב לציין גם שאנקונדה שומרת את קובץ הקיקסטארט שבה היא השתמשה ב ‎/root/anconda-ks.cfg
    גם אם מתקינים בלי קיקסטארט.
    כן, שמעתם נכון. התקנתם פדורה מהDVD, ובחרתם סט חבילות שונה, הגדרת מחיצות יחודית ומה שבא לכם, ועכשיו לא תצטרכו לעשות זאת ידנית בפעם הבאה שתרצו להתקין – פשוט שמרו את הקובץ הזה במקום בטוח.
    אפשר גם לכתוב סקריפט קטן שמוסיף לו כל חבילה שאתם מתקינים, כך שתוכלו להתקין את המערכת מחדש במקרה של צרה בלי להתקין ידנית את כל החבילות שהיו שלכם מחדש :)

כתיבת תגובה

האימייל שלך לא יוצג באתר. (*) שדות חובה מסומנים

*

תגי HTML מותרים: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">