זהו הפקודה virt-builder שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
virt-builder - בנה תמונות של מכונות וירטואליות במהירות
תַקצִיר
virt-builder OS-version
[-o|--output DISKIMAGE] [--size SIZE] [--format raw|qcow2]
[--arch ARCHITECTURE] [--צרף ISOFILE]
[--chmod הרשאות:קובץ] [--commands-from-file FILENAME]
[--copy SOURCE:DEST] [--copy-in LOCALPATH:REMOTEDIR]
[--delete PATH] [--edit FILE:EXPR] [--firstboot SCRIPT]
[--firstboot-command 'CMD+ARGS'] [--firstboot-install PKG,PKG..]
[--שם מארח HOSTNAME] [--התקן PKG,PKG..]
[--קישור TARGET:LINK[:LINK..]] [--mkdir DIR] [--move SOURCE:DEST]
[--password USER:SELECTOR] [--root-password SELECTOR]
[--הרץ SCRIPT] [--הפעל-פקודה 'CMD+ARGS'] [--scrub FILE]
[--sm-attach SELECTOR] [--sm-register] [--sm-remove]
[--sm-unregister] [--ssh-inject USER[:SELECTOR]] [--חתוך קובץ]
[--חתוך-נתיב רקורסיבי] [--אזור זמן TIMEZONE] [--גע בקובץ]
[--עדכון] [--העלה קובץ:DEST] [--כתוב קובץ:תוכן]
[--no-logfile] [--password-crypto md5|sha256|sha512]
[--selinux-relabel] [--sm-credentials SELECTOR]
virt-builder -l|--list [--long] [--list-format short|long|json]
virt-builder --notes OS-version
virt-builder --print-cache
virt-builder --cache-all-templates
virt-builder --delete-cache
virt-builder --get-kernel DISKIMAGE
[--format raw|qcow2] [--output OUTPUTDIR]
תיאור
Virt-builder הוא כלי לבנייה מהירה של מכונות וירטואליות חדשות. אתה יכול לבנות מגוון
של VMs לשימוש מקומי או בענן, בדרך כלל תוך מספר דקות או פחות. גם בונה ווירטים
יש דרכים רבות להתאים אישית את ה-VMs הללו. הכל מופעל משורת הפקודה וכלום
דורש הרשאות שורש, כך שהאוטומציה והסקריפטים פשוטים.
שימו לב ש-virt-builder לא מתקין אורחים מאפס. צריך להכין בצורה נקייה,
תבניות מערכת הפעלה חתומות דיגיטלית ומתאימה אותן אישית. גישה זו משמשת כי היא כן
הרבה יותר מהר, אבל אם אתה צריך לעשות התקנות חדשות אולי תרצה להסתכל על install-virt(1)
ו oz-install(1).
הדרך הקלה ביותר להתחיל היא עיון בדוגמאות בסעיף הבא.
דוגמאות
רשימה מה היא וירטואלי מכונות זמין
virt-builder --list
יפרט את מערכות ההפעלה הזמינות להתקנה. מבחר של באופן חופשי
מערכת הפעלה ניתנת להפצה מחדש זמינה כסטנדרט. אתה יכול להוסיף גם משלך (ראה למטה).
לאחר בחירת אורח מהרשימה, ייתכן שתרצה לראות אם יש התקנה כלשהי
הערות:
virt-builder --notes fedora-20
לִבנוֹת a וירטואלי מכונה
virt-builder fedora-20
יבנה תמונת Fedora 20 עבור אותה ארכיטקטורה כמו virt-builder (אז תפעיל אותה מ
התקנת i386 תנסה לבנות תמונת i386, אם זמינה). זה יהיה הכל
תצורת ברירת המחדל (גודל מינימלי, ללא חשבונות משתמש, סיסמת שורש אקראית, רק חשופה
מינימום תוכנות מותקנות וכו').
אתה do לֹא צריך להריץ את הפקודה הזו בתור root.
בפעם הראשונה שזה רץ זה צריך להוריד את התבנית דרך הרשת, אבל זה מתקבל
שמור במטמון (ראה "CACHING").
השם של קובץ הפלט נגזר משם התבנית, כך שמעליו יהיה
fedora-20.img. אתה יכול לשנות את שם קובץ הפלט באמצעות ה -o אפשרות:
virt-builder fedora-20 -o mydisk.img
אתה יכול גם להשתמש -o אפשרות לכתוב למכשירים קיימים או לנפחים לוגיים.
virt-builder fedora-20 --פורמט qcow2
כמו לעיל, אבל כתוב את הפלט בפורמט qcow2 ל fedora-20.qcow2.
virt-builder fedora-20 --גודל 20G
כמו לעיל, אבל גודל הפלט יהיה 20 GB. גודל מערכת ההפעלה האורח משתנה תוך כדי העתקה
הפלט (באופן אוטומטי, באמצעות וירט-שינוי גודל(1)).
virt-builder fedora-20 --arch i386
כמו לעיל, אך באמצעות תבנית i386, אם זמינה.
הגדרת מה היא שורש סיסמא
virt-builder fedora-20 --root-password file:/tmp/rootpw
צור תמונה של פדורה 20. סיסמת השורש נלקחת מהקובץ /tmp/rootpw.
שימו לב אם אתם לא סט --root-password לאחר מכן ניתן לאורח א אקראי סיסמת שורש.
אתה יכול גם ליצור חשבונות משתמש. ראה "משתמשים וסיסמאות" למטה.
לקבוע מה היא המארח
virt-builder fedora-20 --שם מארח virt.example.com
הגדר את שם המארח ל-"virt.example.com".
התקנה תוֹכנָה
כדי להתקין חבילות ממאגר התוכנה הרגיל (אורח) (למשל yum או apt):
virt-builder fedora-20 --התקן "inkscape,@Xfce Desktop"
(ב-Fedora, "@" משמש להתקנת קבוצות של חבילות. בדביאן היית מתקין א
מטה-חבילה במקום.)
כדי לעדכן את חבילות הליבה לגרסה העדכנית ביותר:
virt-builder debian-7 --עדכון
עבור אורחים המשתמשים ב-SELinux, כמו Fedora ו-Red Hat Enterprise Linux, ייתכן שתצטרך לעשות זאת
תיוג מחדש של SELinux לאחר התקנה או עדכון חבילות (ראה "SELINUX" להלן):
virt-builder fedora-20 --עדכון --selinux-relabel
התאמה אישית מה היא התקנה
ישנן אפשרויות רבות המאפשרות לך להתאים אישית את ההתקנה. אלו כוללים:
--לָרוּץ/--הפעל-פקודה, אשר מריצים סקריפט או פקודה מעטפת בזמן שתמונת הדיסק נמצאת
נוצר ומאפשר לך להוסיף או לערוך קבצים שנכנסים לתמונת הדיסק.
--אתחול ראשון/--firstboot-command, המאפשרים לך להוסיף סקריפטים/פקודות המופעלות לראשונה
הזמן את מגפי האורחים. --לַעֲרוֹך כדי לערוך קבצים. --העלה להעלאת קבצים.
לדוגמה:
cat <<'EOF' > /tmp/yum-update.sh
yum-i עדכון
EOF
virt-builder fedora-20 --firstboot /tmp/yum-update.sh
או בפשטות:
virt-builder fedora-20 --firstboot-command 'yum -y update'
מה שהופך את יאם(8) הפקודה "עדכון" הפעל פעם אחת בפעם הראשונה שהאורח מאתחל.
או:
וירט-בונה פדורה-20 \
--edit '/etc/yum.conf:
s/gpgcheck=1/gpgcheck=0/'
שעורך /etc/yum.conf בתוך תמונת הדיסק (במהלך יצירת תמונת דיסק, הרבה לפני
מַגָף).
אתה יכול לשלב את האפשרויות האלה, ויש לך אפשרויות מרובות מכל הסוגים.
אפשרויות
- עזרה
הצג עזרה.
--קֶשֶׁת אַדְרִיכָלוּת
השתמש בארכיטקטורה שצוינה עבור תמונת הפלט. זה אומר שחייבים להיות מקורות
מתן התבנית המבוקשת עבור הארכיטקטורה המבוקשת.
ראה גם "ארכיטקטורה".
--לְצַרֵף ISOFILE
במהלך שלב ההתאמה האישית, הדיסק הנתון מצורף ל-libguestfs
מַכשִׁיר. זה משמש כדי לספק מאגרי תוכנה נוספים או נתונים אחרים עבור
התאמה אישית.
אתה כנראה רוצה לוודא שאמצעי האחסון או מערכות הקבצים בדיסקים המצורפים הם
מסומנים (או השתמשו בשם אמצעי אחסון ISO) כדי שתוכלו לעלות אותם לפי תווית בריצה שלכם-
תסריטים:
mkdir /tmp/mount
mount LABEL=EXTRA /tmp/mount
אתה יכול לקבל מספר רב --לְצַרֵף אפשרויות, והפורמט יכול להיות כל פורמט דיסק (לא
רק ISO).
ראה גם: --לָרוּץ, "התקנת חבילות בזמן בנייה ממאגר צדדי",
דימוי גנזי(1), virt-make-fs(1).
--attach-format פורמט
ציין את פורמט הדיסק עבור הבא --לְצַרֵף אוֹפְּצִיָה. ה"פורמט" הוא בדרך כלל "גולמי"
או "qcow2". השתמש ב-"raw" עבור ISOs.
--מטמון DIR
--ללא מטמון
--מטמון DIR מגדיר את הספרייה לשימוש/לבדוק אם יש קבצי תבנית שמור. אם לא מוגדר,
ברירת המחדל לשתיהן $XDG_CACHE_HOME/virt-builder/ or $HOME/.cache/virt-builder/.
--ללא מטמון משבית את שמירה במטמון של תבניות.
--cache-all-templates
הורד את כל התבניות למטמון ואז צא. ראה "CACHING".
שימו לב שזה לא מאחסן הכל. ייתכן שיועלו תבניות נוספות. גם זה
אינו שומר חבילות במטמון (את --להתקין, --עדכון אפשרויות).
--חתימה המחאה
--חתימה ללא צ'ק
בדוק/אל תבדוק את החתימה הדיגיטלית של תבנית מערכת ההפעלה. ברירת המחדל היא לבדוק
החתימה וצא אם היא לא נכונה. באמצעות --חתימה ללא צ'ק עוקף את זה
לבדוק.
ראה גם --טביעת אצבע.
--סִלְסוּל CURL
ציין חלופה תלתל(1) בינארי. אתה יכול גם להשתמש בזה כדי להוסיף פרמטרים של תלתלים,
לדוגמה כדי להשבית בדיקות אישור https:
virt-builder --תלתל "תלתל --לא בטוח" [...]
--מחק-מטמון
מחק את מטמון התבנית. ראה "CACHING".
--אין-מחיקה-על-כשל
אל תמחק את קובץ הפלט במקרה של כשל בבנייה. אתה יכול להשתמש בזה כדי לאתר תקלות
להפעיל סקריפטים. עיין ב"ניפוי באגים" לדרכים לאיתור באגים בתמונות.
ברירת המחדל היא למחוק את קובץ הפלט אם virt-builder נכשל (או, למשל, חלק
הסקריפט שהוא מריץ נכשל).
--טביעת אצבע 'AAAA BBBB...'
בדוק שהאינדקס והתבניות חתומים על ידי המפתח עם טביעת האצבע הנתונה.
(טביעת האצבע היא מחרוזת ארוכה, הנכתבת בדרך כלל כ-10 קבוצות של 4 הקסדצימליים
ספרות).
אתה יכול לתת אפשרות זו מספר פעמים. אם יש לך מספר כתובות אתרים מקור, אז אתה
יכול להיות ללא טביעת אצבע, טביעת אצבע אחת או טביעות אצבע מרובות. אם יש לך
מרובה, אז כל אחד חייב להתאים 1-1 עם כתובת אתר מקור.
--פוּרמָט qcow2
--פוּרמָט חי
עבור בנייה רגילה, זה בוחר את פורמט הפלט. ברירת המחדל היא חי.
עם --קבל-קרנל זה מציין את פורמט הקלט.
ליצירת קובץ qcow2 בסגנון ישן (לצורך תאימות עם RHEL 6 או qemu ישן מאוד
1.1), לאחר הפעלת virt-builder, השתמש בפקודה הזו:
qemu-img amend -f qcow2 -o compat=0.10 output.qcow2
--קבל-קרנל תמונה
אפשרות זו מחלצת את הליבה וה-initramfs מתמונת דיסק שנבנתה בעבר
נקרא "IMAGE" (למעשה זה עובד עבור כל תמונת דיסק VM, לא רק עבור אלה שנבנו באמצעות
וירט-בונה).
הקרנל וה-initramfs נכתבים לספרייה הנוכחית, אלא אם כן תציין גם
מה היא --תְפוּקָה "outputdir" בספרייה שם.
הפורמט של תמונת הדיסק מזוהה אוטומטית אלא אם כן תציין זאת באמצעות שימוש
מה היא --פוּרמָט אוֹפְּצִיָה.
במקרה בו האורח מכיל מספר גרעינים, זה עם הגבוה ביותר
נבחר מספר גרסה. כדי לחלץ גרעינים שרירותיים מתמונת הדיסק, ראה
דג אורח(1). כדי לחלץ את כולו / אתחול ספרייה של אורח, ראה virt-copy-out(1).
--gpg GPG
ציין חלופה Gpg(1) (GNU Privacy Guard) בינארי. אתה יכול גם להשתמש בזה כדי להוסיף
פרמטרי gpg, למשל כדי לציין ספריית בית חלופית:
virt-builder --gpg "gpg --homedir / Tmp"[...]
-l
--רשימה
--רשימה --פורמט רשימה פוּרמָט
--רשימה --ארוך
רשימת תבניות זמינות.
אפשר לבחור עם --פורמט רשימה פורמט הפלט של תבניות הרשימה:
קצר
פורמט ברירת המחדל, מדפיס רק את מזהה התבנית ולידו הקצר שלו
תאור.
ארוך
מדפיס רשימה טקסטואלית עם הפרטים של המקורות הזמינים, ולאחר מכן את
פרטים על התבניות הזמינות.
ג'סון
מדפיס אובייקט JSON עם הפרטים של המקורות הזמינים והפרטים של
התבניות הזמינות.
מפתח "גרסה" באובייקט הראשי מייצג את "גרסת התאימות", ו
הוא נחבט בכל פעם שפלט ה-JSON המתקבל אינו תואם ל-
גרסאות קודמות (לדוגמה, המבנה השתנה, או מפתחות לא אופציונליים
לא נוכח יותר).
--ארוך הוא קיצור לפורמט "ארוך".
ראה גם: --מָקוֹר, --הערות, "מקורות של תבניות".
--ניתן לקריאה במכונה
אפשרות זו משמשת כדי להפוך את הפלט לידידותי יותר למכונה כאשר הוא מנותח על ידי
תוכניות אחרות. ראה "פלט קריא במכונה" להלן.
-m MB
--- memsize MB
שנה את כמות הזיכרון שהוקצה לו --לָרוּץ תסריטים. הגדל את זה אם תמצא
זֶה --לָרוּץ סקריפטים או ה --להתקין הזיכרון אוזל.
ניתן למצוא את ברירת המחדל בפקודה זו:
דג guest get-memsize
--רֶשֶׁת
--אין רשת
הפעל או השבת גישה לרשת מהאורח במהלך ההתקנה.
מופעל הוא ברירת המחדל. להשתמש --אין רשת כדי להשבית את הגישה.
הרשת מאפשרת רק חיבורים יוצאים ויש לה מגבלות קטנות אחרות. לִרְאוֹת
"רשת" ב וירט-הצלה(1).
אם אתה משתמש --אין רשת לאחר מכן אפשרויות מסוימות אחרות כגון --להתקין לא יעבוד.
זה לא משפיע על האם האורח יכול לגשת לרשת לאחר אתחולה,
כי זה נשלט על ידי ה-Hypervisor או סביבת הענן שלך ואין מה לעשות
לעשות עם וירט-בונה.
באופן כללי אתה צריך לֹא להשתמש --אין רשת. אבל הנה כמה סיבות למה אתה
אולי ירצה:
1. מכיוון שה-backend של libguestfs שבו אתה משתמש אינו תומך ברשת.
(ראה: "BACKEND" ב guestfs(3)).
2. כל תוכנה שאתה צריך להתקין מגיעה מ-ISO מצורף, כך שאתה לא צריך את
רשת.
3. אינך רוצה שקוד אורח לא מהימן ינסה לגשת לרשת המארחת שלך כאשר
הפעלת virt-builder. זו בעיה במיוחד כאשר אתה לא סומך על
מקור תבניות מערכת ההפעלה. (ראה "אבטחה" להלן).
4. אין לך רשת מארחת (למשל בסביבות מאובטחות/מוגבלות).
--אין סנכרון
אל תסנכרן את קובץ הפלט ביציאה.
Virt-builder fsync הוא קובץ הפלט או תמונת הדיסק כאשר הוא יוצא.
הסיבה היא שמצב ברירת המחדל של קבצי מטמון של qemu/KVM הוא "ללא" או "סינכרון ישיר", שניהם
שעוקפים את המטמון של הדף המארח. לכן אלה לא יעבדו כראוי אם אתה
מיד התחיל האורח לאחר הפעלת virt-Builder - הם לא יראו את
קובץ פלט מלא. (שים לב שאתה לא צריך להשתמש במצבי מטמון אלה - הם כן
נשבר מיסודו מסיבות זה ומסיבות אחרות.)
אם אינך משתמש במצבי מטמון שבורים אלה, תוכל להשתמש --אין סנכרון כדי להימנע מכך
סנכרון מיותר ולהשיג ביצועים נוספים ניכרים.
--הערות גרסה OS
רשום את כל ההערות הקשורות לאורח זה, ואז צא (זה לא מבצע את ההתקנה).
-o שם הקובץ
--תְפוּקָה שם הקובץ
כתוב את הפלט ל שם הקובץ. אם לא תציין אפשרות זו, אז הפלט
שם הקובץ נוצר על ידי נטילת המחרוזת "OS-version" והוספת ".img" (עבור raw
פורמט) או ".qcow2" (עבור פורמט qcow2).
שים לב ששם קובץ הפלט יכול להיות התקן, מחיצה או אמצעי אחסון לוגי.
בעת שימוש עם --קבל-קרנל, אפשרות זו מציינת את ספריית הפלט.
--הדפס-מטמון
הדפס מידע על מטמון התבנית. ראה "CACHING".
-q
--שֶׁקֶט
אל תדפיס הודעות התקדמות רגילות.
--גודל גודל
בחר את גודל דיסק הפלט, שבו ניתן לציין את הגודל באמצעות שמות נפוצים
כגון "32G" (32 גיגה-בייט) וכו'.
Virt-builder ישנה את גודל מערכות הקבצים בתוך תמונת הדיסק באופן אוטומטי.
אם הגודל לא מצוין, אז אחד משני דברים קורה. אם הפלט הוא א
קובץ, אז הגודל זהה לתבנית. אם הפלט הוא התקן,
מחיצה וכו', אז נעשה שימוש בגודל ההתקן.
כדי לציין גודל בבתים, המספר חייב להיות אחרי האות הקטנה b, למשל:
"--גודל 10737418240b".
--smp N
אפשר N ≥ 2 מעבדים וירטואליים עבור --לָרוּץ סקריפטים לשימוש.
--מָקוֹר כתובת האתר
הגדר את כתובת האתר של המקור כדי לחפש אינדקסים.
אתה יכול לתת אפשרות זו מספר פעמים כדי לציין מספר מקורות.
ראה גם "מקורות של תבניות" למטה.
שימו לב שלא כדאי להצביע --מָקוֹר למקורות שאתה לא סומך עליהם (אלא אם כן
המקור חתום על ידי מישהו שאתה כן סומך עליו). ראה גם את --אין רשת אוֹפְּצִיָה.
-v
--מִלוּלִי
אפשר הודעות ניפוי באגים ו/או הפקת פלט מילולי.
בעת דיווח על באגים, השתמש באפשרות זו וצרף את הפלט המלא לבאג שלך
לדווח.
-V
--גִרְסָה
הצג את מספר הגרסה וצא.
-x אפשר מעקב אחר קריאות API של libguestfs.
התאמה אישית אפשרויות
--chmod הרשאות: קובץ
שנה את ההרשאות של "FILE" ל-"PERMISSIONS".
הערות: "הרשאות" כברירת מחדל תהיה עשרונית, אלא אם כן תכניס אותו בקידומת 0 כדי לקבל
אוקטלי, כלומר. השתמש ב-0700 ולא ב-700.
--commands-from-file שם קובץ
קרא את פקודות ההתאמה האישית מקובץ, אחת (והארגומנטים שלו) בכל שורה.
כל שורה מכילה פקודת התאמה אישית אחת והארגומנטים שלה, לדוגמה:
מחק /כמה/קובץ
להתקין חבילה כלשהי
סיסמה some-user:password:its-new-password
מתעלמים משורות ריקות, ושורות המתחילות ב-"#" הן הערות ומתעלמים מהן בתור
נו. יתר על כן, ניתן לפזר ארגומנטים על פני מספר שורות, על ידי הוספת "\"
(תו המשך) בחלק של שורה, למשל
ערוך /some/file:\
s/^OPT=.*/OPT=ok/
הפקודות מטופלות באותו סדר כפי שהן בקובץ, כאילו היו
צוין כ --לִמְחוֹק /כמה/קובץ בשורת הפקודה.
--עותק מקור: DEST
העתק קבצים או ספריות באופן רקורסיבי בתוך האורח.
לא ניתן להשתמש בתווים כלליים.
--העתק פנימה LOCALPATH:REMOTEDIR
העתק קבצים או ספריות מקומיות באופן רקורסיבי לתמונת הדיסק, והצב אותם ב-
ספרייה "REMOTEDIR" (שחייבת להתקיים).
לא ניתן להשתמש בתווים כלליים.
--לִמְחוֹק נתיב
מחק קובץ מהאורח. או למחוק ספרייה (וכל התוכן שלה,
באופן רקורסיבי).
ראה גם: --העלה, --לְשַׁפשֵׁף.
--לַעֲרוֹך קובץ:EXPR
ערוך את "FILE" באמצעות הביטוי Perl "EXPR".
היזהר לצטט כראוי את הביטוי כדי למנוע ממנו להשתנות על ידי ה
צדף.
שימו לב שאופציה זו זמינה רק כאשר Perl 5 מותקן.
ראה "עריכה לא אינטראקטיבית" ב virt-edit(1).
--אתחול ראשון SCRIPT
התקן את "SCRIPT" בתוך האורח, כך שכאשר האורח מאתחל לראשונה, הסקריפט
פועל (כשורש, מאוחר בתהליך האתחול).
הסקריפט הוא אוטומטי chmod +x לאחר ההתקנה באורח.
הגרסה האלטרנטיבית --firstboot-command זהה, אבל זה עוטף בנוחות את
הפקודה למעלה בסקריפט בשורה אחת עבורך.
אתה יכול לקבל מספר רב --אתחול ראשון אפשרויות. הם רצים באותו סדר שהם
מופיעים בשורת הפקודה.
נא להסתכל על "SCRIPTS למגף ראשון" למידע נוסף וההזהרות לגבי
סקריפטים לאתחול ראשונים.
ראה גם --לָרוּץ.
--firstboot-command 'CMD+ARGS'
הפעל פקודה (וארגומנטים) בתוך האורח כאשר האורח מאתחל לראשונה (כשורש,
מאוחר בתהליך האתחול).
אתה יכול לקבל מספר רב --אתחול ראשון אפשרויות. הם רצים באותו סדר שהם
מופיעים בשורת הפקודה.
נא להסתכל על "SCRIPTS למגף ראשון" למידע נוסף וההזהרות לגבי
סקריפטים לאתחול ראשונים.
ראה גם --לָרוּץ.
--firstboot-install PKG, PKG..
התקן את החבילות הנקובות בשמות (רשימה מופרדת בפסיקים). אלה מותקנים כאשר
מגפי אורח ראשונים באמצעות מנהל החבילות של האורח (למשל apt, yum וכו') וה-
חיבור הרשת של האורח.
לסקירה כללית על הדרכים השונות להתקנת חבילות, ראה "התקנת חבילות".
--שם מארח שם מארח
הגדר את שם המארח של האורח ל-"HOSTNAME". אתה יכול להשתמש בשם hostname.domainname מנוקד
(FQDN) אם אתה רוצה.
--להתקין PKG, PKG..
התקן את החבילות הנקובות בשמות (רשימה מופרדת בפסיקים). אלה מותקנים במהלך
בניית תמונה באמצעות מנהל החבילות של האורח (למשל apt, yum וכו') ושל המארח
חיבור רשת.
לסקירה כללית על הדרכים השונות להתקנת חבילות, ראה "התקנת חבילות".
ראה גם --עדכון.
--קישור TARGET:LINK[:LINK..]
צור קישור(ים) סימבוליים באורח, החל ב-"LINK" והצביע על "TARGET".
--mkdir DIR
צור ספרייה באורח.
זה משתמש ב-"mkdir -p" כך שכל ספריות ביניים נוצרות, וזה גם עובד אם
הספרייה כבר קיימת.
--מהלך \ לזוז \ לעבור מקור: DEST
העבר קבצים או ספריות בתוך האורח.
לא ניתן להשתמש בתווים כלליים.
--no-logfile
שפשפו את "builder.log" (קובץ יומן מפקודות build) מהתמונה לאחר הבנייה
לְהַשְׁלִים. אם אינך רוצה לחשוף במדויק כיצד נבנתה התמונה, השתמש בזה
אוֹפְּצִיָה.
ראה גם: "קובץ LOG".
--סיסמה משתמש:בורר
הגדר את הסיסמה עבור "USER". (שים לב לאפשרות זו לֹא ליצור את חשבון המשתמש).
ראה "משתמשים וסיסמאות" לפורמט של השדה "בורר", וגם כיצד להגדיר
להעלות חשבונות משתמש.
--סיסמה-קריפטו md5|sha256|sha512
כאשר כלי virt משתנים או מגדירים סיסמה באורח, אפשרות זו מגדירה את
הצפנת סיסמה של סיסמה זו ל-"md5", "sha256" או "sha512".
"sha256" ו-"sha512" דורשים glibc ≥ 2.7 (בדוק כוך(3) בתוך האורח).
"md5" יעבוד עם אורחי לינוקס ישנים יחסית (למשל RHEL 3), אך אינו מאובטח
נגד התקפות מודרניות.
ברירת המחדל היא "sha512" אלא אם כן libguestfs מזהה אורח ישן שלא היה לו
תמיכה ב-SHA-512, ובמקרה זה הוא ישתמש ב-"md5". אתה יכול לעקוף libguestfs על ידי
ציון אפשרות זו.
שים לב שזה לא משנה את ברירת המחדל של הצפנת הסיסמה שבה משתמש האורח כאשר אתה
צור חשבונות משתמש חדשים בתוך האורח. אם אתה רוצה לעשות את זה, אז אתה צריך
להשתמש --לַעֲרוֹך אפשרות לשנות את "/etc/sysconfig/authconfig" (Fedora, RHEL) או
"/etc/pam.d/common- סיסמה" (דביאן, אובונטו).
--root-password בוחר
הגדר את סיסמת השורש.
ראה "משתמשים וסיסמאות" לפורמט של השדה "בורר", וגם כיצד להגדיר
להעלות חשבונות משתמש.
הערה: ב-virt-builder, אם אתה לא סט --root-password לאחר מכן ניתן לאורח א
אקראי סיסמת שורש.
--לָרוּץ SCRIPT
הפעל את סקריפט המעטפת (או כל תוכנה) בשם "SCRIPT" בתמונת הדיסק. התסריט
פועל וירטואלי בתוך מכשיר קטן, chrooted לתוך מערכת הקבצים האורח.
הסקריפט הוא אוטומטית chmod +x.
אם libguestfs תומך בזה אז חיבור רשת מוגבל זמין אבל זה בלבד
מאפשר חיבורי רשת יוצאים. אתה יכול גם לצרף דיסקי נתונים (למשל קבצי ISO)
כדרך נוספת לספק נתונים (למשל חבילות תוכנה) לסקריפט ללא צורך ב-
חיבור רשת (--לְצַרֵף). אתה יכול גם להעלות קבצי נתונים (--העלה).
אתה יכול לקבל מספר רב --לָרוּץ אפשרויות. הם פועלים באותו סדר שבו הם מופיעים
שורת הפקודה.
ראה גם: --אתחול ראשון, --לְצַרֵף, --העלה.
--הפעל-פקודה 'CMD+ARGS'
הפעל את הפקודה והארגומנטים בתמונת הדיסק. הפקודה פועלת וירטואלית בפנים
מכשיר קטן, chrooted לתוך מערכת הקבצים האורח.
אם libguestfs תומך בזה אז חיבור רשת מוגבל זמין אבל זה בלבד
מאפשר חיבורי רשת יוצאים. אתה יכול גם לצרף דיסקי נתונים (למשל קבצי ISO)
כדרך נוספת לספק נתונים (למשל חבילות תוכנה) לסקריפט ללא צורך ב-
חיבור רשת (--לְצַרֵף). אתה יכול גם להעלות קבצי נתונים (--העלה).
אתה יכול לקבל מספר רב --הפעל-פקודה אפשרויות. הם רצים באותו סדר שהם
מופיעים בשורת הפקודה.
ראה גם: --אתחול ראשון, --לְצַרֵף, --העלה.
--לְשַׁפשֵׁף קובץ
שפשפו קובץ מהאורח. זה כמו --לִמְחוֹק חוץ מזה ש:
· הוא מקרצף את הנתונים כך שאורח לא יוכל לשחזר אותם.
· זה לא יכול למחוק ספריות, רק קבצים רגילים.
--selinux-relabel
סמן מחדש קבצים באורח כך שתהיה להם תווית SELinux הנכונה.
עליך להשתמש באפשרות זו רק לאורחים התומכים ב-SELinux.
--sm-attach בוחר
צרף למאגר באמצעות "מנויים-מנהל".
ראה "מנויים-מנהל" לפורמט של השדה "בורר".
--sm-אישורים בוחר
הגדר את האישורים עבור "מנהל מנויים".
ראה "מנויים-מנהל" לפורמט של השדה "בורר".
--sm-register
רשום את האורח באמצעות "מנויים-מנהל".
זה מחייב הגדרת אישורים באמצעות --sm-אישורים.
--sm-remove
הסר את כל המנויים מהאורח באמצעות "מנהל מנויים".
--sm-בטל רישום
בטל את רישום האורח באמצעות "מנהל מנויים".
--ssh-inject משתמש[:בורר]
הזריקו מפתח ssh כך שה-"USER" הנתון יוכל להיכנס דרך ssh בלי
מתן סיסמה. ה-"USER" חייב להתקיים כבר באורח.
ראה "מפתחות SSH" לפורמט של השדה "בורר".
אתה יכול לקבל מספר רב --ssh-inject אפשרויות, עבור משתמשים שונים וגם עבור מפתחות נוספים
לכל משתמש.
--אזור זמן אזור זמן
הגדר את אזור הזמן המוגדר כברירת מחדל של האורח ל-"TIMEZONE". השתמש במחרוזת מיקום כמו
"אירופה/לונדון"
--לגעת קובץ
פקודה זו מבצעת א לגעת(1) פעולה דמוית "FILE".
--לקטוע קובץ
פקודה זו חותכת את ה"נתיב" לקובץ באורך אפס. הקובץ חייב להיות קיים כבר.
--קטוע-רקורסיבי נתיב
פקודה זו חותכת באופן רקורסיבי את כל הקבצים תחת "נתיב" לאפס באורך.
--עדכון
בצע את המקבילה של "עדכון יאם", "apt-get upgrade", או כל פקודה שנדרשת
כדי לעדכן את החבילות שכבר מותקנות בתבנית לגרסאות האחרונות שלהן.
ראה גם --להתקין.
--העלה קובץ: DEST
העלה את הקובץ המקומי "FILE" ליעד "DEST" בתמונת הדיסק. בעל הקובץ ו
ההרשאות מהמקור נשמרות, אז אתה צריך להגדיר אותן למה שאתה רוצה
שהם יהיו בתמונת הדיסק.
"DEST" יכול להיות שם הקובץ הסופי. זה יכול לשמש כדי לשנות את שם הקובץ בעת העלאה.
אם "DEST" הוא שם ספרייה (שחייב כבר להתקיים באורח) אז הקובץ הוא
הועלה לתוך הספרייה הזו, והיא שומרת על אותו שם כמו במערכת הקבצים המקומית.
ראה גם: --mkdir, --לִמְחוֹק, --לְשַׁפשֵׁף.
--לִכתוֹב קובץ:תוכן
כתוב "CONTENT" ל-"FILE".
הפניה
התקנה זיווד
ישנן מספר גישות להתקנת חבילות או יישומים באורח אשר
יש פשרות שונות.
התקנה חבילות at לִבנוֹת זמן
אם מערכת ההפעלה האורחת שאתה מתקין דומה למערכת ההפעלה המארח (למשל, שניהם לינוקס), ואם
libguestfs תומך בחיבורי רשת, אז אתה יכול להשתמש --להתקין להתקין חבילות
ככה:
virt-builder fedora-20 --התקן inkscape
זה משתמש במנהל החבילות של האורח ובחיבור הרשת של המארח.
עדכון חבילות at לִבנוֹת זמן
כדי לעדכן את ערכת הליבה של חבילות בתבנית בזמן הבנייה:
virt-builder fedora-20 --עדכון
רוב התבניות הנשלחות עם virt-builder מגיעות עם מבחר מינימלי ביותר של
חבילות (המכונה "JEOS" או "Just Enough Operating System"), אשר מעודכנות בכתובת
הזמן שבו התבנית נוצרת, אך עשוי להיות לא מעודכן עד שתגיע להתקנה
מערכת הפעלה מהתבנית. אפשרות זו מעדכנת את חבילות התבניות הללו.
התקנה חבילות at ראשון אתחול
אפשרות נוספת היא להתקין את החבילות כאשר האורח מאתחל לראשונה:
virt-builder fedora-20 --firstboot-install inkscape
זה משתמש במנהל החבילות של האורח ובחיבור הרשת של האורח.
החסרונות הם שייקח לאורח הרבה יותר זמן לאתחל בפעם הראשונה, ויש
אין הרבה מה לעשות אם התקנת החבילה נכשלת (למשל אם בעיית רשת פירושה ה
אורח לא יכול להגיע למאגרי החבילות).
התקנה חבילות at לִבנוֹת זמן החל מ- a צד מאגר
אם התוכנה שברצונך להתקין אינה זמינה במאגר החבילות הראשי של
אורח, אז אתה יכול להוסיף מאגר צדדי. בדרך כלל זה מוצג כ-ISO (דיסק תקליטור
image) קובץ המכיל חבילות נוספות.
אתה יכול ליצור את תמונת הדיסק באמצעות אחד מהם דימוי גנזי(1) או virt-make-fs(1). ל
genisoimage, השתמש בפקודה כזו:
genisoimage -o extra-packages.iso -R -J -V EXTRA cdcontents/
צור סקריפט שמעלה את ה-ISO ומגדיר את המאגר. בשביל יאמ, צור
/tmp/install.sh המכיל:
mkdir /tmp/mount
mount LABEL=EXTRA /tmp/mount
cat <<'EOF' > /etc/yum.repos.d/extra.repo
[תוֹסֶפֶת]
שם=תוספת
baseurl=file:///tmp/mount
מופעל = 1
EOF
yum -y התקן את המפורסם מסד נתונים
עבור apt, צור /tmp/install.sh המכיל:
mkdir /tmp/mount
mount LABEL=EXTRA /tmp/mount
apt-cdrom -d=/tmp/mount add
apt-get -y התקן את המפורסם מסד נתונים
השתמש --לְצַרֵף אפשרות לצרף את תמונת התקליטור/דיסק ואת --לָרוּץ אפשרות להפעיל את
תַסרִיט:
וירט-בונה פדורה-20 \
--attach extra-packages.iso \
--הפעל /tmp/install.sh
משתמש ו סיסמאות
השמיים --root-password אפשרות משמשת לשינוי סיסמת השורש (אחרת אקראית
נעשה שימוש בסיסמה). אפשרות זו לוקחת סיסמה "SELECTOR" באחת מהאפשרויות הבאות
An University you
--root-password קובץ:FILENAME
קרא את סיסמת השורש מ-"FILENAME". כל השורה הראשונה של הקובץ הזה היא
סיסמה חלופית. כל שורות אחרות מתעלמות. אתה צריך ליצור את הקובץ עם
מצב 0600 כדי להבטיח שאף אחד אחר לא יוכל לקרוא אותו.
--root-password סיסמה:PASSWORD
הגדר את סיסמת השורש למחרוזת המילולית "PASSWORD".
הערה: זֶה is לֹא לבטח מכיוון שכל משתמש באותו מחשב יכול לראות את הטקסט הבהיר
באמצעות סיסמה ps(1).
--root-password אקראי
בחר סיסמה אקראית, אשר מודפסת על stdout. לסיסמה יש בערך
120 סיביות של אקראיות.
זוהי ברירת המחדל.
--root-password נכה
סיסמת חשבון השורש מושבתת. זה כמו לשים "*" בסיסמה
שדה.
--root-password נעול:קובץ:FILENAME
--root-password נעול:סיסמה:PASSWORD
--root-password נעול: אקראי
חשבון השורש נעול, אך מוצבת סיסמה בחשבון. אם קודם
לא נעול (באמצעות "passwd -u") אז כניסות ישתמשו בסיסמה הנתונה.
--root-password נעול
--root-password נעול: מושבת
חשבון השורש נעול ו הסיסמה מושבתת.
יוצרים המשתמש חשבונות
כדי ליצור חשבונות משתמש, השתמש ב- משתמש להוסיף(8) הפקודה עם --firstboot-command כך:
virt-builder --firstboot-command \
'useradd -m -p "" rjones; chage -d 0 rjones'
הפקודה לעיל תיצור חשבון "rjones" ללא סיסמה, ותאלץ את המשתמש לעשות זאת
הגדר סיסמה כאשר הם נכנסים לראשונה. יש דרכים אחרות לנהל סיסמאות, ראה
משתמש להוסיף(8) לפרטים.
מקלדת מערך
מכיוון שיש כל כך הרבה דרכים שונות להגדיר את פריסת המקלדת בלינוקס
הפצות, virt-builder עדיין לא מנסה לקבל אפשרות שורת פקודה פשוטה.
סעיף זה מתאר כיצד להגדיר את המקלדת עבור כמה הפצות לינוקס נפוצות.
מקלדת פריסה עם system
עבור הפצות המשתמשות ב-systemd "localectl", השתמש בפקודה כזו:
וירט-בונה פדורה-20 \
--firstboot-command 'localectl set-keymap uk'
לִרְאוֹת localectl(1) ו
https://www.happyassassin.net/2013/11/23/keyboard-layouts-in-fedora-20-and-previously/ for
פרטים נוספים.
מקלדת פריסה באמצעות /etc/sysconfig/keyboard
עבור RHEL ≤ 6, Fedora ≤ 18 וכדומה, העלה או שנה את קובץ התצורה של המקלדת
באמצעות --העלה, --לִכתוֹב or --לַעֲרוֹך אפשרויות. לדוגמה:
virt-builder centos-6 \
--edit '/etc/sysconfig/keyboard: s/^KEYTABLE=.*/KEYTABLE="uk"/'
ניתן למצוא את הפורמט של קובץ זה מתועד במקומות רבים באינטרנט.
מקלדת פריסה עם נגזרת דביאן הפצות
להפצות שמקורן בדביאן באמצעות /etc/default/keyboard, העלה או שנה את קובץ המקלדת
באמצעות --העלה, --לִכתוֹב or --לַעֲרוֹך אפשרויות. לדוגמה:
virt-builder debian-7 \
--ערוך'/etc/default/keyboard: s/^XKBLAYOUT=.*/XKBLAYOUT="gb"/'
ראה https://wiki.debian.org/Keyboard.
שָׂפָה
רוב ההפצות של לינוקס תומכות בהגדרות מקומיות מרובות כך שתוכל לקבל אורח
הודעות מודפסות בשפה אחרת כגון רוסית.
עם זאת, אין הגדרה אחת השולטת בכך, מכיוון שייתכן שיידרשו חבילות נוספות
להיות מותקן כדי לתמוך במסוף ובגופנים X, ובשיטות קלט מקלדת. החבילות
נדרש, והתצורה שלהם היא מאוד ספציפית לדיסטרו, והיא מחוץ לתחום
של וירט-בונה לעשות זאת.
חלק זה מכיל דוגמאות לכמה הפצות לינוקס נפוצות.
הגדרת יפני in פדורה 20
וירט-בונה פדורה-20 \
--גודל 20G \
--עדכון \
--התקן @japanese-support \
--התקן @xfce \
--התקן xorg-x11-server-Xorg,xorg-x11-drivers,rsyslog \
--קישור /usr/lib/systemd/system/graphical.target:/etc/systemd/system/default.target \
--firstboot-command 'localectl set-locale LANG=ja_JP.utf8' \
--firstboot-command 'localectl set-keymap jp' \
--firstboot-command 'systemctl isolate graphical.target'
הגדרת יפני in דביאן 7 (שׁוֹרקָנִי)
שים לב שלמרות שזה מאפשר יפנית גם במסוף הטקסט, לא סביר שאתה
יראה שם בעיבוד יפני כהלכה. עם זאת, יפנית מוצגת כראוי ב-X
יישומים ומסופים.
pkgs=locales,xfce4,\
ibus,ibus-anthy,\
ttf-sazanami-gothic,ttf-sazanami-mincho,\
פונטים-טאקו-מינצ'ו,\
xfonts-intl-japanese,xfonts-intl-japanese-big,\
iceweasel-l10n-ja,manpages-ja
virt-builder debian-7 \
--גודל 20G \
--התקן $pkgs \
--edit '/etc/inittab: s,^#([1-9].*respawn.*/sbin/getty.*),$1,' \
--ערוך'/etc/locale.gen: s,^#\s*ja,ja,' \
--כתוב'/etc/default/locale:LANG="ja_JP.UTF-8"' \
--הפעל את הפקודה "locale-gen"
LOG קובץ
סקריפטים והתקנת חבילות הפועלות בזמן הבנייה (--לָרוּץ, --הפעל-פקודה, --להתקין,
--עדכון, אבל לֹא firstboot) מחובר באחד מהמיקומים הבאים:
/tmp/builder.log
על לינוקס, BSD ואורחים אחרים.
C:\Temp\builder.log
ב-Windows, אורחי DOS.
/builder.log
If / Tmp or C: \ Temp חסר.
אם אינך רוצה שקובץ היומן יופיע בתמונה הסופית, השתמש ב- --no-logfile
אפשרות שורת הפקודה.
SSH מפתחות
השמיים --ssh-inject האופציה משמשת להחדרת מפתחות ssh עבור משתמשים באורח, כך שהם יכולים
להתחבר מבלי לספק סיסמה.
החלק "SELECTOR" של ערך האופציה הוא אופציונלי; במקרה הזה, --ssh-inject "מִשׁתַמֵשׁ"
פירושו שאנו מסתכלים ב נוֹכְחִי של המשתמש ~ / .ssh ספרייה כדי למצוא את המזהה הציבורי המוגדר כברירת מחדל
קוֹבֶץ. המפתח הזה מועלה. "ברירת מחדל מזהה ציבורי" הוא default_ID_file קובץ המתואר ב
ssh-copy-id(1).
אם צוין, ה-"SELECTOR" יכול להיות באחד מהפורמטים הבאים:
--ssh-inject USER:קובץ:שם קובץ
קרא את מפתח ssh מ שם קובץ. שם קובץ הוא בדרך כלל א .פוב קובץ.
--ssh-inject USER:string:KEY_STRING
השתמש ב-"KEY_STRING" שצוין. "KEY_STRING" הוא בדרך כלל מחרוזת ציבורית כמו ssh-rsa
AAAA.... user@localhost.
בכל מקרה, ~USER/.ssh ספרייה ואת ~USER/.ssh/authorized_keys הקובץ יהיה
נוצר אם לא קיים כבר.
ראשון מַגָף סקריפטים
השמיים --אתחול ראשון ו --firstboot-command אפשרויות מאפשרות לך לבצע פקודות בהתחלה
אתחול של האורח. לשם כך, מותקן סקריפט init עבור מערכת init האורח, אשר
דואג להפעיל את כל הסקריפטים והפקודות שנוספו.
מערכות ההפעלה הנתמכות הן:
לינוקס
מערכות Init הנתמכות הן: systemd, System-V init (הידוע גם בשם sysvinit), ו
Upstart (באמצעות סקריפטים של System-V).
שימו לב שבדרך כלל סקריפטים של init פועלים כשורש, אבל עם סביבה מוגבלת יותר מאשר
מה יכול להיות זמין ממעטפת רגילה: לדוגמה, $HOME עשוי להיות לא מוגדר או ריק.
הפלט של סקריפטי האתחול הראשונים זמין ב- guest as
~root/virt-sysprep-firstboot.log.
Windows
rhsrvany.exe, זמין ממקורות בכתובת https://github.com/rwmjones/rhsrvany, הוא
מותקן כדי להפעיל את סקריפטי האתחול הראשונים. זה נדרש, ואת ההגדרה של האתחול הראשון
סקריפטים ייכשלו אם הוא לא קיים.
rhsrvany.exe מועתק מהמיקום שאליו הצביע "VIRT_TOOLS_DATA_DIR"
משתנה הסביבה; אם לא מוגדר, ייעשה שימוש ברירת מחדל מהידור (משהו כמו
/usr/share/virt-tools).
הפלט של סקריפטי האתחול הראשונים זמין ב- guest as C: \ תוכנית קבצים\אדום
Hat\Firstboot\log.txt.
מנהל מנויים
ניתן לבצע אוטומציה של רישום וצירוף המערכת באמצעות
"מנהל מנויים". זה אופייני לאורחי Red Hat Enterprise Linux. יש
מעט אפשרויות המקלות על תהליך זה, הימנעות מביצוע פקודות באופן ידני וחשיפה
סיסמאות בשורת הפקודה.
--sm-register מתחיל את תהליך הרישום, ודורש --sm-אישורים להיות
נָקוּב; הפורמט של ה-"SELECTOR" של --sm-אישורים הוא אחד מהבאים
An University you
--sm-אישורים USER:קובץ:שם קובץ
קרא את הסיסמה עבור "USER" שצוין מ שם קובץ.
--sm-אישורים משתמש:סיסמה:סיסמה
השתמש במחרוזת המילולית "PASSWORD" עבור "USER" שצוין.
--sm-attach מצרף את המערכת למנויים; הפורמט של "SELECTOR" שלו הוא אחד
הבא:
--sm-attach המכונית
"מנהל מנויים" מצרף את המנויים המתאימים ביותר למערכת.
--sm-attach קובץ:FILENAME
קרא את מזהה הבריכה מ שם קובץ.
--sm-attach בריכה: בריכה
השתמש במחרוזת המילולי "POOL" כמזהה בריכה.
--sm-remove מסיר את כל המנויים מהאורח, תוך כדי --sm-בטל רישום לחלוטין
לבטל את רישום המערכת.
התקנה תהליך
כאשר אתה מפעיל את virt-builder, ההתקנה ממשיכה באופן הבא:
· הורדת תמונת התבנית.
אם תמונת התבנית קיימת במטמון, הגרסה השמורה משמשת במקום זאת.
(ראה "CACHING").
· חתימת התבנית מסומנת.
· התבנית לא דחוסה לקובץ tmp.
· גודל תמונת התבנית משתנה ליעד, באמצעות וירט-שינוי גודל(1).
· מצורפים דיסקים נוספים (--לְצַרֵף).
· נוצר זרע אקראי חדש עבור האורח.
· התאמה אישית של אורח מתבצעת, בסדר המצוין בשורת הפקודה.
· תיוג מחדש של SELinux נעשה (--selinux-relabel).
יבוא LA דִיסק תמונה
יבוא אל תוך libvirt
ייבא את תמונת הדיסק אל libvirt באמצעות install-virt(1) --יְבוּא אוֹפְּצִיָה.
virt-install --import \
--שם אורח --ram 2048 \
--disk path=disk.img,format=raw --os-variant fedora20
הערות:
1. אתה צריך ציין את הפורמט הנכון. הפורמט הוא "גולמי" אלא אם השתמשת בווירט-
של בנאי --פוּרמָט אוֹפְּצִיָה.
2. --os-variant מומלץ מאוד, מכיוון שהוא יציג מכשירים אופטימליים לאפשר
האורח לפעול בצורה היעילה ביותר. כדי לקבל רשימה של כל הגרסאות, בצע:
osinfo-query OS
הכלי לעיל מסופק על ידי חבילת libosinfo.
3. אתה יכול להפעיל את virt-install כ-root או לא-root. כל אחד עובד קצת אחרת כי
libvirt מנהל קבוצה שונה של מכונות וירטואליות עבור כל משתמש. באופן מיוחד
virt-manager בדרך כלל מציג את ה-VMs שבבעלות השורש, ואילו Boxes מציג את ה-VM שבבעלות המשתמש
מכשירי VM וכלים אחרים כנראה פועלים אחרת גם כן.
יבוא אל תוך לפתוח ערימה
ייבא את התמונה אל Glance (חנות התמונות של OpenStack) על ידי ביצוע:
מבט על image-create --שם fedora-20-image --file fedora-20.img \
--disk-format raw --container-format bare \
--זה-ציבורי נכון
השמיים --קוֹבֶץ הפרמטר הוא תמונת הדיסק שנוצרה על ידי Virt-Builder. זה צריך להתאים לווירט-
של בנאי --תְפוּקָה אוֹפְּצִיָה. ה --פורמט דיסק הפרמטר צריך להתאים לפרמטר של virt-builder
--פוּרמָט אפשרות (או "גולמי" אם לא השתמשת באפשרות זו). ה --פורמט מיכל צריך
תמיד להיות "חשוף" מכיוון ש-virt-builder לא מכניס תמונות למכולות.
אתה יכול להשתמש ב"הצג תמונה מבט fedora-20-image" פקודה להצגת המאפיינים של
התמונה.
כדי לאתחל מופע של התמונה שלך בצומת מחשוב של Nova, בצע:
nova boot fedora-20-server --image fedora-20-image \
--טעם m1.בינוני
השתמש ב-"nova flavor-list" כדי לרשום טעמי מכונה אפשריים. השתמש ב-"nova list" לרשימה פועלת
מקרים.
אתחול ישירות באמצעות qemu or KVM
שורת הפקודה qemu אינה יציבה במיוחד או קלה לשימוש, ולכן יש להשתמש ב-libvirt if
אפשרי. עם זאת ניתן להשתמש בשורת פקודה דומה לזו הבאה כדי לאתחל את
מכונה וירטואלית:
qemu-system-x86_64 \
-machine accel=kvm:tcg \
מארח מעבד \
-m 2048 \
-drive file=disk.img,format=raw,if=virtio
כמו עם libvirt, חשוב מאוד שהפורמט הנכון ייבחר. זה יהיה "גולמי"
אלא אם כן ה --פוּרמָט נעשה שימוש באופציה.
תְצוּרָה ניהול
בּוּבָּה
כדי להפעיל את סוכן Puppet באורח, התקן את החבילה, כוון את התצורה ל
מאסטר הבובות שלך, ותוודא שהסוכן רץ עם האתחול.
פקודה טיפוסית של וירט-בונה תהיה:
וירט-בונה פדורה-20 \
--שם מארח client.example.com \
--עדכון \
--התקן בובה \
--edit '/etc/puppet/puppet.conf:
s/^\[סוכן\]/[סוכן]\n שרת = puppetmaster.example.com/' \
--- run-command 'systemctl enable puppet' \
--selinux-relabel
ההוראות המדויקות משתנות בהתאם להפצת לינוקס. למידע נוסף ראה:
http://docs.puppetlabs.com/guides/installation.htm
פיתרון בונה
אם virt-builder עצמו נכשל, אז אפשר איתור באגים (-v) ודווח על באג (ראה "באגים"
להלן).
אם virt-builder נכשל בגלל שסקריפט או חבילה כלשהי שהוא מתקין נכשל, נסה להשתמש
--אין-מחיקה-על-כשל כדי לשמר את קובץ הפלט, ולהמשיך לקרוא את הסעיף הזה.
אם virt-builder מצליח אבל התמונה לא עובדת, הנה כמה דברים שכדאי לנסות:
השתמש ב-virt-rescue
הפעלה וירט-הצלה(1) בתמונת הדיסק:
virt-rescue -a disk.img
זה נותן לך מעטפת הצלה. אתה יכול להעלות את מערכות הקבצים מתמונת הדיסק על
/sysroot ולבחון אותם באמצעות פקודות לינוקס רגילות. אתה יכול גם chroot לתוך
אורח כדי להתקין מחדש את טוען האתחול. בדף האיש של virt-rescue יש הרבה יותר
מידע ודוגמאות.
השתמש בדג אורח
הפעלה דג אורח(1) בתמונת הדיסק:
guestfish -a disk.img -i
השתמש בפקודות guestfish כמו "ll /directory" ו-"cat /file" כדי לבחון ספריות ו
קבצים.
השתמש ב- guestmount
התקן את תמונת הדיסק בבטחה על המארח באמצעות FUSE ו mountainmount(1):
mkdir /tmp/mp
guestmount -a disk.img -i /tmp/mp
cd /tmp/mp
כדי לבטל את טעינת תמונת הדיסק בצע:
fusermount -u /tmp/mp
הוסף קונסולה טורית
אם האורח נתקע במהלך האתחול, זה יכול להיות מועיל להוסיף קונסולה טורית ל-
אורח, והפניית הודעות ליבה לקונסולה הטורית. הוספת הקונסולה הטורית
יכלול עיון בתיעוד עבור ה-hypervisor שלך. לכוון את הגרעין
הודעות למסוף הטורי, הוסף את הדברים הבאים בשורת הפקודה של הליבה:
console=tty0 console=ttyS0,115200
מקורות OF TEMPLATES
virt-builder קורא את המקורות הזמינים מקובצי תצורה, עם ה- .conf
הרחבה וממוקמת בנתיבים הבאים:
· $XDG_CONFIG_HOME/virt-builder/repos.d/ ($XDG_CONFIG_HOME הוא $HOME/.config אם לא מוגדר).
· $XDG_CONFIG_DIRS/virt-builder/repos.d/ (כאשר $XDG_CONFIG_DIRS פירושו כל אחד מה
ספריות במשתנה הסביבה הזה, או סתם /etc/xdg אם לא מוגדר)
כל אחד .conf לקובץ בנתיבים האלה יש פורמט טקסט פשוט כמו הבא:
[libguestfs.org]
אורי =http://libguestfs.org/download/builder/index.asc
gpgkey=file:///etc/xdg/virt-builder/repos.d/libguestfs.gpg
החלק בסוגריים מרובעים הוא מזהה המאגר, המשמש כייחודי
מזהה.
השדות הבאים יכולים להופיע:
"uri=URI"
URI של קובץ האינדקס שאליו מתייחס המאגר הזה.
זהו שדה חובה.
"gpgkey=URI"
שדה אופציונלי זה מייצג את ה-URI (אם כי רק קובץ: // URIs מתקבלים) של
המפתח המשמש לחתימה על קובץ האינדקס. אם לא קיים, קובץ האינדקס שהופנה על ידי
uri=.. אינו חתום.
"proxy=MODE"
שדה אופציונלי זה מציין את מצב ה-proxy, שישמש בעת הורדת האינדקס
קובץ של מאגר זה. הערכים האפשריים הם:
לא, כבוי
לא נעשה שימוש בפרוקסי בכלל, אפילו עוקף את תצורת המערכת.
מערכת
ה-proxy המשמש הוא מערכת XNUMX.
דבר אחר
מציין את תצורת ה-proxy בפועל שבה יש להשתמש, תוך עקיפת המערכת
תצורה.
אם לא קיים, הערך המשוער הוא לכבד את הגדרות ה-proxy של המערכת (כלומר
כאילו מערכת יצוין).
"פורמט=פורמט"
שדה אופציונלי זה מציין את הפורמט של המאגר. הערכים האפשריים הם:
יליד
הפורמט המקורי של מאגר ה-"virt-builder". ראה גם "יצירת ו
חתימה על קובץ האינדקס" למטה.
זרמים פשוטים
ה-URI מייצג את השורש של עץ מטא נתונים של Simple Streams v1.0.
למידע נוסף על Simple Streams, ראה גם
https://launchpad.net/simplestreams.
אם אינו קיים, הערך המשוער הוא "מקורי".
לשימוש רציני בונה וירט, ייתכן שתרצה ליצור מאגר תבניות משלך.
Libguestfs.org מאגר
מחוץ לקופסה, virt-builder מוריד את הקובץ
http://libguestfs.org/download/builder/index.asc שהוא אינדקס של תבניות זמינות
בתוספת קצת מידע על כל אחד מהם, עטוף בחתימה דיגיטלית. הפקודה
"virt-builder --list" מפרט את המידע בקובץ האינדקס הזה.
התבניות המתארחות ב-libguestfs.org נוצרו באמצעות סקריפטים של מעטפת, קבצי kickstart
וקבצי Preeed שניתן למצוא בעץ המקור של libguestfs, ב"בונה/אתר".
הגדרת up מה היא מאגר
אתה יכול להגדיר אתר משלך המכיל קובץ אינדקס וכמה תבניות, ואז להצביע
virt-builder באתר על ידי יצירת א .conf קובץ שמצביע עליו.
שימו לב שאם האינדקס שלכם חתום, תצטרכו למלא כראוי gpgkey=.. בך .conf
קובץ, תוך הקפדה לפרוס גם את קובץ מפתח GPG.
virt-builder --source https://example.com/builder/index.asc \
--טביעת אצבע 'AAAA BBBB ...' \
--רשימה
אתה יכול לארח את זה בכל שרת אינטרנט או FTP, או מערכת קבצים מקומית או רשת.
הגדרת up a GPG מפתח
אם אין לך מפתח GnuPG, תצטרך להגדיר אותו. (בקפדנות זהו
אופציונלי, אבל אם קבצי האינדקס והתבנית שלך אינם חתומים, משתמשי virt-builder יעשו זאת
צריך להשתמש ב- --חתימה ללא צ'ק דגל בכל פעם שהם משתמשים ב-virt-builder.)
ליצירת מפתח, עיין במדריך GPG http://www.gnupg.org/gph/en/manual.html.
ייצא את המפתח הציבורי שלך GPG:
gpg --export -a "[מוגן בדוא"ל]" > פאבkey
צור מה היא תבניות
ישנן דרכים רבות ליצור את התבניות. לדוגמה, אתה יכול לשכפל אורחים קיימים
(ראה virt-sysprep(1)), או שאתה יכול להתקין אורח ביד (install-virt(1)). כדי לראות איך
התבניות נוצרו עבור virt-builder, תסתכל על הסקריפטים ב"בונה/אתר"
לקבלת התוצאות הטובות ביותר בעת דחיסת התבניות, השתמש באפשרויות xz הבאות (ראה
nbdkit-xz-plugin(1) להסבר נוסף):
xz --best --block-size=16777216 דיסק
יוצרים ו חתימה מה היא מדד פילה
לקובץ האינדקס יש פורמט טקסט פשוט (מוצג כאן ללא החתימה הדיגיטלית):
[פדורה-18]
name=Fedora® 18
osinfo=fedora18
arch=x86_64
file=fedora-18.xz
checksum[sha512]=...
פורמט=גולמי
גודל = 6442450944
compressed_size=148947524
expand=/dev/sda3
[פדורה-19]
name=Fedora® 19
osinfo=fedora19
arch=x86_64
file=fedora-19.xz
checksum[sha512]=...
גרסה=3
פורמט=גולמי
גודל = 4294967296
compressed_size=172190964
expand=/dev/sda3
החלק בסוגריים מרובעים הוא "גרסת ה-os", שהיא אותה מיתר שבו משתמשים
שורת הפקודה virt-builder לבניית מערכת ההפעלה הזו.
לאחר הכנת קובץ ה"אינדקס" בפורמט הנכון, נקה אותו באמצעות ההוראות הבאות
פקודה:
gpg --clearsign --אינדקס שריון
פעולה זו תיצור את הקובץ הסופי שנקרא index.asc שניתן להעלות לשרת (ו
האם ה uri=.. כתובת URL). כפי שצוין לעיל, חתימה על קובץ האינדקס היא אופציונלית, אך מומלצת.
השדות הבאים יכולים להופיע:
"שם=שם"
השם הידידותי למשתמש של תבנית זו. זה מוצג ב- --רשימה פלט אבל
אחרת אינו משמעותי.
"osinfo=ID"
שדה אופציונלי זה ממפה את מערכת ההפעלה למזהה libosinfo המשויך. וירט-
בונה לא משתמש בו (עדיין).
"arch=ARCH"
הארכיטקטורה של מערכת ההפעלה המותקנת בתוך התבנית. השדה הזה הוא
נדרש.
"קובץ=PATH"
הנתיב (ביחס לאינדקס) של התבנית הדחוסה xz.
שים לב שנתיבים או URI מוחלטים הם לֹא מותר כאן. זה בגלל וירט-בונה
יש מדיניות "אותו מקור" לתבניות כך שהן לא יכולות להגיע משרתים אחרים.
"sig=PATH"
זֶה אוֹפְּצִיָה is הוצא משימוש. השתמש בשדה Checksum במקום זאת.
הנתיב (ביחס לאינדקס) של החתימה המנותקת GPG של קובץ xz.
שים לב שנתיבים או URI מוחלטים הם לֹא מותר כאן. זה בגלל וירט-בונה
יש מדיניות "אותו מקור" לתבניות כך שהן לא יכולות להגיע משרתים אחרים.
ניתן ליצור את הקובץ באופן הבא:
gpg --detach-sign --armor -o disk.xz.sig disk.xz
"checksum[sha512]=7b882fe9b82eb0fef..."
סכום הבדיקה SHA-512 של דחוס הקובץ נבדק לאחר הורדתו. ל
בדוק את החתימה, עשה:
sha512sum disk.xz
שים לב אם אתה משתמש בזה, אתה לא צריך לחתום על הקובץ, כלומר. אל תשתמש ב"sig". זֶה
האפשרות עוקפת את "sig".
"checksum=7b882fe9b82eb0fef..."
"checksum" הוא כינוי עבור "checksum[sha512]".
אם אתה צריך לפעול יחד עם virt-builder = 1.24.0 אז אתה צריך להשתמש ב-"checksum"
כי הגרסה הזו תיתן שגיאת ניתוח עם סוגריים מרובעים ומספרים ב-
מפתח של שדה. זה קבוע ב-virt-builder ≥ 1.24.1.
"revision=N"
הגרסה היא מספר שלם המשמש לשליטה במטמון התבנית. גָדֵל
מספר הגרסה גורם ללקוחות להוריד את התבנית שוב גם אם יש להם א
להעתיק במטמון.
מספר הגרסה הוא אופציונלי. אם מושמט, זה כברירת מחדל ל-1.
"פורמט=גולמי"
"format=qcow2"
ציין את הפורמט של תמונת הדיסק (לפני שהיא נדחסה). אם לא ניתן, ה
הפורמט מזוהה אוטומטית, אבל בדרך כלל עדיף להיות מפורש לגבי המיועד
פורמט.
שימו לב שזהו פורמט המקור, השונה מ- --פוּרמָט אפשרות (מבוקשה
פורמט פלט). Virt-builder מבצע המרה תוך כדי תנועה מפורמט המקור ל-
פורמט פלט מבוקש.
"גודל=NNN"
הגודל הווירטואלי של התמונה בבתים. זהו גודל התמונה כאשר
לא דחוס. אם אתה משתמש בפורמט לא גולמי כגון qcow2 אז זה אומר הדיסק הוירטואלי
גודל, לא גודל קובץ qcow2.
זהו שדה חובה.
Virt-builder גם משתמש בזה בתור הגודל המינימלי שמשתמשים יכולים לבקש דרך --גודל
אפשרות, או כגודל ברירת המחדל אם אין --גודל אוֹפְּצִיָה.
"compressed_size=NNN"
הגודל הדחוס של תמונת הדיסק בבתים. זה משמש רק למידע
(כשמשתמש --רשימה --ארוך).
"expand=/dev/sdaX"
כאשר מרחיבים את התמונה לגודלה הסופי, הנח וירט-שינוי גודל(1) כדי להרחיב את
מחיצה בשם בתמונת האורח כדי למלא את כל השטח הפנוי. זה עובד כמו
הווירט-שינוי גודל --לְהַרְחִיב אוֹפְּצִיָה.
בדרך כלל עליך לשים כאן את שם ההתקן של מערכת הקבצים הבסיסית של האורח.
זה רעיון טוב להשתמש בזה, אבל לא חובה. אם השדה מושמט אז virt-
שינוי גודל תיצור מחיצה נוספת בקצה הדיסק כדי לכסות את השטח הפנוי,
שהוא הרבה פחות ידידותי למשתמש.
"lvexpand=/dev/VolGroup/LogVol"
כאשר מרחיבים את התמונה לגודלה הסופי, הנח וירט-שינוי גודל(1) כדי להרחיב את
שם נפח לוגי בתמונת האורח כדי למלא את כל השטח הפנוי. זה עובד
כמו ה-virt-שינוי גודל --lv-expand אוֹפְּצִיָה.
אם האורח משתמש ב-LVM2, בדרך כלל צריך לשים את ה-LV של מערכת הקבצים הבסיסית של האורח
פה. אם האורח אינו משתמש ב-LVM2 או שמערכת הקבצים הבסיסית שלו אינה ב-LV, אל תעשה זאת
השתמש באפשרות זו.
"הערות=הערות"
כל הערות שמתאימות לתמונה זו, במיוחד הערות המתארות באילו חבילות יש
התמונה, אופן הכנת התמונה ומידע הרישוי.
מידע זה מוצג ב- --הערות ו --רשימה --ארוך מצבים.
אתה יכול להשתמש בהערות מרובות שורות כאן על ידי הזחה של כל שורה חדשה עם אחת לפחות
תו של רווח לבן (אפילו בשורות ריקות):
notes=תמונה זו הוכנה באמצעות
תסריט הקיקסטארט הבא:
<-- רווח אחד בתחילת השורה
חלק / אתחול --fstype ext3
...
"נסתר=נכון"
השימוש בדגל הנסתר מונע מהתבנית להופיע ברשימה --רשימה אוֹפְּצִיָה
(אבל זה עדיין ניתן להתקנה). זה משמש לתמונות בדיקה.
"aliases=ALIAS1 ALIAS2 ..."
שדה אופציונלי זה מציין רשימה של כינויים, מופרדים ברווחים, עבור התמונה.
לדוגמה, ניתן להשתמש בכינוי כדי להצביע תמיד על הגרסה העדכנית ביותר של מסויים
תמונה, משאיר את הגרסאות הישנות זמינות באינדקס במקום לעדכן אותו
תמונה (ראה שדה "עדכון").
ריצה בונה וירט נגד מספר מקורות
אפשר להשתמש במספר מקורות עם virt-builder. הדרך המומלצת היא
לפרוס .conf קבצים המצביעים על קבצי האינדקס. דרך נוספת היא לציין את המקורות
באמצעות מרובים --מָקוֹר ו / או --טביעת אצבע אפשרויות:
וירט-בונה \
--מָקוֹר http://example.com/s1/index.asc \
--מָקוֹר http://example.com/s2/index.asc
אתה יכול לספק N או 1 טביעות אצבע. במקרה שבו אתה מספק N טביעות אצבע, N =
מספר מקורות ויש התאמה של 1-1 בין כל מקור לכל אחד
טביעת אצבע:
וירט-בונה \
--מָקוֹר http://example.com/s1/index.asc --טביעת אצבע '0123 ...' \
--מָקוֹר http://example.com/s2/index.asc --טביעת אצבע '9876 ...'
במקרה שבו אתה מספק טביעת אצבע אחת, אותה טביעת אצבע משמשת עבור כל המקורות.
אתה "חייב" לספק לפחות טביעת אצבע אחת.
רישוי of תבניות
עליך להיות מודע לרישוי של תמונות שאתה מפיץ. לקוד פתוח
אורחים, ספקו קישור לקוד המקור בשדה "הערות" ועמדו בדרישות אחרות
דרישות (למשל סביב סימנים מסחריים).
רשמי מפרט of מה היא מדד פילה
לפורמט קובץ האינדקס יש מפרט רשמי שהוגדר על ידי הסורק הגמיש והביסון
מנתח המשמש לניתוח הקובץ. ניתן למצוא זאת בקבצים הבאים ב-libguestfs
עץ מקור:
builder/index-scan.l
builder/index-parse.y
כלי שנקרא virt-index-validate(1) זמין כדי לאמת את קובץ האינדקס כדי להבטיח זאת
הוא נכון.
שים לב שהמנתח והכלי יכולים לעבוד על קובץ האינדקס החתום או הבלתי חתום (כלומר.
מדד or index.asc).
האינדקס מקודד תמיד ב-UTF-8.
מטמון
מטמון תבניות
מכיוון שהתבניות בדרך כלל גדולות מאוד, תבניות שהורדו נשמרות בקובץ השמור של המשתמש
ספריית הבית.
המיקום של המטמון הוא $XDG_CACHE_HOME/virt-builder/ or $HOME/.cache/virt-builder.
אתה יכול להדפיס מידע על ספריית המטמון, כולל אורחים
שמור כעת במטמון, על ידי ביצוע:
virt-builder --print-cache
ניתן למחוק את המטמון אם ברצונך לחסוך מקום על ידי ביצוע:
virt-builder --delete-cache
אתה יכול להוריד את כל התבניות (הנוכחיות) למטמון המקומי על ידי ביצוע:
virt-builder --cache-all-templates
כדי להשבית את מטמון התבנית, השתמש --ללא מטמון.
רק תבניות נשמרות במטמון. האינדקס והחתימות הדיגיטליות המנותקות אינן מאוחסנות במטמון.
מטמון חבילות
שימושים בונה וירט תלתל(1) כדי להוריד קבצים והוא גם משתמש ב-"http_proxy" הנוכחי
(וכו') הגדרות בעת התקנת חבילות (--להתקין, --עדכון).
לכן ייתכן שתרצה להגדיר את משתני הסביבה האלה כדי למקסם את הכמות
של מטמון מקומי שקורה. ראה "משתני סביבה" ו תלתל(1).
מְקוֹמִי מראות
כדי להגביר את המהירות והאמינות של התקנת חבילות, אתה יכול להגדיר מקומי
מראה של הפצת היעד, וכוון את מנהל חבילת האורחים על זה.
בגלל הסדר שבו מתרחש כל שלב בהתקנה, אינך יכול להשתמש --לִכתוֹב
(כדי להפנות את מנהל החבילות לריפו) ואחריו --להתקין (כדי להתקין מזה
ריפו). ה --לִכתוֹב ו --להתקין השלבים פועלים בסדר הפוך, ללא קשר אליהם
סדר בשורת הפקודה. אתה צריך לעשות זאת באמצעות --הפעל-פקודה במקום --להתקין.
שימוש במראה מקומית עם פדורה
כדי להתקין אורח של פדורה באמצעות מראה מקומית:
וירט-בונה פדורה-20 \
--edit '/etc/yum.repos.d/fedora.repo:
s{.*baseurl=.*}{baseurl=http://example.com/mirror/};
s{.*metalink=.*}{};
'\
--edit '/etc/yum.repos.d/fedora-updates.repo:
s{.*baseurl=.*}{baseurl=http://example.com/mirror-updates/};
s{.*metalink=.*}{};
'\
--הרץ-פקודה 'יאם -י עדכון' \
--run-command 'yum -y install pkg1 pkg2 ...'
שימוש במראה מקומית עם דביאן
בהנחה שאתה משתמש ב-"apt-proxy" כדי לשקף את המאגר, עליך ליצור חדש
sources.list קובץ כדי להצביע על ה-proxy שלך (ראה https://help.ubuntu.com/community/AptProxy)
ואז בצע:
virt-builder debian-7 \
--העלה sources.list:/etc/apt/sources.list \
--run-command 'apt-get -y update' \
--run-command 'apt-get -y install pkg1 pkg2 ...'
דיגיטלי חתימות
Virt-builder משתמש ב-GNU Privacy Guard (GnuPG או gpg) כדי לוודא שהאינדקס והתבניות
לא טופלו.
המקור מצביע על קובץ אינדקס, אשר חתום באופן אופציונלי.
Virt-builder מוריד את האינדקס ובודק שהחתימה תקפה ושל החותם
טביעת האצבע תואמת לטביעת האצבע שצוינה (כלומר זו שצוינה ב gpgkey=.. ב
.conf, או עם --טביעת אצבע, בסדר הזה).
לצורך בדיקה מול המפתח הציבורי/טביעת האצבע המובנית, זה דורש ייבוא של
מפתח ציבורי לתוך מחזיק המפתחות המקומי של ה-gpg של המשתמש (זו בדיוק הדרך שבה ה-gpg עובד).
בעת הורדת תבנית, החתימה שלה נבדקת באותו אופן.
למרות שהחתימות הן אופציונליות, אם אין לך אותן, משתמשי virt-builder יהיו
צריך להשתמש --חתימה ללא צ'ק בשורת הפקודה. זה מונע מתוקף
החלפת קובץ האינדקס החתום בקובץ אינדקס לא חתום ובעל וירט-Builder
לעבוד בשקט מבלי לבדוק את החתימה. בכל מקרה מומלץ מאוד
אתה תמיד יוצר אינדקס חתומים ותבניות.
אַדְרִיכָלוּת
Virt-Builder יכול לבנות אורח לכל ארכיטקטורה לא משנה מהי הארכיטקטורה המארחת
הוא. למשל אורח x86-64 במארח ARM.
עם זאת, ייתכן שאפשרויות מסוימות לא יעבדו, במיוחד אפשרויות הדורשות פקודות הפעלה
באורח במהלך תהליך הבנייה: --להתקין, --עדכון, --לָרוּץ, --הפעל-פקודה. ייתכן
צריך להחליף את אלה ב-firstboot-equivalents שלהם.
מארח x86-64 בונה 32 סיביות i686 אורחים צריכים לעבוד ללא כל שלבים מיוחדים.
אבטחה
Virt-Builder לא צריך לפעול כ-root (למעשה, לא צריך להיות פעיל כ-root), וכן
אינו משתמש ב-setuid, "sudo" או כל מנגנון דומה.
--להתקין, --עדכון, --לָרוּץ ו --הפעל-פקודה מיושמים באמצעות מכשיר (קטן
מכונה וירטואלית) כך שהפקודות הללו אינן פועלות על המארח. אם אתה משתמש ב-
libguestfs libvirt backend ו-SELinux מופעל אז המכונה הוירטואלית
מוקף בנוסף במיכל SELinux (sVirt).
עם זאת לאפשרויות אלו תהיה גישה לרשת של המארח ומכיוון שהתבנית עשויה
מכילים קוד לא מהימן, הקוד עשוי לנסות לגשת למשאבי רשת מארח שהוא
לא צריך. אתה יכול להשתמש --אין רשת כדי למנוע זאת.
פקודות Firstboot פועלות בהקשר של האורח בעת האתחול, וכך גם האבטחה
יש לקחת בחשבון את ה-hypervisor/ענן שלך.
Virt-Builder מזריק זרע אקראי לכל אורח שהוא בונה. זה עוזר להבטיח
שמספרי רצף TCP, UUIDs, מפתחות מארח ssh וכו' הם באמת אקראיים כאשר האורח מאתחל.
כדאי לבדוק חתימות דיגיטליות ולא להתעלם מכל שגיאות חתימה.
שיבוטים
אם אתה רוצה ליצור אורחים חדשים רבים מאותו סוג, זה מפתה להפעיל virt-builder
פעם אחת ולאחר מכן העתק את קובץ הפלט. אתה צריך לֹא תעשה את זה. אתה צריך להפעיל virt-builder
פעם אחת עבור כל אורח חדש שאתה צריך.
הסיבה היא שלכל שיבוט צריך להיות (לפחות) זרע אקראי נפרד, ו
אולי תכונות ייחודיות אחרות (כגון UUIDs של מערכת קבצים) בגרסאות עתידיות של virt-
בּוֹנֶה.
דבר נוסף שכדאי לך לֹא לעשות הוא לאתחל את האורח, ולאחר מכן לשכפל את תמונת הדיסק האתחול.
הסיבה היא שחלק מהאורחים יוצרים מזהי מחשב ייחודיים, מפתחות מארח SSH וכן הלאה בהתחלה
אתחול, ולא היית רוצה שלשובטים יהיו זהויות כפולות.
ראה גם: virt-sysprep(1).
ביצועים
ההיבט החשוב ביותר להשגת ביצועים טובים הוא שמירה במטמון. תבניות מקבל
הורדה למטמון בפעם הראשונה שבה נעשה בהם שימוש, או אם אתה משתמש ב-
--cache-all-templates אוֹפְּצִיָה. ראה "מטמון" לעיל למידע נוסף.
חבילות נדרשות עבור --להתקין ו --עדכון האפשרויות יורדות באמצעות המארח
חיבור רשת. הגדרת סביבת "http_proxy", "https_proxy" ו-"ftp_proxy".
משתנים שיצביעו על מטמון אינטרנט מקומי עשויים להבטיח שצריך להוריד אותם רק פעם אחת.
אתה יכול גם לנסות להשתמש במאגר חבילות מקומי, אם כי זה יכול להיות מורכב להגדרה
ומשתנה לפי איזו הפצת לינוקס אתה מנסה להתקין.
שימוש --אין סנכרון
השתמש --אין סנכרון. עם זאת, קרא את האזהרות בסעיף "אפשרויות" למעלה, מכיוון שזה יכול
לגרום לשחיתות בדיסק אם לא נעשה בו שימוש נכון.
דילוג וירט-שינוי גודל
Virt-Builder יכול לדלג על שלב שינוי הגודל בתנאים מסוימים. זה הופך וירט-
בונה הרבה יותר מהר. התנאים הם:
· הפלט חייב להיות קובץ רגיל (לא התקן חסימה), ו
· המשתמש עשה זאת לֹא להשתמש --גודל אוֹפְּצִיָה, ו
· פורמט הפלט זהה לפורמט התבנית (בדרך כלל גולמי).
pxzcat
Virt-Builder משתמש ביישום פנימי של pxzcat (xzcat מקביל) אם liblzma היה
נמצא בזמן הבנייה. אם liblzma לא נמצאה בזמן הבנייה, נעשה שימוש ב-"xzcat" רגיל
שהוא חד חוטי.
מצב משתמש לינוקס
אתה יכול להשתמש ב-virt-builder עם ה-User-Mode Linux (UML) backend. זה עשוי להיות מהיר יותר כאשר
הפעלת virt-builder בתוך מכונה וירטואלית (למשל בענן).
כדי להפעיל את הקצה האחורי של UML, קרא את ההוראות ב-"USER-MODE LINUX BACKEND" ב
guestfs(3).
כרגע אתה צריך להשתמש ב --אין רשת אוֹפְּצִיָה. זה צריך להיות מתוקן בעתיד
הגירסה.
פורמט הפלט qcow2 אינו נתמך על ידי UML. אתה יכול ליצור רק אורחים בפורמט גולמי.
SELINUX
אורחים המשתמשים ב-SELinux (כגון Fedora ו-Red Hat Enterprise Linux) דורשים שכל אחד מהם
לקובץ יש תווית SELinux נכונה.
Virt-builder לא יודע לתת תווית לקבצים חדשים, אז יש שניים אפשריים
אסטרטגיות שבהן הוא יכול להשתמש כדי להבטיח תיוג נכון:
שימוש --selinux-relabel
זה פועל תיקונים(8) רגע לפני סיום האורח, מה שקובע תוויות SELinux
נכון בתמונת הדיסק.
לפעמים תיקונים אינם אפשריים במהלך ההתקנה, ובמקרה זה אפשרות זו
נופל בחזרה על:
נגיעה /.autorelabel
ייתכן שתבניות אורח כבר מכילות קובץ בשם /.autorelabel, או שהוא נגע אם
--selinux-relabel לא יכול להריץ קבצי תיקונים.
עבור אורחים שמשתמשים ב-SELinux, זה גורם לקבצי תיקונים לפעול באתחול הראשון. האורחים יעשו זאת
אתחל את עצמם פעם אחת בפעם הראשונה שאתה משתמש בהם, וזה נורמלי ולא מזיק.
שים לב שאם האורח שלך משתמש ב-SELinux, ואתה מבצע בו פעולות
עשוי ליצור קבצים חדשים או לשנות קבצים קיימים, מומלץ להשתמש
--selinux-relabel. זה יעזור לוודא שלקבצים יש את ה-SELinux הנכון
תוויות.
מכונה קָרִיא תפוקה
השמיים --ניתן לקריאה במכונה ניתן להשתמש באפשרות כדי להפוך את הפלט לידידותי יותר למכונה, אשר
שימושי בעת קריאה ל-virt-builder מתוכניות אחרות, ממשקי משתמש GUI וכו'.
השתמש באפשרות בפני עצמה כדי לשאול את היכולות של הבינארי virt-builder. אופייני
התפוקה נראית כך:
$ virt-builder --ניתן לקריאה במכונה
בונה וירט
קשת
קובץ config
אישית
json-list
pxzcat
מודפסת רשימה של תכונות, אחת בכל שורה, והתוכנית יוצאת עם סטטוס 0.
הסביבה וריאציות
למשתני סביבה אחרים המשפיעים על כל תוכניות libguestfs, ראה "סביבה
משתנים" ב guestfs(3).
"http_proxy"
"https_proxy"
"לא_פרוקסי"
הגדר את ה-proxy להורדות. משתני סביבה אלו (ועוד) הם למעשה
מתפרש על ידי תלתל(1), לא בונה וירט.
"בית"
משמש לקביעת המיקום של מטמון התבנית ואת המיקום של המשתמש'
מקורות. ראה "מטמון" ו"מקורות של תבניות".
"VIRT_TOOLS_DATA_DIR"
זה יכול להצביע על הספרייה המכילה קבצי נתונים המשמשים עבור Windows firstboot
התקנה.
בדרך כלל אין צורך להגדיר זאת. אם לא מוגדר, ישמש ברירת מחדל מהידור
(משהו כמו /usr/share/virt-tools).
ספרייה זו עשויה להכיל את הקבצים הבאים:
rhsrvany.exe
זהו הקובץ הבינארי של RHSrvAny Windows, המשמש להתקנת סקריפט "אתחול ראשון".
אורחי חלונות. זה נדרש אם אתה מתכוון להשתמש ב --אתחול ראשון or
--firstboot-command אפשרויות עם אורחי Windows.
ראה גם: "https://github.com/rwmjones/rhsrvany"
"XDG_CACHE_HOME"
משמש לקביעת המיקום של מטמון התבנית. ראה "CACHING".
"XDG_CONFIG_HOME"
משמש לקביעת מיקום המקורות של המשתמש. ראה "מקורות של תבניות".
"XDG_CONFIG_DIRS"
משמש לקביעת מיקום מקורות המערכת. ראה "מקורות של תבניות".
יְצִיאָה סטָטוּס
תוכנית זו מחזירה 0 אם היא מצליחה, או לא אפס אם הייתה שגיאה.
השתמש ב-virt-builder באינטרנט באמצעות שירותי onworks.net