SYSTEMD-IMDSD@.SERVICE(8) systemd-imdsd@.service SYSTEMD-IMDSD@.SERVICE(8)

systemd-imdsd@.service, systemd-imdsd, systemd-imdsd.socket, systemd-imdsd-early-network.service - کلاینت سرویس متادیتای نمونه ابری (IMDS)

systemd-imdsd@.service

systemd-imdsd.socket

systemd-imdsd-early-network.service

/usr/lib/systemd/systemd-imdsd

systemd-imdsd@.service یک سرویس سیستمی است که دسترسی محلی به قابلیت‌های IMDS (سرویس متادیتای نمونه یا Instance Metadata Service؛ یا معادل آن) را، همان‌گونه که توسط بسیاری از محیط‌های ابری عمومی ارائه می‌شود، فراهم می‌سازد.

این سرویس یک رابط IPC از نوع Varlink را از طریق /run/systemd/io.systemd.InstanceMetadata برای پرس‌وجوی فیلدهای IMDS فراهم می‌کند.

سرویس systemd-imds-early-network.service یک سرویس سیستمی است که یک فایل systemd.network(5) سازگار با systemd-networkd.service(8) تولید می‌کند تا شبکه را در مراحل اولیه بوت پیکربندی کند تا بتوان با نقطه پایانی (endpoint) سرویس IMDS ارتباط برقرار کرد.

از ابزار systemd-imds(1) می‌توان برای استعلام اطلاعات از این سرویس استفاده کرد.

نقطه پایانی IMDS معمولاً به‌طور خودکار از طریق رکوردهای hwdb(7) تعیین می‌شود، اما همچنین می‌توان آن را به‌طور صریح از طریق خط فرمان هسته و به وسیله گزینه‌های زیر پیکربندی کرد:

systemd.imds.network=

یکی از مقادیر "off"، "locked" یا "unlocked" را می‌پذیرد. کنترل می‌کند که آیا شبکه برای دسترسی به نقطه پایانی IMDS راه‌اندازی شود و نحوه این راه‌اندازی چگونه باشد. مگر اینکه روی "off" تنظیم شود، شبکه در مراحل اولیه بوت فعال می‌شود و تضمین می‌گردد که نقطه پایانی IMDS در دسترس است. اگر روی "locked" تنظیم شود، دسترسی مستقیم فرآیندهای عادی بدون امتیاز ویژه به نقطه پایانی IMDS از طریق یک مسیر "prohibit" (ممنوع) غیرفعال می‌شود، به‌طوری که هرگونه دسترسی باید از طریق systemd-imdsd@.service یا ابزارهای وابسته به آن انجام گیرد. اگر روی "unlocked" (پیش‌فرض) تنظیم شود، این مسیر "prohibit" ایجاد نمی‌شود و فرآیندهای عادی بدون امتیاز ویژه می‌توانند مستقیماً با IMDS ارتباط برقرار کنند.

افزوده‌شده در نسخه 261.

systemd.imds.vendor=

یک رشته کوتاه که ارائه‌دهنده خدمات ابری (cloud vendor) را مشخص می‌کند.

مثال:

systemd.imds.vendor=foobarcloud

افزوده‌شده در نسخه 261.

systemd.imds.token_url=

اگر برای ارتباط با سرویس IMDS نیاز به دریافت توکن حامل (bearer token) باشد، این نشانی اینترنتی (URL) برای دریافت آن است.

افزوده‌شده در نسخه 261.

systemd.imds.refresh_header_name=

نام یک فیلد هدر HTTP (بدون دونقطه ":") را می‌پذیرد که فیلد هدر را برای ارسال مقدار TTL (بر حسب ثانیه) به سرور HTTP هنگام دریافت توکن مشخص می‌کند. تنها در صورتی اعمال می‌شود که systemd.imds.token_url= نیز تنظیم شده باشد.

افزوده‌شده در نسخه 261.

systemd.imds.data_url=

نشانی اینترنتی (URL) پایه را برای دریافت داده‌های IMDS (نقطه پایانی یا "endpoint" سرویس IMDS) می‌پذیرد. تمام فیلدهای داده از زیر این URL دریافت می‌شوند. این URL معمولاً نباید با "/" پایان یابد.

نشانی‌های URL داده از ترکیب این URL پایه، "کلید" IMDS و پسوند پیکربندی‌شده از طریق systemd.imds.data_url_suffix= در زیر ساخته می‌شوند. "کلیدهای" شناخته‌شده (well-known) سرویس IMDS را می‌توان از طریق گزینه‌های systemd.imds.key=* در زیر پیکربندی کرد.

مثال:

systemd.imds.data_url=http://169.254.169.254/metadata

افزوده‌شده در نسخه 261.

systemd.imds.data_url_suffix=

در صورت تعیین، این مقدار به انتهای URL داده (پس از اضافه کردن "کلید" IMDS به URL پایه داده) پیوست می‌شود؛ بالا را ببینید.

مثال:

systemd.imds.data_url_suffix=?api-version=2025-04-07&format=text

افزوده‌شده در نسخه 261.

systemd.imds.token_header_name=

نام یک فیلد هدر HTTP (بدون دونقطه ":") را می‌پذیرد که مشخص‌کننده فیلد هدر برای ارسال توکن حامل دریافت‌شده از URL توکن (به بالا مراجعه کنید) است. تنها در صورتی اعمال می‌شود که systemd.imds.token_url= نیز تنظیم شده باشد.

افزوده‌شده در نسخه 261.

systemd.imds.extra_header=

یک عبارت کامل هدر HTTP (شامل نام فیلد و مقدار، جداشده با یک دونقطه ":") را برای ارسال به سرور HTTP هنگام درخواست داده می‌پذیرد. ممکن است چندین بار برای تنظیم چند هدر استفاده شود.

مثال:

systemd.imds.extra_header=Metadata:true

افزوده‌شده در نسخه 261.

systemd.imds.address_ipv4=

آدرس IPv4 را که نقطه پایانی IMDS روی آن ارتباط برقرار می‌کند پیکربندی می‌کند. این آدرس معمولاً باید همان آدرس IP پیکربندی‌شده از طریق systemd.imds.data_url= (در صورت استفاده از IPv4) باشد و برای راه‌اندازی مسیریابی IP به کار می‌رود.

مثال:

systemd.imds.address_ipv4=169.254.169.254

افزوده‌شده در نسخه 261.

systemd.imds.address_ipv6=

آدرس IPv6 را که نقطه پایانی IMDS روی آن ارتباط برقرار می‌کند پیکربندی می‌کند. این آدرس معمولاً باید همان آدرس IP پیکربندی‌شده از طریق systemd.imds.data_url= (در صورت استفاده از IPv6) باشد و برای راه‌اندازی مسیریابی IP به کار می‌رود.

افزوده‌شده در نسخه 261.

systemd.imds.key.hostname=, systemd.imds.key.region=, systemd.imds.key.zone=, systemd.imds.key.ipv4_public=, systemd.imds.key.ipv6_public=, systemd.imds.key.ssh_key=, systemd.imds.key.userdata=, systemd.imds.key.userdata_base=, systemd.imds.key.userdata_base64=

رشته‌هایی را برای الحاق به نشانی URL پایه داده (به بالا مراجعه کنید) جهت دریافت داده‌های فیلدهای مختلف "شناخته‌شده" (well-known) پیکربندی می‌کند. این رشته‌ها باید با یک "/" آغاز شوند. آن‌ها باید داده‌های مربوطه را به صورت متن ساده (plain text) بازگردانند.

یک حالت خاص مربوط به سه کلید "userdata" (داده‌های کاربر) است: گزینه systemd.imds.key.userdata_base= باید در صورتی استفاده شود که سرویس IMDS مفهوم چندین فیلد userdata را داشته باشد، و بنابراین هنوز لازم باشد یک شناسه فیلد به URL پایه داده‌های کاربر الحاق شود. گزینه systemd.imds.key.userdata= باید زمانی استفاده شود که تنها یک فیلد userdata پشتیبانی می‌شود. گزینه systemd.imds.key.userdata_base64= باید در همان حالت استفاده شود، اما تنها در صورتی که فیلد userdata با Base64 کدگذاری شده باشد.

مثال:

systemd.imds.key.hostname=/instance/compute/osProfile/computerName

افزوده‌شده در نسخه 261.

سرویس systemd-imdsd@.service از منطق اعتبارنامه‌های سرویس که توسط ImportCredential=/LoadCredential=/SetCredential= پیاده‌سازی شده است پشتیبانی می‌کند (برای جزئیات به systemd.exec(5) مراجعه کنید). در صورت ارسال، اعتبارنامه‌های زیر استفاده می‌شوند:

imds.vendor, imds.vendor_token, imds.refresh_header_name, imds.data_url, imds.data_url_suffix, imds.token_header_name, imds.extra_header, imds.extra_header2, imds.extra_header3, imds.extra_header..., imds.address_ipv4, imds.address_ipv6, imds.key_hostname, imds.key_region, imds.key_zone, imds.key_ipv4_public, imds.key_ipv6_public, imds.key_ssh_key, imds.key_userdata, imds.key_userdata_base, imds.key_userdata_base64

پارامترهای مختلف نقطه پایانی IMDS. معانی و ساختار آن‌ها بسیار شبیه به مواردی است که از طریق خط فرمان هسته قابل پیکربندی هستند؛ برای فهرست متناظر به بالا مراجعه کنید.

افزوده‌شده در نسخه 261.

systemd(1), systemd-imds(1), systemd-imds-generator(8), systemd-networkd.service(8)

systemd 261.2