مقالات FreeBSD

مدیریت Jail با برنامه iocage

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

 

بخش اول ایجاد یک فلش  با فایل سیستم zfs

از انجایی که iocage به صورت خودکار به دنبال فایل سیستم zfs برای قرار دادن فایل ها و jail است بهتر است که در قدم اول یک فلش با فایل سیستم zfs ایجاد کرده.  در ابتدا باید سرویس zfs رو با استفاده از فرمان زیر راه اندازی کنید تا ماژول مربوط به zfs در هسته بارگذاری شود:

# service zfs start

 

براینکه این امر به صورت خودکار در زمان راه اندازی سیستم انجام شود شما می توانید خط زیر را در فایل rc.conf در شاخه /etc قرار دهید تا در زمان راه اندازی سیستم شما سرویس zfs برای شما راه اندازی شود:

 

zfs_enable="YES"

برای اطمینان از راه اندازی zfs از فرمان kldstat به صورت زیر استفاده کنید:

 

root@Mabedini:~ # kldstat
Id Refs Address            Size     Name
 1   60 0xffffffff80200000 17bc6a8  kernel
 2    1 0xffffffff81a11000 1ee0c8   zfs.ko
 3    1 0xffffffff81c00000 3330     opensolaris.ko

همانطور که مشاهده می کنید دو ماژ<ل معروف zfs.ko و opensolaris.ko در هسته اجرا شده است، در مرحله بعد شما با استفاده از فرمان dmesg باید نام فلش خود را پیدا کنید، خطوط آخر این فرمان  مشخصات فلش متصل شده را برای شما نمایش می دهد به صورت زیر:

da0 at umass-sim0 bus 0 scbus5 target 0 lun 0
da0: <hp v224w 1100> Removable Direct Access SPC-2 SCSI device
da0: Serial Number AA00000000013881
da0: 40.000MB/s transfers
da0: 15520MB (31785600 512 byte sectors)
da0: quirks=0x2<NO_6_BYTE>

 

همانطور که مشاهده کردید می توانید به فلش با  نام da0 دسترسی پیدا کنید، در مرحله بعد شما با استفاده از فرمان zpool یک pool  ساده از نوع zfs برروی فلش خود داشته باشید برای این کار کافیست این فرمان را با سویچ create ، یک نام انتخابی برای pool و نام دیسک یا همان فلش استفاده کنید به صورت زیر:

 

root@Mabedini:~ # zpool create mabedini /dev/da0

 

برای مشاهده pool های ایجاد شده از فرمان zpool به صورت زیر استفاده کنید:

root@Mabedini:~ # zpool list
NAME       SIZE   ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
mabedini  15.1G  74.5K  15.1G         -                0%     0%     1.00x   ONLINE         -

 

همانطور که مشاهده می کنید pool به نام mabedini ایجاد شده است برای مشاده مسیر دسترسی به فلش برای اضافه کردن فایل کافیست از فرمان df به صورت زیر استفاده کنید:

root@Mabedini:~ # df
Filesystem  1K-blocks     Used     Avail      Capacity    Mounted on
mabedini     15364048       19     15364029     0%         /mabedini

 

همانطور که مشاهده می کنید شما می توانید با رفتن به شاخه /mabedini به فلش خود دسترسی داشته باشید. حال در مرحله بعد شما باید برنامه iocage را نصب کنید.

 

اگر شما امکان استفاده از فلش را ندارید نگران نباشید شما می توانید یک فایل با روشی که در مقاله راه اندازی bhyve در FreeBSD ایجاد کنید و به جای نام فلش خود نام فایل را به فرمان zpool داده تا برنامه iocage از این فایل برای ساختن jail استفاده کنید به صورت زیر:

 

# truncate -s 16G mabedini
#zpool create mabedini mabedini

 

بخش دوم نصب برنامه iocage

شما می توانید به دو روش برنامه را نصب کنید روش اول  استفاده از بسته باینری با فرمان pkg install    و نام برنامه به صورت زیر:

 

#pkg install iocage 

 

و یا با استفاده از سیستم port در شاخه /usr/ports/sysutils/iocage/ و اجرا کردن فرمان زیر:

 

#cd /usr/ports/sysutils/iocage/ && make install clean

 

با هر روشی که عمل نصب را انجام می دهید باید فرمان iocage برای شما قابل اجرا باشد، در بعضی از محیط های shell شما باید فرمان rehash را اجرا کنید تا دوباره مسیر های فایل های اجرا بروز شود.

 

بخش اول در راه اندازی

برنامه iocage به صورت خودکار قابلیت دریافت ورژن های مخصوص FreeBSD رو از سایت اصلی این پروژه رو دارد. با این قابلیت که به شما گزینه های انتخابی برای دو ورژن رو در اختیار شما قرار می هد.

در مرحله اول شما باید فرمان iocage را با سویچ fetch  اجرا کنید، اگر بار اول باشد که این فرمان را اجرا می کنید برروی فلش شما که فایل سیستم zfs دارد شروع به ایجاد کردن شاخه های مورد نظر می کند به صورت زیر:

 

# iocage fetch 
Setting up zpool [mabedini] for iocage usage...
If you wish to change zpool, use 'iocage activate'
  INFO: Creating mabedini/iocage
  INFO: Creating mabedini/iocage/jails
  INFO: Creating mabedini/iocage/.defaults
  INFO: Creating mabedini/iocage/download
  INFO: Creating mabedini/iocage/releases
Supported releases are:
   10.2-RELEASE
    9.3-RELEASE
Please select a release [-]: 10.2-RELEASE

 

در این حالت با استفاده از اینترنت  فایل های ورژن مورد نظر شما دریافت و نصب می شود، این کار زمان بر است و شما می توانید فایلهای مورد نظر را به صورت جداگانه دریافت و در هارد خود ذخیره کنید یک سرور وب داشته باشید، فایل های دانلود شده را در مسیر در وب سرور خود قرار دهید با سویچ ftphost آدرس یا نام سرور وب خود را به برنامه iocage اعلام و با سویچ ftpdir  محل  ذخیره شدن فایل های FreeBSD را معین کنید.

 

روش دیگری هم وجود دارد بعد از دریافت فایل های مورد نظر شما می توانید وارد شاخه /iocage شوید به بخش download رفته و بعد شاخه ورژن مورد نظر خود را ایچاد کرده و فایلها را در آن مسیر کپی کنید.

برنامه iocage بعد از دریافت کردن فایل اخرین برروزرسانی های امنیتی را به صورت خودکار دریافت به ورژن دانلود شده اعمال می کند:

 

 

بعد از اتمام بخش fetch پیغام های زیر برای شما نمایش داده می شود:

 

 

 

بخش سوم ایجاد کردن یک jail

برای ایجاد کردن اول jail شما می توانید که iocag با سویچ create استفاده کنید، وقتی اولین بار این فرمان اجرا شود مقداری زمان برای ایچاد کردن اولین jail گرفته می شود ولی برای jail هایی بعدی این زمان بسیار کوتاه تر است، برای آسانتر استفاده کردن از jail های ایجاد شده با استفاده از سویچ tag یک نام انتخاب کنید تا در زمان روشن و خاموش کردن jail بتوانید از این نام استفاده کنید، در زیر یک نمونه از فرمان زیر را مشاهده می کنید، حتی شما در این بخش هم می توانید آدرس ip را هم تنطیم کنید:

#iocage create -c tag=www

 

بعد از ایجاد کردن اولین jail برای مشاهده لیستی از آنها از فرمان زیر استفاده کنید:

 

# iocage list
JID                           UUID                                      BOOT    STATE   TAG
-     1abedeaf-46c7-11e6-9e56-0023269179f3    off      down      2016-07-10@22:22:44
1     6d569100-46c7-11e6-9e56-0023269179f3   off       up           www

 

در این مثال ما دو jail  داریم که www آن در حالت up یا راه اندازی شده قرار دارد، برای راه اندازی یک jail از فرمان start با نام jail  استفاده می شود به صورت زیر:

 

# iocage start  www
* Starting 6d569100-46c7-11e6-9e56-0023269179f3 (www)
  + Started (shared IP mode) OK
  + Starting services        OK
#

 

همانطوری که مشاهده می کنید jail مورد نظر راه اندازی شد برای غیرفعال کردن این jail از سویچ stop استفاده کنید به صورت زیر:

 

# iocage stop www
* Stopping 6d569100-46c7-11e6-9e56-0023269179f3 (www)
  + Running pre-stop         OK
  + Stopping services        OK
  + Removing jail process    OK
  + Running post-stop        OK
rctl: RACCT/RCTL present, but disabled; enable using kern.racct.enable=1 tunable
#

 

برای اتصال به jail  مورد نظر کافیست که از فرمان console به صورت زیر استفاده کنید تا بتوانید jail  مورد نظر خود را پیکربندی کنید:

 

# iocage console www
Last login: Sun Jul 10 17:57:53 on pts/0
FreeBSD 10.3-RELEASE-p4 (GENERIC) #0: Sat May 28 12:23:44 UTC 2016

Welcome to FreeBSD!

Release Notes, Errata: https://www.FreeBSD.org/releases/
Security Advisories:   https://www.FreeBSD.org/security/
FreeBSD Handbook:      https://www.FreeBSD.org/handbook/
FreeBSD FAQ:           https://www.FreeBSD.org/faq/
Questions List: https://lists.FreeBSD.org/mailman/listinfo/freebsd-questions/
FreeBSD Forums:        https://forums.FreeBSD.org/

Documents installed with the system are in the /usr/local/share/doc/freebsd/
directory, or can be installed later with:  pkg install en-freebsd-doc
For other languages, replace "en" with a language code like de or fr.

Show the version of FreeBSD installed:  freebsd-version ; uname -a
Please include that output and any error messages when posting questions.
Introduction to manual pages:  man man
FreeBSD directory layout:      man hier

Edit /etc/motd to change this login announcement.
root@6d569100-46c7-11e6-9e56-0023269179f3:~ #