systemd-imds, systemd-imds-import.service -
بازیابی و
پردازش
فراداده از
سرویسهای
متادیتای
ابری (IMDS)
systemd-imds-import.service
systemd-imds [OPTIONS...] [KEY]
systemd-imds
ابزاری
برای
دریافت
دادهها از
IMDS (سرویس
متادیتای
نمونه یا Instance Metadata
Service) است، که در
بسیاری از
محیطهای
ابری ارائه
میشود. این
ابزار یک
کلاینت
برای systemd-imdsd@.service(8)
است و
دسترسی به
دادههای IMDS
را از
محیطهای
شل (shell) فراهم
میکند.
این ابزار
میتواند
در یکی از
پنج حالت
زیر عمل
کند:
•بدون
آرگومانهای
مکانی (و
بدون سوییچ
--well-known=)
دادههای
عمومی
سرویس IMDS و
چند فیلد
شناختهشده
(well-known) به صورت
خوانا برای
انسان
نمایش داده
میشوند.
•با یک
آرگومان
مکانی (و
بدون --well-known=)
دادههای IMDS
که توسط
کلید
مشخصشده
ارجاع داده
شدهاند
دریافت شده
و به صورت
پردازشنشده
در خروجی
استاندارد
نوشته
میشوند.
کلیدهای IMDS
بخشی از
نشانی
اینترنتی (URL)
دریافت IMDS
هستند که به
نشانی پایه
اضافه
میشوند.
کلیدهای IMDS
باید با یک
اسلش ("/")
آغاز شوند.
توجه داشته
باشید که
کلیدهای IMDS
معمولاً
وابسته به
پیادهسازی
هستند.
•با مشخص
کردن گزینه
--well-known= (در زیر
ببینید)،
فیلد
شناختهشدهی
مشخصشده
به صورت
پردازشنشده
در خروجی
استاندارد
نوشته
میشود.
مفهوم
فیلدهای
شناختهشده،
تفاوتهای
پیادهسازی
IMDS را تا حدی
انتزاعی
میکند و یک
رابط
یکپارچه
برای
فیلدهای IMDS
ارائه
میدهد که
معمولاً در
بسیاری از
پیادهسازیهای
مختلف وجود
دارند، اما
با کلیدهای
مختص هر
پیادهسازی
در دسترس
هستند.
•با مشخص
کردن گزینه
--userdata (در زیر
ببینید)،
دادههای
کاربر ("userdata")
ارائهشده
از طریق IMDS در
خروجی
استاندارد
نوشته
میشوند. در
پشت صحنه
این شبیه به
--well-known=userdata-base، --well-known=userdata
یا --well-known=userdata-base64 است.
هر یک از این
سه مورد به
نوبت (به
همین ترتیب)
بررسی و
امتحان
میشوند و
نخستین
مورد موجود
بازگردانده
میشود.
برای --well-known=userdata-base
آیتم داده
کاربر "systemd-userdata"
درخواست
میشود.
برای --well-known=userdata-base64
دادههای
بازگردانده
شده به صورت
خودکار
رمزگشایی Base64
میشوند.
•با مشخص
کردن گزینه
--import،
فیلدهای
مختلف
شناختهشده
و دادههای
کاربر به
مخزن محلی
اطلاعات
احراز هویت
(credential store) وارد
میشوند،
جایی که از
آنها برای
پیکربندی و
پارامتربندی
سیستم
استفاده
میشود.
برای
جزئیات به
زیر مراجعه
کنید.
--well-known=, -K
یکی از
مقادیر "hostname"،
"region"، "zone"،
"ipv4-public"، "ipv6-public"،
"ssh-key"، "userdata"،
"userdata-base"، "userdata-base64" را
میپذیرد.
یک فیلد خاص
شناختهشده
("well-known") را از IMDS
دریافت
میکند.
بسیاری از
این فیلدها
معمولاً
توسط
پیادهسازیهای
مختلف IMDS
پشتیبانی
میشوند،
اما عموماً
برخی از
فیلدها
پشتیبانی
نمیشوند.
توجه داشته
باشید که
اگر از
--well-known=userdata-base
استفاده
شود، باید
یک زیرکلید
اضافی به
عنوان
آرگومان
مکانی مشخص
شود، که
آیتم خاص
داده کاربر
را برای
دریافت
تعیین
میکند.
در نسخه 261
اضافه شد.
--refresh=
یک زمان
بر حسب
ثانیه را به
عنوان
آرگومان
میگیرد و
«تازه
بودن» مورد
نیاز
دادهها را
در صورتی که
از
دادههای
حافظه
پنهان
استفاده
شود، مشخص
میکند.
در نسخه 261
اضافه شد.
--cache=
یک مقدار
بولی
میپذیرد.
اگر روی false
تنظیم شود،
حافظه
پنهان محلی IMDS
غیرفعال
میشود و
دادهها
همیشه به
صورت تازه
از نقطه
پایانی (endpoint) IMDS
دریافت
میشوند.
در نسخه 261
اضافه شد.
--userdata, -u
دادههای
کاربر IMDS این
نمونه را در
صورت موجود
بودن
دریافت
میکند.
برای
جزئیات به
بالا
مراجعه
کنید.
در نسخه 261
اضافه شد.
--import
دادههای
IMDS را دریافت
کرده و
فیلدهای
مرتبط را به
عنوان
اطلاعات
احراز هویت
(credentials) در /run/credstore/
مینویسد.
این در حال
حاضر شامل
موارد زیر
است:
•اگر
دادههای
کاربر IMDS یک
شیء معتبر JSON
حاوی فیلد
systemd.credentials (با یک
آرایه JSON به
عنوان
مقدار)
باشد،
پردازش شده
و اطلاعات
احراز هویت
دلخواه
فهرستشده
در آرایه را
وارد
میکند. هر
آیتم آرایه
باید دارای
فیلد
name باشد
که نام مدرک
احراز هویت
(credential) را نشان
میدهد.
ممکن است
یکی از
فیلدهای
text،
data یا
encrypted را
داشته باشد
که حاوی
دادههای
مدرک احراز
هویت است.
اگر از
text
استفاده
شود، مقدار
باید یک
رشته
تحتاللفظی
از مقدار
مدرک باشد.
اگر از
data
استفاده
شود، مقدار
میتواند
دادههای
باینری
دلخواه
کدگذاریشده
در یک رشته Base64
باشد. اگر از
encrypted استفاده
شود، مقدار
باید یک
مدرک احراز
هویت
رمزنگاریشده
با کدگذاری
Base64 باشد. برای
اطلاعات
درباره
اطلاعات
احراز
هویتی که
میتوان از
این طریق
وارد کرد،
به
systemd.system-credentials(7)
مراجعه
کنید.
•اگر
فیلد
شناختهشدهی
ssh-key موجود
باشد،
مقدار آن به
مدرک احراز
هویت ssh.authorized_keys.root
وارد خواهد
شد.
•اگر
فیلد
شناختهشدهی
hostname موجود
باشد،
مقدار آن به
مدرک احراز
هویت firstboot.hostname
وارد خواهد
شد.
این دستور
توسط systemd-imds-import.service
که هنگام
بوت اجرا
میشود
فراخوانی
میگردد.
در نسخه 261
اضافه شد.
-h, --help
یک متن
راهنمای
کوتاه را
چاپ کرده و
خارج
میشود.
--version
اطلاعات
نسخه
برنامه را
نمایش داده
و خارج
میشود.
در صورت
موفقیت، 0
بازگردانده
میشود، و
در غیر این
صورت یک کد
خطای غیر
صفر.