یکی از راهکارهای نصب سیستم عامل بر روی ماشین های مجازی استفاده از یک قالب آماده و از پیش نصب شده است. این قالب با عنوان 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
حال می بایست اقدام به پاکسازی سیستم عامل لینوکس از موارد زیر نماییم تا در نهایت بتوانیم از آن یک قالب تهیه کنیم:
برای اینکار ابتدا اقدام به متوقف کردن سرویس های جمع آوری رخدادها نمایید:
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
با این اسکریپت می توانید در هر زمان ماشین مجازی خود را به یک قالب تبدیل و از آن جهت ایجاد ماشین های مجازی جدید استفاده نمایید.
ببخشید، برای نوشتن دیدگاه باید وارد بشوید