الويب العربي

الويب العربي (http://www.arabwebtalk.com/index.php)
-   إدارة وتشغيل السيرفرات (http://www.arabwebtalk.com/forumdisplay.php?f=80)
-   -   إنشاء ملف الـ Kickstart، وطريقة استخدامه فى تثبيت النظام (http://www.arabwebtalk.com/showthread.php?t=163387)

صالح عباس 10-10-2011 06:46 AM

إنشاء ملف الـ Kickstart، وطريقة استخدامه فى تثبيت النظام
 
بعد التحية الكريمة لجميع الأخوة الأعضاء، أحببت أن أكتب ذلك الموضوع الذى قد أستفيض به بعض الشيئ، ولكنى أعتقد أنه موضوع ممتع لن تملوا من قرائته بإذن الله.
أظن أن أغلبيتنا تستطيع تثبيت نظام اللينكس عبر الطريقة الإعتيادية، ألا وهى استخدم القرص المضغوط (CD,DVD)، ولكن هل قام أحد بتجربة تثبيت النظام عبر شبكة محلية، أى عن طريق استخدام بروتوكول HTTP أو FTP أو غير ذلك؟ الإجابة قد تكون نعم لبعض الأشخاص، والبعض الآخر لا، لذلك دعونا نقوم بذلك الآن.


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

/root/anaconda-ks.cfg
وهو ما يُعرف بإسم Kickstart file، وتُخزن به الإعدادات التى قمت بإختيارها أثناء عملية التنصيب سواء من لغة، نوع لوحة المفاتيح، طريقة التقسيم، إعدادات الجدار النارى، وما إلى ذلك.
وتكمن فائدة ذلك الملف أنك يمكن أن تستخدمه فى تثبيت نظام على سرفر آخر بهذه الإعدادات الموجودة فى ذلك الملف، فهدفنا الآن هو شرح تثبيت نظام CentOS 6.0 عن طريق تكوين Kickstart file، ومن ثم إستخدامه فى عملية التثبيت.

وأعتقد أن البعض منا يتسائل، كيف سنقوم بتثبيت النظام عبر الشبكة المحلية؟، فعلاً بتأكيد سوف أحتاج إلى أحد خوادم الويب وليكن Apache، والآن ننتقل إلى الشرح بالخطوات السهلة المُبينة إليكم أدناه.

1- تثبيت أحد خواد الويب (httpd)

كود:

yum -y install httpd
ومن ثم التأكد من التثبيت بشكل صحيح عن طريق استخدام rpm للإستعلام عن ذلك،
كود:

rpm -qa | grep httpd
httpd-2.2.21-1.fc15.x86_64


2- نسخ محتويات القرص المضغوط الخاص بتوزيعة CentOS 6.0
بالطبع بما أننا قمنا بالإستغناء عن الإسطوانة الخاصة بالتوزيعة، نريد نسخ محتوياتها، لوضعها على الخادم الخاص بنا، حتى يتمكن جميع العملاء من تثبيت الحزم عن طريقها.
نقوم بإنشاء مسار فى ملفات الـ httpd، والذى سوف يحوى جميع محتويات قرص التوزيعة.

كود:

mkdir /var/www/html/packages
ومن ثم، عمل mount لمحتويات الإسطوانة فى أى مكان تريد، ونسخ محتوياتها إلى المسار الذى قمنا بإنشاءه الآن.
كود:

mount /dev/sr0 /media
cp -R /media/* /var/www/html/packages

3- تكوين ملف الـ Kickstart
يُعتبر ذلك من أصعب الأجزاء فى العملية كلها، لذلك دعونا نسير خطوة بخطوة حتى لا يتعثر أحدنا
ففى البداية سوف أقوم بإنشاء مسار بداخل المسار الذى يحوى محتويات الإسطوانة (/var/www/html/packages)، أما عن فائدة ذلك المسار، ففائدته احتواء ملف الـ Kickstart، والذى سوف أقوم بإستخدامه فى عملية التثبيت.

كود:

mkdir /var/www/html/packages/kick
 touch  /var/www/html/packages/kick/kickstart.cfg

وأخيرًا تكوين الملف ليصبح فى النهاية هكذا،

كود:

cat /var/www/html/packages/kick/kickstart.cfg
  install
  lang en_US.UTF-8
  keyboard us
  timezone --utc Africa/Cairo
  text
    url --url http://192.168.1.4/packages/
 network --device=eth0 --hostname=Ahmed --bootproto=dhcp
  rootpw 123456
  firewall --enabled --port=22:tcp
 authconfig --enableshadow --enablemd5
  selinux --permissive
 bootloader --location=mbr --driveorder=sda
 clearpart --drives=sda --all --initlabel 
part /boot --fstype ext4 --size=100
 part / --fstype ext4 --size=5000
part swap --size=1024 part /home --size=1 --grow
  %packages
 @Core
@Base
@X Window System

install : قمت بتحديد أنى أريد تثبيت نسخة جديدة من النظام وليس عمل ترقية (Upgrade) لنظام موجود بالفعل.
lang en_US.UTF-8 : قمت بتحديد اللغة الإفتراضية أثناء التثبيت، وأيضًا اللغة الإفتراضية للنظام، مصحوبة بالترميز UTF-8
keyboard us : قمت بتحديد نوع لوحة المفاتيح الإفتراضية.
timezone --utc Africa/Cairo : قمت بتحديد التوقيت الذى سوف أستخدمه فى نظامى
text: أجبرت النظام أن يستخدم الـ Text-Mode فى عملية التثبيت بدلاً من الـ GUI، وذلك لمجرد توفير الوقت.
url --url http://192.168.1.4/packages : تحديد المكان الذى يحتوى على الحزم (محتويات الإسطوانة) الذى سوف يستخدمه العملاء فى التثبيت.
network --device=eth0 --hostname=Ahmed --bootproto=dhcp
قمت بتحديد الـ interface المستخدمه، ومن ثم الـ hoostname، وجعل هذا النظام ب ip متغير، يسنده إلية بروتوكول dhcp
rootpw 123456 : بالطبع يتبين من هذا، أنى قمت بإنشاء كلمة مرور للروت، ويمكن أن أقوم بتشفيرها ووضعها أيضًا بدلاً من كتابتها هكذا، ولكن فى تلك الحالة سيكون الأمر هكذا
rootpw --iscrypted e10adc3949ba59abbe56e057f20f883e
firewall --enabled --port=22:tcp : قمت بتفعيل الجدار النارى (iptables)، ومن ثم السماح لخدمة الـ ssh بالمرور.
authconfig --enableshadow --enablemd5 : قمت بتفعيل خاصة الـ shadow على كلمات المرور، وأيضًا تشفيرهم عن طريق md5
selinux --disapled : قمت بإلغاء تتفعيل خدمة الـ SElinux، كما يمكن إسناد إليها permissive أو enforcing.
bootloader --location=mbr --driveorder=sda : تحديد المكان الذى سوف يتم عمل تثبيت للمحمل الإقلاع، وبالطبع هذا المكان هو الـ Mster Boot Record، وأيضًا تحديد الدريف الذى سوف يتم عليه التثبيت، وفى هذه الحاله هو sda
clearpart --drives=sda --all --initlabel : مسح كل البارتشنات الموجوده على ذلك الدريف، وأيضًا بدأ ذلك الدريف

part /boot --fstype ext4 --size=100
part
/ --fstype ext4 --size=5000
part
swap --size=1024
part
/home --size=1 --grow

أما بالنسبة لخوطة التقسيم فهى من أبسط الخطوات، مع العلم أنها قد تكون أصعب وأصعب فى حالة التقسيم المتقدم كتقسيم LVM أو RAID، ولكى نقوم بعملية التقسيم نقوم بكتابة الأمر part ومن ثم البارتشن، ثم تحديد نوع البارتشن، وأخيرًا مساحته.
نلاحز فى النهاية استخدام --grow وذلك لأنى أردت أن تكون مساحة الـ home هى كل المساحة المتبيقة، ففرضت أنها فى البداية 1MB، وبعد ذك قمت بتكبيرها لتملأ ما تبقى من مساحة متوفرة.


%packages
@Core
@Base

@X Window System
قمت بتحديد الحزم التى أريد أن أقوم بتثبيتها على النظام، فقمت بتبيت الحزم الأساسية، بالإضافة إلى X server، وبالطبع يمكن إضافة أى حزمة عن طريق كتابة @ قبل الحزمة، مع كتابة الحزمة بشكل صحيح.

4- السماح للعملاء بعمل إتصال مع السرفر الخاص بى
بالطبع يجب السماح للعملاء بالوصول إلى محتويات الإسطوانه حتى يستخدموها فى عمل تثبيت للنظام، لذلك يتطلب منى أن أقوم بفتح منفذ 80 فى الجدار النارى، عن طريق تنفيذ ذلك الأمر.


كود:

iptables -I INPUT 5 -p tcp -m tcp --dport 80 -j ACCEPT
service iptables save
 service iptables restart

5- التجربة
نقوم بوضع اسطوانة النظام المُراد تثبيته لعمل boot منها (وبالطبع يمكن الإستغناء عن الإسطوانة عن طريق PXE boot كما سنعرف فى مواضيع قادمة)، وعن الدخول إلى شاشة محمل الإقلاع نقوم بالضغط على زر tab، وكتابة الآتى

كود:

linux ks=http://192.168.1.4/package/kick/kickstart.cfg
وفى النهاية أتمنى أن يكون الموضوع قد حقق الإستفادة المطلوبة، أسال الله عز وجل أن يجعل هذا فى ميزان حسناتنا، والسلام عليكم ورحمة الله وبركاته


جميع الأوقات بتوقيت مكة المكرمة. الساعة الآن » 08:22 PM.

Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © ArabWebTalk.Com 2004-2012