.\" generated with Ronn-NG/v0.10.1 .\" http://github.com/apjanke/ronn-ng/tree/0.10.1 .TH "PUPPET\-EPP" "8" "January 2025" "Vox Pupuli" "OpenVox manual" .SH "نام (NAME)" \fBpuppet\-epp\fR \- تعامل مستقیم با تجزیه‌کننده و رندرکننده قالب EPP\. .SH "خلاصه دستور (SYNOPSIS)" puppet epp \fIaction\fR .SH "گزینه‌ها (OPTIONS)" توجه داشته باشید که هر تنظیمی که در فایل پیکربندی معتبر باشد، به عنوان یک آرگومان بلند نیز معتبر است، هرچند ممکن است به اقدام فعلی مربوط باشد یا نباشد\. برای مثال، \fBserver\fR و \fBrun_mode\fR تنظیمات معتبری هستند، بنابراین می‌توانید \fB\-\-server \fR یا \fB\-\-run_mode \fR را به عنوان آرگومان مشخص کنید\. .P برای مشاهده فهرست کامل پارامترهای مجاز، مستندات فایل پیکربندی را در \fIhttps://puppet\.com/docs/puppet/latest/configuration\.html\fR ببینید\. فهرستی دارای توضیح از تمام گزینه‌های پیکربندی را می‌توان با اجرای puppet همراه با \fB\-\-genconfig\fR نیز ایجاد کرد\. .TP \-\-render\-as FORMAT قالبی که خروجی در آن ارائه (رندر) می‌شود\. رایج‌ترین قالب‌ها عبارتند از \fBjson\fR، \fBs\fR (رشته)، \fByaml\fR و \fBconsole\fR، اما گزینه‌های دیگری مانند \fBdot\fR نیز گاهی در دسترس هستند\. .TP \-\-verbose آیا ثبت گزارش‌ها با جزئیات کامل (پرحرف) انجام شود یا خیر\. .TP \-\-debug آیا اطلاعات اشکال‌زدایی ثبت شود یا خیر\. .SH "عملیات‌ها (ACTIONS)" .IP "\(bu" 4 \fBdump\fR \- خروجی گرفتن از درخت تجزیه داخلی قالب جهت اشکال‌زدایی: \fBخلاصه دستور (SYNOPSIS)\fR .IP puppet epp dump [\-\-e \fIsource\fR] [\-\-[no\-]validate] [\-\-format \fIold, pn, or json\fR] [\-\-pretty] [\-\-[no\-]header] [\-\-format \fIold|pn|json\fR] [\-\-pretty] { \-e \fIsource\fR | [\fItemplates\fR \|\.\|\.\|\.] } .IP \fBتوضیحات (DESCRIPTION)\fR .IP عملیات dump ساختار نحوی EPP را تجزیه و اعتبارسنجی می‌کند و مدل AST حاصل را در قالبی خوانا برای انسان (اما نه لزوماً ساده برای درک) استخراج می‌کند\. .IP قالب خروجی را می‌توان با استفاده از \-\-format \fIold|pn|json\fR کنترل کرد که در آن: .IP "\(bu" 4 \&'old' قالب پیش‌فرض اما اکنون منسوخ‌شده است که API به شمار نمی‌آید\. .IP "\(bu" 4 \&'pn' نمادگذاری گسترش‌یافته S\-Expression در پاپت (Puppet Extended S\-Expression Notation) است\. .IP "\(bu" 4 \&'json' همان گراف 'pn' را با ساختار نحوی JSON خروجی می‌دهد\. .IP "" 0 .IP هنگامی که گزینه \-\-pretty همراه با \-\-format 'pn' یا 'json' مشخص شود، خروجی به شکل مرتب و خوانا (pretty printed) نمایش داده می‌شود\. این گزینه روی قالب 'old' تأثیری ندارد\. .IP این دستور یک یا چند فایل قالب (\.epp) یا یک \-e همراه با متن منبع قالب را می‌پذیرد\. قالب‌های مشخص‌شده می‌توانند مسیرهایی به فایل‌های قالب باشند، یا ارجاعاتی به قالب‌ها در ماژول‌ها که به شکل \fImodulename\fR/\fItemplate\-name\fR\.epp داده شده‌اند\. اگر هیچ آرگومانی داده نشود، stdin خوانده می‌شود (مگر اینکه به ترمینال متصل باشد)\. .IP اگر چند قالب مشخص شده باشد، آن‌ها با یک هدر که نشان‌دهنده نام قالب است از یکدیگر جدا می‌شوند\. این هدر را می‌توان با گزینه \-\-no\-header حذف کرد\. گزینه \-\-[no\-]header در صورتی که فقط یک قالب دامپ شود، هیچ تأثیری ندارد\. .IP هنگام اشکال‌زدایی خودِ تجزیه‌کننده epp، ممکن است مفید باشد که مرحله اعتبارسنجی را با گزینه \fB\-\-no\-validate\fR غیرفعال کنید تا مشاهده شود که تجزیه‌کننده از منبع داده‌شده چه چیزی تولید کرده است\. .IP این دستور تنظیم/گزینه \-\-render\-as را نادیده می‌گیرد\. .IP \fBگزینه‌ها (OPTIONS)\fR \fI\-\-e \- دامپ کردن یک عبارت منبع epp که در خط فرمان داده شده است\. .IP \fI\-\-format \- دریافت نتیجه در قالب 'old' (منسوخ‌شده)، 'pn' (قالب جدید)، یا 'json' (قالب جدید در JSON)\. .IP \fI\-\-[no\-]header\fR \- نمایش دادن یا ندادن هدر حاوی نام فایل میان فایل‌ها\. .IP \fI\-\-pretty\fR \- مرتب‌سازی و زیباسازی خروجی\. فقط همراه با \-\-format pn یا json قابل استفاده است\. .IP \fI\-\-[no\-]validate\fR \- اعتبارسنجی یا عدم اعتبارسنجی نتیجه تجزیه‌شده؛ با no\-validate فقط خطاهای نحوی گزارش می‌شوند\. .IP \fBمقادیر بازگشتی (RETURNS)\fR .IP دامپ حاصل از مدل AST، مگر اینکه خطاهای نحوی یا اعتبارسنجی وجود داشته باشد\. .IP "\(bu" 4 \fBrender\fR \- رندر کردن یک قالب epp به صورت متن: \fBخلاصه دستور (SYNOPSIS)\fR .IP puppet epp render [\-\-node \fInode_name\fR] [\-\-e \fIsource\fR] [\-\-values \fIvalues_hash\fR] [\-\-values_file \fIpp_or_yaml_file\fR] [\-\-facts \fIfacts_file\fR] [\-\-[no\-]header] \-e \fIsource\fR | [\fItemplates\fR \|\.\|\.\|\.] .IP \fBتوضیحات (DESCRIPTION)\fR .IP این عملیات یک یا چند قالب EPP را رندر می‌کند\. .IP این دستور یک یا چند قالب (فایل‌های \.epp) را می‌پذیرد که به همان روشی داده می‌شوند که قالب‌ها به تابع \fBepp\fR در پاپت ارسال می‌شوند (یک مسیر کامل، یا یک ارجاع نسبی به صورت '\fImodulename\fR/\fItemplate\-name\fR\.epp')، یا به عنوان یک مسیر نسبی\. در صورتی که مسیر داده‌شده هم با یک نام ماژول/قالب و هم با یک فایل مطابقت داشته باشد، قالب موجود در ماژول استفاده می‌شود\. .IP همچنین می‌توان معادل inline_epp را با دادن قالب پس از یک \-e، یا با هدایت متن منبع EPP از طریق لوله (pipe) به دستور انجام داد\. .IP مقادیر قالب را می‌توان با استفاده از زبان پاپت در خط فرمان با \fB\-\-values\fR، یا در یک فایل \.pp یا \.yaml با ارجاع از طریق \fB\-\-values_file\fR تعریف کرد\. در صورت مشخص کردن هر دو، نتیجه ادغام می‌شود و \-\-values اولویت بالاتری دارد\. .IP گزینه \-\-values اجازه می‌دهد توالی‌ای از عبارات زبان پاپت در خط فرمان تعریف شود، درست همان‌گونه که ممکن است در یک فایل \.pp ارجاع داده‌شده با \fB\-\-values_file\fR داده شود\. این گزینه می‌تواند مقادیر متغیرها را تنظیم کند (که در قالب در دسترس قرار می‌گیرند)، و باید یا \fBundef\fR یا یک \fBHash\fR از مقادیر تولید کند (هش می‌تواند خالی باشد)\. تولید \fBundef\fR شبیه‌سازی می‌کند که قالب بدون هش آرگومان‌ها فراخوانی شده و در نتیجه فقط به متغیرهای حوزه بیرونی خود ارجاع می‌دهد\. هنگامی که یک هش داده می‌شود، قالب محدود به مشاهده تنها حوزه سراسری (global scope) است\. بنابراین امکان شبیه‌سازی انواع مختلف فراخوانی توابع \fBepp\fR و \fBinline_epp\fR، با یا بدون هش مشخص، وجود دارد\. توجه داشته باشید اگر متغیرهایی داده شوند، در این شبیه‌سازی همیشه در دسترس هستند \- برای آزمایش اینکه قالب فقط به متغیرهای ارائه‌شده به عنوان آرگومان ارجاع دهد، یک هش در \-\-values یا \-\-values_file ایجاد کنید، هیچ متغیر غیر سراسری را مشخص نکنید، و تنظیم \-\-strict_variables را فعال کنید\. .IP اگر چند قالب مشخص شود، همان مجموعه مقادیر به هر قالب داده می‌شود\. اگر هم از \-\-values و هم از \-\-values_file استفاده شود، مقادیر \-\-values روی مقادیر ارائه‌شده در فایل بازنویسی و ادغام می‌شوند\. .IP هنگامی که چند قالب رندر می‌شوند، یک هدر جداکننده بین قالب‌ها نمایش داده می‌شود که نام قالب را قبل از خروجی نشان می‌دهد\. خروجی هدر را می‌توان با \fB\-\-no\-header\fR خاموش کرد\. این کار همچنین نتایج قالب‌ها را بدون اضافه کردن جداکننده‌های خط جدید به یکدیگر متصل می‌کند\. .IP به طور پیش‌فرض از فکت‌های (Facts) مربوط به نودی که دستور روی آن اجرا می‌شود استفاده می‌شود\. در صورتی که نودهای دیگر گزارش داده باشند و فکت‌های خود را فرستاده باشند، می‌توان با استفاده از فلگ \fB\-\-node \fR فکت‌های آن نودها را به دست آورد\. .IP می‌توان بازنویسی فکت‌های نود و همچنین فکت‌های اضافی را در یک فایل \.yaml یا \.json تعیین کرده و با گزینه \-\-facts به آن ارجاع داد\. (مقادیر را می‌توان در قالب yaml مستقیماً از \fBfacter\fR یا از puppet برای یک نود خاص به دست آورد)\. توجه داشته باشید که شبیه‌سازی متغیر رزروشده \fB$facts\fR به هیچ روش دیگری امکان‌پذیر نیست\. .IP توجه داشته باشید که تنظیم متغیرها با استفاده از زبان پاپت که نام یکسانی با فکت‌ها دارند ممکن نیست، زیرا از آنجا که فکت‌ها ابتدا مقداردهی می‌شوند، این کار منجر به خطای "attempt to redefine a variable" (تلاش برای بازتعریف یک متغیر) می‌شود\. .IP اگر هیچ خطای اعتبارسنجی وجود نداشته باشد، با کد وضعیت 0 خارج می‌شود\. در صورت بروز خطا، هیچ خروجی رندرشده‌ای برای آن فایل قالب تولید نمی‌شود\. .IP هنگام طراحی قالب‌های EPP، اکیداً توصیه می‌شود تمام آرگومان‌های قالب را در خود قالب تعریف کنید، هنگام فراخوانی \fBepp\fR یا \fBinline_epp\fR آن‌ها را در یک هش ارسال کنید، و تا حد امکان از متغیرهای سراسری کمتری (ترجیحاً فقط هش $facts) استفاده کنید\. این کار قالب‌ها را مستقل‌تر کرده و استفاده مجدد و آزمایش آن‌ها را آسان‌تر می‌سازد\. .IP \fBگزینه‌ها (OPTIONS)\fR \fI\-\-e \- رندر کردن یک قالب درون‌خطی epp که در خط فرمان داده شده است\. .IP \fI\-\-facts \- یک فایل \.yaml یا \.json حاوی هش فکت‌ها که در $facts و $trusted در دسترس قرار می‌گیرند\. .IP \fI\-\-[no\-]header\fR \- نمایش دادن یا ندادن هدر حاوی نام فایل میان نتایج رندرشده\. .IP \fI\-\-node \- نام نودی که فکت‌ها برای آن دریافت می‌شوند؛ پیش‌فرض فکت‌های نود محلی است\. .IP \fI\-\-values \- یک Hash در قالب زبان پاپت (Puppet DSL) که به عنوان آرگومان به قالب در حال رندر داده می‌شود\. .IP \fI\-\-values_file \- یک فایل \.pp یا \.yaml که پردازش شده و هش مقادیر را برای قالب تولید می‌کند\. .IP \fBمقادیر بازگشتی (RETURNS)\fR .IP نتیجه رندرشده یک یا چند قالب ارائه‌شده\. .IP "\(bu" 4 \fBvalidate\fR \- اعتبارسنجی ساختار نحوی یک یا چند قالب EPP: \fBخلاصه دستور (SYNOPSIS)\fR .IP puppet epp validate [\-\-[no\-]continue_on_error] [\fItemplate\fR] [\fItemplate\fR \|\.\|\.\|\.] .IP \fBتوضیحات (DESCRIPTION)\fR .IP این عملیات ساختار نحوی EPP را بدون تولید هیچ خروجی اعتبارسنجی می‌کند\. .IP هنگام اعتبارسنجی، خطاهای چندگانه به ازای هر فایل تا سقف تنظیمات max_error و max_warnings گزارش می‌شوند\. پس از گزارش خطاها برای اولین فایل دارای خطای مشاهده‌شده، پردازش متوقف می‌شود مگر اینکه گزینه \-\-continue_on_error داده شده باشد\. .IP فایل‌ها را می‌توان با استفاده از سبک \fBmodulename/template\.epp\fR جهت جستجوی قالب از یک ماژول، یا به عنوان ارجاعی به یک فایل مشخص کرد\. اگر ارجاع به یک فایل بتواند با یک قالب در ماژول تطبیق داده شود، نسخه ماژول برنده است \- در این حالت اگر نسخه ماژول مد نظر نباشد، از یک مسیر مطلق برای ارجاع به فایل قالب استفاده کنید\. .IP اگر خطای اعتبارسنجی وجود نداشته باشد با 0 خارج می‌شود\. .IP \fBگزینه‌ها (OPTIONS)\fR \fI\-\-[no\-]continue_on_error\fR \- ادامه دادن یا ندادن پس از گزارش خطاها برای یک قالب\. .IP \fBمقادیر بازگشتی (RETURNS)\fR .IP هیچ، یا خطاهای نحوی مشاهده‌شده\. .IP "" 0 .SH "مثال‌ها (EXAMPLES)" \fBrender\fR .P رندر کردن قالب 'mytemplate\.epp' در ماژول 'mymodule' و ارسال دو آرگومان \fBa\fR و \fBb\fR به آن: .IP "" 4 .nf $ puppet epp render mymodule/mytemplate\.epp \-\-values '{a => 10, b => 20}' .fi .IP "" 0 .P رندر کردن قالب با استفاده از یک مسیر مطلق: .IP "" 4 .nf $ puppet epp render /tmp/testing/mytemplate\.epp \-\-values '{a => 10, b => 20}' .fi .IP "" 0 .P رندر کردن یک قالب با داده‌های برگرفته از فایل \.pp: .IP "" 4 .nf $ puppet epp render /tmp/testing/mytemplate\.epp \-\-values_file mydata\.pp .fi .IP "" 0 .P رندر کردن یک قالب با داده‌های فایل \.pp و بازنویسی یک مقدار در خط فرمان: .IP "" 4 .nf $ puppet epp render /tmp/testing/mytemplate\.epp \-\-values_file mydata\.pp \-\-values '{a=>10}' .fi .IP "" 0 .P رندر کردن از ورودی استاندارد (STDIN): .IP "" 4 .nf $ cat template\.epp | puppet epp render \-\-values '{a => 10, b => 20}' .fi .IP "" 0 .P تنظیم متغیرها در یک فایل \.pp و رندر کردن قالبی که از ارجاعات متغیر استفاده می‌کند: .IP "" 4 .nf # data\.pp file $greeted = 'a global var' undef $ puppet epp render \-e 'hello <%= $greeted %>' \-\-values_file data\.pp .fi .IP "" 0 .P رندر کردن قالبی که یک فکت را در خروجی نمایش می‌دهد: .IP "" 4 .nf $ facter \-\-yaml > data\.yaml $ puppet epp render \-e '<% $facts[osfamily] %>' \-\-facts data\.yaml .fi .IP "" 0 .P \fBvalidate\fR .P اعتبارسنجی قالب 'template\.epp' در ماژول 'mymodule': .IP "" 4 .nf $ puppet epp validate mymodule/template\.epp .fi .IP "" 0 .P اعتبارسنجی دو فایل قالب دلخواه: .IP "" 4 .nf $ puppet epp validate mymodule/template1\.epp yourmodule/something\.epp .fi .IP "" 0 .P اعتبارسنجی یک قالب در جایی از سیستم فایل: .IP "" 4 .nf $ puppet epp validate /tmp/testing/template1\.epp .fi .IP "" 0 .P اعتبارسنجی قالب نسبت به یک فایل در دایرکتوری جاری: .IP "" 4 .nf $ puppet epp validate template1\.epp $ puppet epp validate \./template1\.epp .fi .IP "" 0 .P اعتبارسنجی از ورودی استاندارد (STDIN): .IP "" 4 .nf $ cat template\.epp | puppet epp validate .fi .IP "" 0 .P ادامه دادن در صورت بروز خطا برای مشاهده خطاهای تمام قالب‌ها: .IP "" 4 .nf $ puppet epp validate mymodule/template1\.epp mymodule/template2\.epp \-\-continue_on_error .fi .IP "" 0 .SH "حق نشر و مجوز (COPYRIGHT AND LICENSE)" کپی‌رایت 2014 توسط Puppet Inc\., Vox Pupuli تحت مجوز Apache 2؛ فایل COPYING را ببینید\.