.nh .TH podman-machine-init 1 .SH "نام (NAME)" podman-machine-init \- راه‌اندازی یک ماشین مجازی جدید .SH "خلاصه دستور (SYNOPSIS)" \fBpodman machine init\fP [\fIoptions\fP] [\fIname\fP] .SH "توضیحات (DESCRIPTION)" یک ماشین مجازی جدید برای پادمن راه‌اندازی می‌کند. .PP نام پیش‌فرض ماشین \fBpodman-machine-default\fR\& است. اگر نام ماشین به عنوان آرگومان مشخص نشود، نام ماشین جدید \fBpodman-machine-default\fR\& خواهد بود. .PP فقط در حالت بدون ریشه (rootless). .PP پادمن در مک‌او‌اس (MacOS) و ویندوز (Windows) به یک ماشین مجازی نیاز دارد؛ زیرا کانتینرها مبتنی بر لینوکس هستند — کانتینرها بر روی هیچ سیستم‌عامل دیگری اجرا نمی‌شوند زیرا قابلیت‌های بنیادین کانتینرها به هسته لینوکس وابسته است. دستور podman machine باید برای مدیریت ماشین‌های مک‌او‌اس و ویندوز استفاده شود، اما استفاده از آن در لینوکس اختیاری است. .PP دستور \fBpodman machine init\fP یک ماشین مجازی لینوکسی جدید راه‌اندازی می‌کند که کانتینرها در آن اجرا می‌شوند. کلیدهای SSH برای دسترسی به ماشین مجازی به صورت خودکار ایجاد می‌شوند و اتصالات سیستمی به حساب کاربری ریشه (root) و یک حساب کاربری عادی درون ماشین مجازی اضافه می‌گردند. .PP به‌صورت پیش‌فرض، توزیع ماشین مجازی یک ایمیج سفارشی مبتنی بر Fedora CoreOS است که در quay.io/podman/machine-os منتشر شده است (ساخته‌شده در ). WSL یک استثنا است و بر پایه یک ایمیج سفارشی فدورا قرار دارد. .PP برای بررسی اینکه آیا ارتقایی برای سیستم‌عامل ماشین شما در دسترس است یا خیر، می‌توانید دستور زیر را اجرا کنید: .EX $ podman machine ssh 'sudo rpm-ostree upgrade --check' .EE .PP اگر به‌روزرسانی موجود باشد، می‌توانید دستور بالا را مجدداً بدون گزینه \fB--check\fR اجرا کنید تا سیستم‌عامل شما به‌روزرسانی شود. پس از به‌روزرسانی، باید ماشین خود را با دستور \fBpodman machine stop && podman machine start\fR متوقف کرده و مجدداً راه‌اندازی کنید تا تغییرات اعمال شوند. .PP سازوکار بالا صرفاً برای به‌روزرسانی نسخه‌های وصله‌ای (Patch / Z) پادمن استفاده می‌شود. برای ارتقا به نسخه‌های اصلی و فرعی جدید (X.Y) از دستور \fBpodman machine os apply\fP استفاده کنید؛ برای اطلاعات بیشتر مستندات مربوط به آن را ببینید. .PP نکته: به‌روزرسانی به روش فوق ممکن است منجر به عدم تطابق نسخه بین پادمن روی سیستم میزبان و پادمن درون ماشین مجازی شود. اجرای \fBpodman info\fR نسخه هر دو را نشان می‌دهد. پیکربندی‌ای که در آن نسخه‌های میزبان و ماشین پادمن همخوانی نداشته باشند پشتیبانی نمی‌شود. .PP برای به‌روزرسانی ایمیج WSL باید دستور dnf update را درون آن اجرا کنید؛ از دستور زیر استفاده فرمایید: .EX $ podman machine ssh dnf update .EE .PP تنظیمات پیش‌فرض ماشین پادمن را می‌توان از طریق بخش [machine] در فایل containers.conf(5) تعیین کرد. .SH "گزینه‌ها (OPTIONS)" .SS \fB--cpus\fP=\fInumber\fP تعداد پردازنده‌ها (CPU). .SS \fB--disk-size\fP=\fInumber\fP اندازه دیسک برای ماشین مجازی مهمان بر حسب GiB. .SS \fB--help\fP چاپ راهنمای نحوه استفاده از دستور. .SS \fB--ignition-path\fP مسیر کامل فایل ignition. .PP در صورت ارائه فایل ignition، فایل در پوشه CONF_DIR کاربر کپی شده و تغییر نام می‌یابد. علاوه بر این، هیچ کلید SSHای تولید نشده و هیچ اتصال سیستمی‌ای برقرار نمی‌شود. فرض بر این است که کاربر این اقدامات را به‌صورت دستی یا از روش‌های دیگر انجام می‌دهد. .SS \fB--image\fP رجیستری، مسیر یا URL کامل به یک ایمیج ماشین مجازی. مقصد رجیستری باید به صورت \fBdocker://registry/repo/image:version\fR\& باشد. .PP نکته: تنها ایمیج‌های ارائه‌شده توسط پادمن پشتیبانی می‌شوند. .SS \fB--import-native-ca\fP وارد کردن گواهی‌های معتبر CA از سیستم میزبان به درون ماشین. هنگامی که روی true تنظیم شود، گواهی‌ها از سیستم میزبان در زمان بالا آمدن ماشین وارد می‌شوند. این کار به کانتینرهای در حال اجرا درون ماشین اجازه می‌دهد تا به همان مراجع صدور گواهی (CA) که سیستم‌عامل میزبان اعتماد دارد، اعتماد کنند. مقدار پیش‌فرض \fBfalse\fR\& است. .SS \fB--memory\fP, \fB-m\fP=\fInumber\fP میزان حافظه (بر حسب MiB). توجه: 1024MiB = 1GiB. .SS \fB--now\fP راه‌اندازی فوری ماشین مجازی بلافاصله پس از آماده‌سازی آن. .SS \fB--playbook\fP افزودن پلی‌بوک انسیبل (Ansible playbook) ارائه‌شده به ماشین و اجرای آن پس از نخستین بوت. .PP نکته: پلی‌بوک با همان دسترسی‌های اعطا شده به کاربر در ماشین مجازی اجرا خواهد شد. پلی‌بوک ارائه‌شده نمی‌تواند شامل فایل‌های دیگری از سیستم میزبان باشد، زیرا آنها کپی نخواهند شد. استفاده از فلگ \fB--playbook\fR نیازمند این است که ایمیج حاوی انسیبل باشد. ایمیج پیش‌فرض ارائه‌شده به صورت داخلی انسیبل را در بر دارد. .SS \fB--provider\fP مشخص کردن ارائه‌دهنده برای ماشینی که ساخته می‌شود. این امکان به کاربران اجازه می‌دهد تا ارائه‌دهنده پیش‌فرض را در پلتفرم‌هایی که چندین ارائه‌دهنده دارند، بازنویسی کنند. .SS \fB--rootful\fP مشخص می‌کند که آیا این ماشین اجرای کانتینرها را در حالت با دسترسی ریشه (\fBtrue\fR) یا بدون ریشه (\fBfalse\fR) ترجیح می‌دهد. این گزینه در صورتی که پیکربندی اتصال راه دوری وجود نداشته باشد، پیش‌فرض اتصال راه دور را تعیین می‌کند. .PP فوروارد کردن API، در صورت در دسترس بودن، از این تنظیم پیروی می‌کند. .SS \fB--swap\fP, \fB-s\fP=\fInumber\fP حافظه مبادله یا سواپ (بر حسب MiB). توجه: 1024MiB = 1GiB. .PP یک فایل \fBzram-generator.conf\fR ایجاد می‌کند که در آن zram-size روی مقدار ارسال‌شده به --swap تنظیم شده است. .SS \fB--timezone\fP تنظیم منطقه زمانی برای ماشین و کانتینرها. مقادیر معتبر شامل \fBlocal\fR یا یک \fBمنطقه زمانی\fR مانند \fBAmerica/Chicago\fR\& هستند. مقدار \fBlocal\fR که حالت پیش‌فرض است، به معنای استفاده از منطقه زمانی سیستم میزبان ماشین است. .PP تنظیم منطقه زمانی در WSL استفاده نمی‌شود. WSL به طور خودکار منطقه زمانی را با سیستم‌عامل ویندوز میزبان هماهنگ می‌کند. .SS \fB--tls-verify\fP الزام استفاده از HTTPS و اعتبارسنجی گواهی‌ها هنگام تماس با رجیستری‌ها (پیش‌فرض: \fBtrue\fP). اگر صریحاً روی \fBtrue\fP تنظیم شود، اعتبارسنجی TLS انجام می‌گیرد. اگر روی \fBfalse\fP تنظیم شود، اعتبارسنجی TLS انجام نمی‌شود. در صورت مشخص نشدن، اعتبارسنجی TLS انجام می‌گیرد مگر اینکه رجیستری مقصد در \fBcontainers-registries.conf(5)\fP به عنوان یک رجیستری ناامن ثبت شده باشد. .SS \fB--update-connection\fP, \fB-u\fP هنگامی که همراه با \fBpodman machine init --now\fR یا \fBpodman machine start\fR استفاده شود، این گزینه اتصال سیستمی ماشین مرتبط را به عنوان پیش‌فرض تنظیم می‌کند. هنگام استفاده از این گزینه، یک فلگ \fB-u\fR یا \fB-update-connection\fR مقدار را روی true تنظیم می‌کند. برای تنظیم این مقدار روی false، به معنی عدم تغییر و عدم پرسش، از \fB--update-connection=false\fR\& استفاده کنید. اگر مقدار تنظیم نشده باشد و stdin یک tty نباشد، هیچ پرسش یا به‌روزرسانی‌ای رخ نخواهد داد. .PP اگر مقدار روی true تنظیم شود، اتصال ماشین به عنوان پیش‌فرض سیستم تنظیم می‌شود. اگر مقدار روی false تنظیم شود، پیش‌فرض سیستم بدون تغییر باقی می‌ماند. اگر گزینه تنظیم نشود، از کاربر پرسیده خواهد شد که آیا مایل به تغییر آن است یا خیر. .SS \fB--usb\fP=\fIbus=number,devnum=number\fP یا \fIvendor=hexadecimal,product=hexadecimal\fP اختصاص یک دستگاه USB از میزبان به ماشین مجازی از طریق گذردهی مستقیم USB (passthrough). فقط برای ماشین‌های QEMU پشتیبانی می‌شود. .PP دستگاه برای عبور به ماشین مجازی باید دسترسی‌های مناسبی داشته باشد؛ یعنی باید متعلق به گروه کاربری شما باشد. .PP توجه داشته باشید که استفاده از شماره گذرگاه (bus) و شماره دستگاه (device number) ساده‌تر است، اما این مقادیر در هر بار بوت یا با جدا کردن دستگاه ممکن است تغییر کنند. .PP هنگام مشخص کردن USB با شناسه سازنده (vendor) و محصول (product)، چنانچه بیش از یک دستگاه دارای شناسه یکسان باشند، اولین دستگاه در دسترس اختصاص داده می‌شود. .SS \fB--user-mode-networking\fP این گزینه فقط برای ارائه‌دهنده WSL در ویندوز قابل استفاده است. در تمامی پلتفرم‌های دیگر این گزینه نادیده گرفته می‌شود و شبکه در حالت کاربر همواره در آنجا \fBtrue\fR خواهد بود، زیرا این ارائه‌دهنده‌ها همیشه به gvproxy (ابزار شبکه حالت کاربر ما برای ماشین‌های مجازی) وابسته‌اند. .PP در مقابل، بک‌اند ویندوز/WSL به صورت پیش‌فرض \fBfalse\fR است و از پیکربندی استاندارد شبکه WSL پیروی می‌کند. تغییر این تنظیم به \fBtrue\fR در ویندوز/WSL به پادمن اطلاع می‌دهد که در زمان شروع این نمونه ماشین، راه‌اندازی شبکه WSL را با یک توزیع شبکه در حالت کاربر جایگزین کند. از آنجا که WSL هسته یکسانی را در سراسر توزیع‌ها به اشتراک می‌گذارد، همه توزیع‌های دیگرِ در حال اجرا از این شبکه مجدداً استفاده می‌کنند. به همین ترتیب، هنگامی که آخرین نمونه ماشین با تنظیم \fBtrue\fR متوقف شود، پیکربندی شبکه اولیه بازیابی می‌گردد. .PP در برخی پیکربندی‌های VPN، ممکن است ترافیک رابط‌های شبکه جایگزین، از جمله دستگاه‌های شبکه ماشین مجازی قطع شود. با فعال کردن شبکه حالت کاربر، VPNها تمام ترافیک ماشین پادمن را به عنوان ترافیک سیستم میزبان مشاهده کرده و مشکل برطرف می‌شود. .SS \fB--username\fP نام کاربری مورد استفاده برای اجرای دستورات در ماشین مجازی راه دور. مقدار پیش‌فرض برای FCOS برابر با \fBcore\fR و برای Fedora (پیش‌فرض روی میزبان‌های ویندوز) برابر با \fBuser\fR است. باید با نام کاربری درون ایمیج ماشین مجازی حاصل مطابقت داشته باشد. .SS \fB--volume\fP, \fB-v\fP=\fIsource:target[:options]\fP اتصال (mount) یک حجم از مبدا به مقصد. .PP ایجاد یک نقطه اتصال. اگر /host-dir:/machine-dir به عنوان \fB*source:target*\fR مشخص شود، پادمن \fIhost-dir\fP در سیستم میزبان را به \fImachine-dir\fP در ماشین مجازی پادمن متصل می‌کند. .PP گزینه‌های اضافی را می‌توان به صورت یک رشته جداشده با کاما مشخص کرد. گزینه‌های شناخته‌شده عبارتند از: * \fBro\fP: اتصال حجم به‌صورت فقط‌خواندنی * \fBrw\fP: اتصال حجم به‌صورت خواندن/نوشتن (پیش‌فرض) * \fBsecurity_model=[model]\fP: مشخص کردن مدل امنیتی 9p (به پایین مراجعه کنید) .PP نکته: مقصدهای زیر برای حجم‌ها ممنوع هستند: \fB/bin\fR, \fB/boot\fR, \fB/dev\fR, \fB/etc\fR, \fB/home\fR, \fB/proc\fR, \fB/root\fR, \fB/run\fR, \fB/sbin\fR, \fB/sys\fR, \fB/tmp\fR, \fB/usr\fR, و \fB/var\fR\&. زیرشاخه‌های این مسیرها مجاز هستند اما کاربران باید مراقب باشند که روی دایرکتوری‌های حیاتی مانت نکنند زیرا ممکن است نتایج غیرمنتظره‌ای رخ دهد. .PP مدل امنیتی 9p مشخص می‌کند () که سیستم فایل 9p پیش از ذخیره‌سازی واقعی روی میزبان، چگونه برخی عملیات‌های سیستم فایل را ترجمه کند. .PP برای اینکه پیوندهای نمادین کار کنند، در مک‌او‌اس مدل امنیتی پیش‌فرض \fInone\fP\& است. .PP مقدار \fImapped-xattr\fP مشخص می‌کند که 9p پیوندهای نمادین و برخی ویژگی‌های فایل را به عنوان ویژگی‌های توسعه‌یافته (extended attributes) روی میزبان ذخیره کند. این حالت زمانی مناسب است که میزبان و مهمان نیازی به تعامل مشترک بر روی سیستم فایل اشتراکی ندارند، اما برای دسترسی اشتراکی واقعی محدودیت‌هایی دارد؛ به ویژه، پیوندهای نمادین روی میزبان در مهمان قابل استفاده نیستند و بالعکس. اگر تعامل متقابل مورد نیاز است، مقدار \fInone\fP را انتخاب کنید، اما به یاد داشته باشید که مهمان قادر به انجام کارهایی که کاربر اجراکننده ماشین مجازی نمی‌تواند انجام دهد نیست؛ مانند ایجاد فایل‌هایی با مالکیت کاربر دیگر. استفاده از \fInone\fP تقریباً مطمئن‌ترین گزینه برای حجم‌های فقط‌خواندنی است. .PP مثال: \fB-v "$HOME/git:$HOME/git:ro,security_model=none"\fR .PP نقاط اتصال پیش‌فرض حجم‌ها در \fIcontainers.conf\fP\& تعریف شده‌اند. در صورت عدم تغییر، مقدار پیش‌فرض \fB$HOME:$HOME\fR\& است. .PP \fBنکته درباره زیرسیستم ویندوز برای لینوکس (WSL)\fP از آنجا که به صورت پیش‌فرض در WSL همه درایوها هنگام راه‌اندازی در \fB/mnt\fR مانت می‌شوند، ارسال \fB--volume\fR اضافی بوده و هیچ اثری ندارد. دایرکتوری خانگی میزبان برای درایو \fBC:\fR در مسیر \fB/mnt/c/Users/\fR\& متصل خواهد شد. .SH "مثال‌ها (EXAMPLES)" راه‌اندازی ماشین پیش‌فرض پادمن، با دریافت محتوا از اینترنت. .EX $ podman machine init .EE .PP راه‌اندازی ماشین پادمن با نام مشخص‌شده با دریافت محتوا از اینترنت. .EX $ podman machine init myvm .EE .PP راه‌اندازی و شروع به کار یک ماشین جدید پادمن در یک مرحله. .EX podman machine init --now .EE .PP راه‌اندازی ماشین پیش‌فرض پادمن با دریافت محتوا از اینترنت در حالت با دسترسی ریشه (rootful). حالت پیش‌فرض بدون ریشه (rootless) است. .EX $ podman machine init --rootful .EE .PP راه‌اندازی ماشین پیش‌فرض پادمن با تغییر اندازه دیسک، با دریافت محتوا از اینترنت. .EX $ podman machine init --disk-size 50 .EE .PP راه‌اندازی ماشین مشخص‌شده پادمن با تغییر اندازه حافظه رم، با دریافت محتوا از اینترنت. .EX $ podman machine init --memory=1024 myvm .EE .PP راه‌اندازی ماشین پیش‌فرض پادمن با اتصال دایرکتوری \fB/Users\fR از سیستم میزبان به \fB/Users\fR\& درون ماشین مجازی. .EX $ podman machine init -v /Users:/Users .EE .PP راه‌اندازی ماشین پیش‌فرض پادمن با گذردهی مستقیم یک دستگاه USB با گزینه‌های مشخص‌شده. فقط برای ماشین‌های QEMU پشتیبانی می‌شود. .EX $ podman machine init --usb vendor=13d3,product=5406 .EE .PP راه‌اندازی ماشین پیش‌فرض پادمن با گذردهی مستقیم یک دستگاه USB با گزینه‌های مشخص‌شده. فقط برای ماشین‌های QEMU پشتیبانی می‌شود. .EX $ podman machine init --usb bus=1,devnum=3 .EE .PP راه‌اندازی یک ماشین روی یک ارائه‌دهنده متفاوت با ارائه‌دهنده پیش‌فرض. .EX $ podman machine init --provider applehv .EE .SH "همچنین ببینید (SEE ALSO)" \fBpodman(1)\fP, \fBpodman-machine(1)\fP, \fBcontainers.conf(5)\fP .SH "تاریخچه (HISTORY)" مارس ۲۰۲۱، در ابتدا توسط Ashley Cui گردآوری شد acui@redhat.com \[la]mailto:acui@redhat.com\[ra]