رضا اردانه
۳۱ تیر ۱۳۹۷

ساخت قالب لینوکس در VMware

۰ دیدگاه
مقاله آموزشی
امتیاز دهید

یکی از راهکارهای نصب سیستم عامل بر روی ماشین های مجازی استفاده از یک قالب آماده و از پیش نصب شده است. این قالب با عنوان Template در محیط vCenter تعریف می شود و روند راه اندازی ماشین های مجازی را تسریع می نماید.

در خصوص راه اندازی قالب های ویندوزی فرآیند بسیار ساده می باشد. ابتدا یک ماشین مجازی ایجاد می کنید و سیستم عامل ویندوز مدنظر خود را بر روی آن نصب می کنید. پس از انجام پیکربندی های مورد نظر از بروزرسانی سیستم عامل تا نصب آنتی ویروس و VMTools می توانید با استفاده از ابزار sysprep ویندوز اقدام به آماده سازی سیستم عامل جهت تبدیل شدن آن به یک Template را نمایید. اما در خصوص سیستم عامل های لینوکسی این فرآیند کمی پیچیده تر می باشد. در این مقاله می خواهیم یک ماشین مجازی با سیستم عامل CentOS نسخه 7 را به یک قالب آماده در محیط vCenter تبدیل نماییم.

برای شروع کار ابتدا ماشین مجازی خود را ایجاد کرده و اقدام به نصب سیستم عامل CentOS نمایید. پس از پایان فرآیند با پیکربندی بخش شبکه می توانید اقدام به بروز کردن سیستم عامل و در صورت نیاز نصب آنتی ویروس و VMTools نمایید. پس از نهایی شدن این مراحل فرآیندهای زیر را جهت آماده سازی سیستم عامل برای تبدیل شدن به Template طی نمایید:

ابتدا اقدام به نصب ابزارهای کمکی زیر نمایید:

yum -y install net-tools nano deltarpm wget bash-completion yum-plugin-remove-with-leaves yum-utils

سپس اقدام به نصب open-vm-tools نمایید. این بسته نصبی در بردارنده ابزارهای مفیدی جهت مدیریت ماشین های مجازی VMware می باشد.

نکته: بسته نصبی open-vm-tools بهترین جایگزین برای VMware Tools می باشد.

yum -y install open-vm-tools perl

نصب سرویس NTP و پیکربندی آن نیز می تواند جالب توجه باشد:

yum -y install ntp

پس از نصب می بایست این سرویس را پیکربندی نماییم:

vi /etc/ntp.conf

در این فایل با استفاده از مقدار server می توانید آدرس های NTP خود را خط به خط اضافه و در نهایت با ذخیره کردن فایل اقدام به فعالسازی این سرویس با دستور زیر کنید:

systemctl enable ntpd

حال می بایست اقدام به پاکسازی سیستم عامل لینوکس از موارد زیر نماییم تا در نهایت بتوانیم از آن یک قالب تهیه کنیم:

  • YUM
  • Logs
  • SSH keys

برای اینکار ابتدا اقدام به متوقف کردن سرویس های جمع آوری رخدادها نمایید:

systemctl stop rsyslog

systemctl stop auditd

در مرحله بعدی می بایست اقدام به حذف بسته ها و کرنل های قدیمی (منظور نسخه هایی است که بروز شده و کاربردی ندارند) نماییم:

package-cleanup -y –oldkernels –count=1

yum clean all

در ادامه فرآیند می بایست اقدام به حذف لاگ های قدیمی نماییم. این فرآیند با حذف فایل های لاگ صورت می گیرد:

/usr/sbin/logrotate /etc/logrotate.conf –force

rm -f /var/log/*-???????? /var/log/*.gz

rm -f /var/log/dmesg.old

rm -rf /var/log/anaconda

rm -rf /tmp/*

rm -rf /var/tmp/*

حال باید فرآیند Truncate کردن سایر لاگ ها را انجام دهیم. با این فرآیند اطلاعات درون فایل ها حذف خواهند شد:

cat /dev/null > /var/log/audit/audit.log

cat /dev/null > /var/log/wtmp

cat /dev/null > /var/log/lastlog

cat /dev/null > /var/log/grubby

/bin/rm -f /etc/udev/rules.d/70*

در این مرحله باید فرآیند حذف MAC آدرس و UUID ها را طی نماییم:

sed -i ‘/^\(HWADDR\|UUID\)=/d’ /etc/sysconfig/network-scripts/ifcfg-e*

فعالسازی ویژگی onboot شبکه نیز باید انجام شود:

sed -i -e ‘s@^ONBOOT=”no@ONBOOT=”yes@’ /etc/sysconfig/network-scripts/ifcfg-e*

در مرحل بعدی باید کلیدهای SSH را حذف نماییم تا پس از ایجاد ماشین مجازی جدید از این قالب این کلیدها مجدد ایجاد گردند:

rm -f /etc/ssh/*key*

پیکربندی بخش Pubkey Authentication برای SSH نیز در این مرحله انجام میگیرد:

sed -i -r ‘s/^#?(PermitRootLogin|PasswordAuthentication|PermitEmptyPasswords) (yes|no)/\1 no/’ /etc/ssh/sshd_config

sed -i -r ‘s/^#?(PubkeyAuthentication) (yes|no)/\1 yes/’ /etc/ssh/sshd_config

اگر دستورات Shell توسط حساب کاربری root وارد شده است با دستور زیر آنها را حذف نمایید:

rm -f ~root/.bash_history

unset HISTFILE

history -cw

رمزعبور حساب کاربری root را با دستور زیر حذف کنید:

passwd -d root

حال می توانیم تاریخچه دستورات وارد شده توسط حساب کاربری root با اتصال SSH را نیز خالی کنیم:

rm -rf ~root/.ssh/

rm -f ~root/anaconda-ks.cfg

history -c

و در نهایت فعالسازی بخش Post Installation و خاموش کردن ماشین مجازی:

sys-unconfig

init 0

اکنون می توانید ماشین مجازی را به Template تبدیل کرده و پس از آن هر زمان که نیاز بود از این قالب در عرض چند دقیقه یک ماشین مجازی با سیستم عامل CentOS ایجاد نمایید.

قالب های ایجاد شده با سیستم عامل های مختلف جهت انجام فرآیندهای بروزرسانی می بایست در بازه زمانی های مشخصی به ماشین مجازی تبدیل شده و مجدد فرآیند قالب سازی آنها طی شود. در خصوص سیستم عامل ویندوز پیچیدگی های بالا وجود ندارد اما جهت مدیریت پیچیدگی های سیستم عامل لینوکس می توانید متن پایین را در یک فایل با پسوند sh ذخیره نمایید و با استفاده از scp آنرا بر روی ماشین مجازی لینوکسی خود کپی نمایید.

با اجرای آن تمام فرآیندهای بالا به صورت اتوماتیک طی شده و ماشین شما جهت تبدیل شدن به Template آماده می شود:

yum -y install net-tools nano deltarpm wget bash-completion yum-plugin-remove-with-leaves yum-utils
yum -y install open-vm-tools perl
yum -y install ntp
systemctl stop rsyslog
systemctl stop auditd
package-cleanup -y –oldkernels –count=1
yum clean all
/usr/sbin/logrotate /etc/logrotate.conf –force
rm -f /var/log/*-???????? /var/log/*.gz
rm -f /var/log/dmesg.old
rm -rf /var/log/anaconda
rm -rf /tmp/*
rm -rf /var/tmp/*
cat /dev/null > /var/log/audit/audit.log
cat /dev/null > /var/log/wtmp
cat /dev/null > /var/log/lastlog
cat /dev/null > /var/log/grubby
/bin/rm -f /etc/udev/rules.d/70*
sed -i ‘/^\(HWADDR\|UUID\)=/d’ /etc/sysconfig/network-scripts/ifcfg-e*
sed -i -e ‘s@^ONBOOT=”no@ONBOOT=”yes@’ /etc/sysconfig/network-scripts/ifcfg-e*
rm -f /etc/ssh/*key*
sed -i -r ‘s/^#?(PermitRootLogin|PasswordAuthentication|PermitEmptyPasswords) (yes|no)/\1 no/’ /etc/ssh/sshd_config
sed -i -r ‘s/^#?(PubkeyAuthentication) (yes|no)/\1 yes/’ /etc/ssh/sshd_config
rm -f ~root/.bash_history
unset HISTFILE
history -cw
passwd -d root
rm -rf ~root/.ssh/
rm -f ~root/anaconda-ks.cfg
history -c
sys-unconfig

باید در نظر داشته باشید که دستور پاکسازی تاریخچه و تنظیم کردن NTP سرور ها توسط اسکریپت اجرا نمی شود، لذا پس از اجرای فرآیند بالا با ویرایش کردن فایل ntp.conf اقدام به ثبت آدرس های NTP کرده و پس از آن دستورات زیر را اجرا نمایید:

history -c

sys-unconfig

با این اسکریپت می توانید در هر زمان ماشین مجازی خود را به یک قالب تبدیل و از آن جهت ایجاد ماشین های مجازی جدید استفاده نمایید.

امتیاز دهید

دیدگاهتان را بنویسید