GROUPS.CONF(5) ClusterShell User Manual GROUPS.CONF(5) نام (NAME) groups.conf - پرونده پیکربندی گروه‌های گره ClusterShell توضیحات (DESCRIPTION) کتابخانه ClusterShell پیکربندی گروه‌های گره خود را از منابع زیر، به ترتیب اولویت نزولی به دست می‌آورد: 1. $CLUSTERSHELL_CFGDIR/groups.conf (فقط زمانی استفاده می‌شود که $CLUSTERSHELL_CFGDIR تعریف شده باشد) 2. پرونده پیکربندی کاربر ($XDG_CONFIG_HOME/clustershell/groups.conf، به طور پیش‌فرض $HOME/.config/clustershell/groups.conf) 3. محیط مجازی پایتون ({sys.prefix}/etc/clustershell/groups.conf) 4. نصب محلی کاربر با pip ($HOME/.local/etc/clustershell/groups.conf) 5. پرونده پیکربندی سراسری سیستم (/etc/clustershell/groups.conf) برای هر پارامتر، اولین مقدار دریافت‌شده استفاده خواهد شد. اگر هیچ groups.conf یافت نشود، پشتیبانی از گروه غیرفعال خواهد شد. همچنین پرونده‌های پیکربندی اضافی در صورت وجود از دایرکتوری‌های تعیین‌شده توسط گزینه confdir خوانده می‌شوند. برای جزئیات بیشتر به گزینه confdir در زیر مراجعه کنید. پرونده‌های پیکربندی قالبی به سبک RFC 822 دارند که می‌توانند از چندین بخش با هر ترتیبی تشکیل شوند. دو نوع بخش وجود دارد: Main و Group_source: Main گزینه‌های پیکربندی سراسری. تنها باید یک بخش Main وجود داشته باشد. Group_source بخش‌های Group_source پیکربندی هر منبع گروه گره (یا فضای نام) را تعریف می‌کنند. این پیکربندی شامل تعاریف دستورات خارجی (map، mapall، all، list و reverse) است. در پرونده‌های پیکربندی اضافی، تنها بخش‌های Group_source مجاز هستند. گزینه‌های [Main] پارامترهای پیکربندی بخش Main در زیر توضیح داده شده‌اند. default مشخص کردن منبع گروه پیش‌فرض (فضای نام گروه) که توسط تجزیه‌کننده NodeSet هنگام عدم تعیین صریح منبع گروه توسط کاربر (مثلاً "@io") استفاده می‌شود. confdir فهرست اختیاری از دایرکتوری‌ها که کتابخانه ClusterShell باید در آن‌ها به دنبال پرونده‌های .conf بگردد؛ پرونده‌هایی که منابع گروه مورد استفاده را تعریف می‌کنند. هر پرونده در این دایرکتوری‌ها با پسوند conf. باید شامل یک یا چند بخش Group_source باشد که در گزینه‌های [Group_source] در زیر مستند شده است. این بخش‌ها با منابع گروه تعریف‌شده در /etc/clustershell/groups.conf ادغام می‌شوند تا مجموعه کامل منابع گروهی را تشکیل دهند که ClusterShell استفاده خواهد کرد. بخش‌های Group_source تکراری مجاز نیستند. نکته: پرونده‌های conf. که برای کاربر جاری قابل خواندن نباشند نادیده گرفته می‌شوند (به جز پرونده‌ای که منبع گروه پیش‌فرض را تعریف می‌کند). متغیر $CFGDIR با مسیر دایرکتوری پیکربندی با بالاترین اولویت یافت‌شده (جایی که groups.conf قرار دارد) جایگزین می‌شود. مقدار پیش‌فرض confdir هم پیکربندی سراسری سیستم و هم هرگونه پیکربندی نصب‌شده کاربر را (به لطف $CFGDIR) فعال می‌کند. مسیرهای تکراری دایرکتوری نادیده گرفته می‌شوند. groupsdir به عنوان نام مستعار برای confdir پذیرفته می‌شود و در صورت تعریف هر دو، اولویت دارد. autodir فهرست اختیاری از دایرکتوری‌ها که کتابخانه ClusterShell باید در آن‌ها به دنبال پرونده‌های .yaml بگردد؛ پرونده‌هایی که فرهنگ لغت‌های گروهی درون‌پرونده‌ای را تعریف می‌کنند. نیازی به فراخوانی دستورات خارجی برای این پرونده‌ها نیست، آن‌ها توسط خود کتابخانه ClusterShell تجزیه می‌شوند. تعاریف چندگانه منابع گروه در یک پرونده پشتیبانی می‌شود. متغیر $CFGDIR با مسیر دایرکتوری پیکربندی با بالاترین اولویت یافت‌شده (جایی که groups.conf قرار دارد) جایگزین می‌شود. مقدار پیش‌فرض autodir هم پیکربندی سراسری سیستم و هم هرگونه پیکربندی نصب‌شده کاربر را (به لطف $CFGDIR) فعال می‌کند. مسیرهای تکراری دایرکتوری نادیده گرفته می‌شوند. گزینه‌های [Group_source] پارامترهای پیکربندی هر بخش منبع گروه در زیر توضیح داده شده‌اند. map مشخص کردن دستور شل خارجی مورد استفاده برای تبدیل یک نام گروه به یک nodeset، فهرستی از گره‌ها یا فهرستی از nodeset (جداشده با نویسه‌های فاصله یا خط جدید). متغیر $GROUP قبل از اجرای دستور جایگزین می‌شود. باید حداقل یکی از گزینه‌های map یا mapall تعریف شود. mapall دستور شل خارجی اختیاری که باید تمامی نگاشت‌های گروه به گره‌ها را برای این منبع گروه در یک فراخوانی واحد برگرداند؛ یک خط به صورت group: nodes به ازای هر گروه. زمانی مفید است که منبع بتواند تمام گروه‌های خود را به یکباره خروجی دهد (مثلاً با sinfo یا ansible-inventory --list)، زیرا در این صورت یک فراخوانی واحد به هر دو پرس‌وجوی map و list از حافظه موقت (کش) پاسخ می‌دهد. خروجی mapall بر فراخوانی list اولویت دارد. اگر map نیز تعریف شده باشد، به عنوان راهکار پشتیبان برای گروه‌هایی که در خروجی mapall وجود ندارند (یا برای همه گروه‌ها در صورت غیرفعال بودن کش) استفاده می‌شود؛ در غیر این صورت، گروه‌های ناموجود به یک nodeset خالی تبدیل می‌شوند. نخستین : در هر خط، نام گروه را از گره‌ها جدا می‌کند، بنابراین نام گروه‌ها باید واژه‌های تکی و بدون : باشند. خطوط تکراری گروه ادغام می‌شوند. یک خط خروجی بدشکل باعث شکست کل فراخوانی mapall می‌شود (چیزی کش نمی‌شود و پرس‌وجوی بعدی دوباره تلاش می‌کند)، و شکست در اجرای دستور mapall به map بازگشت نخواهد کرد. all دستور شل خارجی اختیاری که باید یک nodeset، فهرستی از گره‌ها یا فهرستی از nodeset از تمام گره‌ها را برای این منبع گروه برگرداند. در صورت عدم تعیین، کتابخانه تلاش می‌کند تا با استفاده از دستور خارجی list در همان منبع گروه و سپس map برای هر گروه، تمام گره‌ها را تفکیک کند. list دستور شل خارجی اختیاری که باید فهرست تمام گروه‌ها را برای این منبع گروه برگرداند (جداشده با نویسه‌های فاصله یا خط جدید). در صورتی که mapall تعریف شده باشد استفاده نمی‌شود، مگر اینکه کش غیرفعال شده باشد. reverse دستور شل خارجی اختیاری برای یافتن گروه(های) یک گره تکی. متغیر $NODE از قبل جایگزین می‌شود. اگر این فراخوانی مشخص نشود، عملیات معکوس در حافظه توسط کتابخانه از طریق فراخوانی‌های خارجی list و map محاسبه می‌شود. همچنین اگر تعداد گره‌ها برای عملیات معکوس بیشتر از تعداد گروه‌های موجود باشد، از اجرای دستور خارجی reverse به طور خودکار صرف‌نظر می‌شود. cache_time تعداد ثانیه‌هایی که نتیجه هر فراخوانی فقط در حافظه رم (کش) نگهداری می‌شود. پیش‌فرض ۳۶۰۰ ثانیه است. این گزینه فقط برای دیمن‌هایی که از nodegroups استفاده می‌کنند مفید است. هنگامی که کتابخانه یک دستور شل خارجی منبع گروه را اجرا می‌کند، دایرکتوری کاری جاری از قبل روی confdir مربوطه تنظیم می‌شود. این امر امکان استفاده از مسیرهای نسبی برای پرونده‌های شخص ثالث را در دستور فراهم می‌کند. ورودی استاندارد دستور به /dev/null متصل است. علاوه بر متغیرهای وابسته به متن $GROUP و $NODE که در بالا توضیح داده شد، دو متغیر زیر نیز همیشه در دسترس هستند و قبل از اجرای دستورات شل جایگزین می‌شوند: • $CFGDIR با مسیر دایرکتوری پایه با بالاترین اولویت groups.conf جایگزین می‌شود • $SOURCE با نام منبع جاری جایگزین می‌شود هر دستور خارجی در صورتی که عملیات قابل انجام نباشد ممکن است یک کد بازگشتی غیرصفر برگرداند. اما اگر فراخوانی مقدار صفر برگرداند (برای مثال برای یک گروه ناموجود)، کاربر هنگام تلاش برای تفکیک چنین گروه ناشناخته‌ای هیچ خطایی دریافت نخواهد کرد. رفتار مطلوب بر عهده مدیر سیستم است. مصرف منابع (RESOURCE USAGE) تمامی نتایج دستورات خارجی برای جلوگیری از فراخوانی‌های مکرر در حافظه کش می‌شوند. هر نتیجه برای مدت زمان محدودی نگهداری می‌شود. برای تنظیم این رفتار به گزینه cache_time مراجعه کنید. مثال‌ها (EXAMPLES) پرونده پیکربندی ساده برای گروه‌های محلی و اتصال به پارتیشن‌های Slurm. groups.conf [Main] default: local confdir: /etc/clustershell/groups.conf.d $CFGDIR/groups.conf.d autodir: /etc/clustershell/groups.d $CFGDIR/groups.d [local] map: sed -n 's/^$GROUP:\(.*\)/\1/p' /etc/clustershell/groups list: sed -n 's/^\([0-9A-Za-z_-]*\):.*/\1/p' /etc/clustershell/groups [slurm] map: sinfo -h -o "%N" -p $GROUP all: sinfo -h -o "%N" list: sinfo -h -o "%P" reverse: sinfo -h -N -o "%P" -n $NODE فایل‌ها (FILES) $CLUSTERSHELL_CFGDIR/groups.conf (پیش‌فرض: /etc/clustershell/groups.conf) پرونده پیکربندی سراسری گروه‌های گره. $CLUSTERSHELL_CFGDIR/groups.conf.d/ (پیش‌فرض: /etc/clustershell/groups.conf.d/) دایرکتوری پیشنهادی برای پرونده‌های پیکربندی اضافی. $CLUSTERSHELL_CFGDIR/groups.d/ (پیش‌فرض: /etc/clustershell/groups.d/) دایرکتوری پیشنهادی برای autodir، جایی که پرونده‌های بومی تعریف گروه (پرونده‌های yaml.) در آن قرار دارند. $XDG_CONFIG_HOME/clustershell/groups.conf پرونده پیکربندی اصلی کاربر برای groups.conf. اگر $XDG_CONFIG_HOME تعریف نشده باشد، به جای آن از $HOME/.config/clustershell/groups.conf استفاده می‌شود. {sys.prefix}/etc/clustershell/groups.conf پرونده پیکربندی هنگامی که ClusterShell در یک محیط مجازی پایتون نصب شده باشد. $HOME/.local/etc/clustershell/groups.conf پرونده پیکربندی محلی کاربر برای groups.conf (نصب پیش‌فرض برای pip --user) همچنین ببینید (SEE ALSO) clubak(1), cluset(1), clush(1), nodeset(1) https://clustershell.readthedocs.io نویسنده (AUTHOR) Stephane Thiell حق نشر (COPYRIGHT) GNU Lesser General Public License version 2.1 or later (LGPLv2.1+) 1.10.1 2026-07-16 GROUPS.CONF(5)