PUPPET-LOOKUP(8) OpenVox manual PUPPET-LOOKUP(8)

puppet-lookup - جستجو و استخراج داده‌ها از ساختار Hiera در Puppet

جستجوهای Hiera را از طریق خط فرمان انجام می‌دهد.

از آنجا که این دستور به داده‌های Hiera شما نیاز دارد، مطمئن شوید که آن را روی گره‌ای اجرا می‌کنید که نسخه‌ای از این داده‌ها را داشته باشد. این امر معمولاً به معنای ورود به یک گره سرور OpenVox و اجرای 'puppet lookup' با دسترسی sudo است.

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

'puppet lookup KEY --node NAME --environment ENV --explain'

puppet lookup [--help] [--type TYPESTRING] [--merge first|unique|hash|deep] [--knock-out-prefix PREFIX-STRING] [--sort-merged-arrays] [--merge-hash-arrays] [--explain] [--environment ENV] [--default VALUE] [--node NODE-NAME] [--facts FILE] [--compile] [--render-as s|json|yaml|binary|msgpack] keys

دستور lookup یک رابط خط فرمان (CLI) برای تابع 'lookup()' در Puppet است. این دستور داده‌های Hiera شما را جستجو کرده و مقداری را برای کلید جستجوی درخواستی برمی‌گرداند تا بتوانید داده‌های خود را بیازمایید و بررسی کنید. این ابزار یک جایگزین امروزی برای دستور 'hiera' است. دستور Lookup از تنظیمات مربوط به hiera.yaml سراسری در پیکربندی puppet و همچنین محیط (environment) برای یافتن hiera.yaml در سطح محیط و نیز مسیر ماژول‌های (modulepath) حاصل برای آن محیط (جهت یافتن فایل‌های hiera.yaml در ماژول‌ها) استفاده می‌کند. ساختار Hiera معمولاً برای مکان‌یابی منابع داده‌های مرتبط، به فکت‌های (facts) گره متکی است. به‌طور پیش‌فرض، 'puppet lookup' از فکت‌های گره‌ای که دستور را روی آن اجرا می‌کنید استفاده می‌کند، اما می‌توانید با استفاده از گزینه '--node NAME' داده‌های مربوط به هر گره دیگری را نیز دریافت کنید. در صورت امکان، دستور lookup از فکت‌های واقعی و ذخیره‌شده گره درخواستی در PuppetDB استفاده خواهد کرد؛ اگر PuppetDB پیکربندی نشده باشد یا بخواهید مقادیر فکت دلخواهی ارائه دهید، می‌توانید فکت‌های جایگزین را به صورت یک فایل JSON یا YAML با گزینه '--facts FILE' مشخص کنید.

اگر در حال اشکال‌زدایی داده‌های Hiera خود هستید و می‌خواهید ببینید مقادیر از کجا می‌آیند، از گزینه '--explain' استفاده کنید.

اگر '--explain' مشخص نشده باشد، در صورتی که مقداری پیدا شود lookup با کد ۰ و در غیر این صورت با ۱ خارج می‌شود. با '--explain'، دستور lookup همیشه با ۰ خارج می‌شود مگر اینکه خطای بزرگی رخ دهد.

می‌توانید چندین کلید جستجو را به این دستور ارائه دهید، اما این دستور تنها مقدار مربوط به نخستین کلید یافت‌شده را برمی‌گرداند و باقی را نادیده می‌گیرد.

برای کسب اطلاعات بیشتر درباره نحوه کارکرد Hiera، مستندات Hiera را ببینید: https://puppet.com/docs/puppet/latest/hiera_intro.html

  • --help: چاپ این پیام راهنما.
  • --explain توضیح جزئیات نحوه انجام جستجو و اینکه مقدار نهایی از کجا آمده است (یا دلیل عدم یافتن مقدار).
  • --node NODE-NAME مشخص می‌کند که داده‌ها برای کدام گره جستجو شوند؛ پیش‌فرض گره‌ای است که دستور روی آن اجرا می‌شود. از آنجا که هدف Hiera ارائه مقادیر مختلف برای گره‌های متفاوت است (معمولاً بر اساس فکت‌های آن‌ها)، اغلب مایل خواهید بود برای بررسی داده‌های خود از فکت‌های یک گره خاص استفاده کنید. اگر گره‌ای که این دستور را روی آن اجرا می‌کنید برای ارتباط با PuppetDB پیکربندی شده باشد، دستور از تازه‌ترین فکت‌های گره درخواستی استفاده خواهد کرد؛ در غیر این صورت، می‌توانید با گزینه '--facts' فکت‌ها را جایگزین کنید.
  • --facts FILE تعیین یک فایل .json یا .yaml از نگاشت‌های key => value جهت بازنویسی و جایگزینی فکت‌ها برای این جستجو. هر فکتی که در این فایل مشخص نشده باشد، مقدار اصلی خود را حفظ می‌کند.
  • --environment ENV همانند اکثر دستورات Puppet، می‌توانید یک محیط را در خط فرمان مشخص کنید. این گزینه برای جستجو بسیار مهم است زیرا محیط‌های مختلف می‌توانند داده‌های Hiera متفاوتی داشته باشند. صرف‌نظر از هر عامل دیگری، همواره این محیط استفاده خواهد شد.
  • --merge first|unique|hash|deep: تعیین رفتار ادغام، با لغو هرگونه رفتار ادغام تعریف‌شده در lookup_options داده‌ها. مقدار 'first' اولین مقدار یافت‌شده را برمی‌گرداند. مقدار 'unique' همه موارد را به یک آرایه ادغام‌شده و یکتا ضمیمه می‌کند. مقدار 'hash' یک ادغام هش ساده را با بازنویسی کلیدهای دارای اولویت جستجوی پایین‌تر انجام می‌دهد. مقدار 'deep' یک ادغام عمیق روی مقادیر از نوع Array و Hash انجام می‌دهد. گزینه‌های دیگری نیز وجود دارند که می‌توانند همراه با 'deep' استفاده شوند.
  • --knock-out-prefix PREFIX-STRING می‌تواند با راهبرد ادغام 'deep' استفاده شود. پیشوندی را مشخص می‌کند تا نشان دهد یک مقدار باید از نتیجه نهایی حذف شود.
  • --sort-merged-arrays می‌تواند با راهبرد ادغام 'deep' استفاده شود. هنگامی که این فلگ استفاده شود، تمام آرایه‌های ادغام‌شده مرتب‌سازی می‌شوند.
  • --merge-hash-arrays می‌تواند با راهبرد ادغام 'deep' استفاده شود. هنگامی که این فلگ به کار رود، هش‌های درون آرایه‌ها بر اساس موقعیت مکانی با همتایان خود ادغام عمیق می‌شوند.
  • --explain-options توضیح می‌دهد که آیا هش lookup_options روی این جستجو تأثیر می‌گذارد یا خیر، و چگونه آن هش سرهم شده است (گزینه lookup_options روشی است که Hiera رفتار ادغام را در داده‌ها پیکربندی می‌کند).
  • --default VALUE مقداری که اگر Hiera نتواند مقداری در داده‌ها پیدا کند، بازگردانده می‌شود. برای شبیه‌سازی فراخوانی‌های تابع 'lookup()' که شامل یک مقدار پیش‌فرض هستند.
  • --type TYPESTRING: تأیید و الزام اینکه مقدار دارای نوع داده مشخص‌شده باشد. برای شبیه‌سازی فراخوانی‌های تابع 'lookup()' که شامل نوع داده هستند.
  • --compile انجام کامپایل کامل کاتالوگ پیش از اجرای جستجو. اگر سلسله‌مراتب و داده‌های شما فقط از متغیرهای $facts ،$trusted و $server_facts استفاده می‌کنند، به این گزینه نیازی ندارید؛ اما اگر پیکربندی Hiera شما از متغیرهای دلخواه تنظیم‌شده توسط یک مانیفست Puppet استفاده می‌کند، ممکن است برای دریافت داده‌های دقیق به این گزینه نیاز داشته باشید. هیچ کامپایل کاتالوگی انجام نمی‌شود مگر اینکه این فلگ داده شود.
  • --render-as s|json|yaml|binary|msgpack تعیین قالب خروجی نتایج؛ "s" به معنای متن ساده است. مقدار پیش‌فرض هنگام تولید مقدار yaml و مقدار پیش‌فرض هنگام تولید توضیحات s است.

برای جستجوی 'key_name' با استفاده از فکت‌های گره سرور Puppet:

$ puppet lookup key_name

برای جستجوی 'key_name' با استفاده از متغیرهای دلخواه یک مانیفست روی گره سرور Puppet و دسته‌بندی گره در صورت امکان:

$ puppet lookup key_name --compile

برای جستجوی 'key_name' با استفاده از فکت‌های گره سرور Puppet، بازنویسی‌شده توسط فکت‌های ارائه‌شده در یک فایل:

$ puppet lookup key_name --facts fact_file.yaml

برای جستجوی 'key_name' با فکت‌های agent.local:

$ puppet lookup --node agent.local key_name

برای دریافت اولین مقدار یافت‌شده برای 'key_name_one' و 'key_name_two' با فکت‌های agent.local به همراه ادغام مقادیر و حذف پیشوند 'foo' در حین ادغام:

$ puppet lookup --node agent.local --merge deep --knock-out-prefix foo key_name_one key_name_two

برای جستجوی 'key_name' با فکت‌های agent.local و بازگرداندن مقدار پیش‌فرض 'bar' در صورتی که چیزی پیدا نشود:

$ puppet lookup --node agent.local --default bar key_name

برای مشاهده توضیحاتی درباره نحوه یافتن مقدار 'key_name' با استفاده از فکت‌های agent.local:

$ puppet lookup --node agent.local --explain key_name

حق نشر (c) 2015 متعلق به Puppet Inc. حق نشر (c) 2024 متعلق به Vox Pupuli، تحت مجوز Apache 2.0 منتشر شده است.

January 2025 Vox Pupuli