Это командный virt-builder, который можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
virt-builder - быстрое создание образов виртуальных машин
СИНТАКСИС
ОС-версия virt-builder
[-o | --output DISKIMAGE] [--size SIZE] [--format raw | qcow2]
[--arch АРХИТЕКТУРА] [--attach ISOFILE]
[--chmod РАЗРЕШЕНИЯ: ФАЙЛ] [--команды из файла ИМЯ ФАЙЛА]
[--copy SOURCE: DEST] [--copy-in LOCALPATH: REMOTEDIR]
[--delete PATH] [--edit FILE: EXPR] [--firstboot SCRIPT]
[--firstboot-command 'CMD + ARGS'] [--firstboot-install PKG, PKG ..]
[--hostname HOSTNAME] [--install PKG, PKG ..]
[--link TARGET: LINK [: LINK ..]] [--mkdir DIR] [--move SOURCE: DEST]
[--password ПОЛЬЗОВАТЕЛЬ: SELECTOR] [--root-password SELECTOR]
[--run SCRIPT] [--run-command 'CMD + ARGS'] [--scrub FILE]
[--sm-attach СЕЛЕКТОР] [--sm-register] [--sm-remove]
[--sm-unregister] [--ssh-inject ПОЛЬЗОВАТЕЛЬ [: SELECTOR]] [--truncate ФАЙЛ]
[--truncate-recursive ПУТЬ] [--timezone TIMEZONE] [--touch FILE]
[--update] [--upload FILE: DEST] [--write FILE: CONTENT]
[--no-logfile] [--password-crypto md5 | sha256 | sha512]
[--selinux-relabel] [--sm-credentials СЕЛЕКТОР]
virt-builder -l | --list [--long] [--list-format short | long | json]
virt-builder --notes ОС-версия
виртуальный строитель --print-cache
виртуальный строитель - кэш-все-шаблоны
виртуальный строитель --delete-cache
virt-builder --get-kernel ОБРАЗ ДИСКА
[--format raw | qcow2] [--output OUTPUTDIR]
ОПИСАНИЕ
Virt-builder - это инструмент для быстрого создания новых виртуальных машин. Вы можете построить множество
виртуальных машин для локального или облачного использования, обычно в течение нескольких минут или меньше. Virt-builder также
есть много способов настроить эти виртуальные машины. Все запускается из командной строки и ничего
требует привилегий root, поэтому автоматизация и создание сценариев просты.
Обратите внимание, что virt-builder не устанавливает гостей с нуля. Требуется чисто приготовленный,
шаблоны ОС с цифровой подписью и настраивает их. Этот подход используется, потому что он
намного быстрее, но если вам нужно выполнить новую установку, вы можете посмотреть виртуальная установка(1)
и унция-установка(1).
Самый простой способ начать - взглянуть на примеры в следующем разделе.
ПРИМЕРЫ
Список виртуальный и машины всегда новые для производства лучших продуктов. доступен
virt-builder - список
перечислит операционные системы, доступные для установки. Подборка свободно
распространяемые ОС доступны в стандартной комплектации. Вы также можете добавить свои собственные (см. Ниже).
После выбора гостя из списка вы можете проверить, есть ли какие-либо установки
Примечания:
virt-builder - заметки fedora-20
Построить a виртуальный машина
вирт-строитель федора-20
создаст образ Fedora 20 для той же архитектуры, что и virt-builder (поэтому запускайте его из
установка i386 попытается создать образ i386, если он доступен). Это будет все
конфигурация по умолчанию (минимальный размер, отсутствие учетных записей пользователей, случайный пароль root, только голый
минимальный установленный софт и т. д.).
do необходимо запустить эту команду от имени пользователя root.
При первом запуске он должен загрузить шаблон по сети, но при этом
кешируется (см. «Кеширование»).
Имя выходного файла происходит от имени шаблона, поэтому над ним будет
Fedora-20.img. Вы можете изменить имя выходного файла, используя -o опции:
виртуальный строитель fedora-20 -o mydisk.img
Вы также можете использовать утилиту -o возможность записи на существующие устройства или логические тома.
вирт-билдер Fedora-20 --format qcow2
То же, что и выше, но вывод в формате qcow2 записывается в шляпа-20.qcow2.
virt-builder fedora-20 - размер 20G
То же, что и выше, но размер вывода будет 20 ГБ. Размер гостевой ОС изменяется при копировании в
вывод (автоматически, используя виртуальное изменение размера(1 г.)).
виртуальный строитель fedora-20 --arch i386
То же, что и выше, но с использованием шаблона i386, если таковой имеется.
настройка корень password
virt-builder fedora-20 - файл корневого пароля: / tmp / rootpw
Создайте образ Fedora 20. Пароль root взят из файла / tmp / rootpw.
Обратите внимание, если вы не набор --root-пароль тогда гостю дается случайный пароль root.
Вы также можете создавать учетные записи пользователей. См. «ПОЛЬЗОВАТЕЛИ И ПАРОЛИ» ниже.
Поставьте хоста
virt-builder fedora-20 - имя хоста virt.example.com
Установите имя хоста на «virt.example.com».
Установка программное обеспечение
Чтобы установить пакеты из обычного (гостевого) репозитория программного обеспечения (например, yum или apt):
virt-builder fedora-20 - установить "inkscape, @ Xfce Desktop"
(В Fedora "@" используется для установки групп пакетов. В Debian вы должны установить
вместо этого мета-пакет.)
Чтобы обновить основные пакеты до последней версии:
вирт-билдер дебиан-7 --обновление
Для гостей, использующих SELinux, таких как Fedora и Red Hat Enterprise Linux, вам может потребоваться
Изменение метки SELinux после установки или обновления пакетов (см. «SELINUX» ниже):
виртуальный строитель fedora-20 --update --selinux-relabel
Модификация оборудования установка
Существует множество опций, позволяющих настроить установку. Это включает:
--запустить/--Команда Run, которые запускают сценарий или команду оболочки во время создания образа диска.
сгенерирован и позволяет вам добавлять или редактировать файлы, которые входят в образ диска.
- первая загрузка/--firstboot-команда, которые позволяют добавлять сценарии / команды, запускаемые первым
время гость загружается. --редактировать для редактирования файлов. --загрузить для загрузки файлов.
Например:
кошка << 'EOF'> /tmp/yum-update.sh
Обновление yum -y
EOF
виртуальный строитель fedora-20 --firstboot /tmp/yum-update.sh
или просто:
virt-builder fedora-20 --firstboot-command 'yum -y update'
что делает ням(8) Команда "update" запускается при первой загрузке гостя.
Или:
вирт-строитель федора-20 \
- редактировать '/etc/yum.conf:
s / gpgcheck = 1 / gpgcheck = 0 / '
который редактирует /etc/yum.conf внутри образа диска (при создании образа диска, задолго до
ботинок).
Вы можете комбинировать эти варианты и получить несколько вариантов всех типов.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
--Помогите
Показать справку.
--арх АРХИТЕКТУРА
Используйте указанную архитектуру для выходного изображения. Значит должны быть источники
предоставление запрошенного шаблона для запрошенной архитектуры.
См. Также «АРХИТЕКТУРА».
--прикреплять ИЗОФАЙЛ
На этапе настройки данный диск подключается к libguestfs.
прибор. Это используется для предоставления дополнительных репозиториев программного обеспечения или других данных для
настройки.
Вероятно, вы захотите убедиться, что том (а) или файловые системы на подключенных дисках
с меткой (или используйте имя тома ISO), чтобы вы могли монтировать их по метке в вашем прогоне -
скрипты:
mkdir / tmp / mount
mount LABEL = EXTRA / tmp / mount
У вас может быть несколько --прикреплять параметры, и формат может быть любым форматом диска (не
просто ISO).
См. также: --запустить, «Установка пакетов во время сборки из побочного репозитория»,
генизоизображение(1) вирт-мейк-фс(1).
- формат прикрепления ФОРМАТ
Укажите формат диска для следующего --прикреплять вариант. "ФОРМАТ" обычно "сырой".
или "qcow2". Используйте "raw" для ISO.
--кэш DIR
--без кеша
--кэш DIR устанавливает каталог для использования / проверки кэшированных файлов шаблонов. Если не установлен,
по умолчанию либо $ XDG_CACHE_HOME / virt-builder / or $ HOME / .cache / virt-builder /.
--без кеша отключает кеширование шаблонов.
--cache-все-шаблоны
Загрузите все шаблоны в кеш и выйдите. См. «КЭШИНГ».
Обратите внимание, что это не кеширует все. Могут быть загружены другие шаблоны. Также это
не кеширует пакеты ( --установить, --Обновить параметры).
- проверка-подпись
- подпись без проверки
Проверять / не проверять цифровую подпись шаблона ОС. По умолчанию проверяется
подпись и выход, если она не верна. С использованием - подпись без проверки обходит это
проверить.
Смотрите также - отпечаток пальца.
--завиток CURL
Укажите альтернативный виться(1) двоичный. Вы также можете использовать это для добавления параметров завитка,
например, чтобы отключить проверку сертификатов https:
virt-builder --curl "curl --insecure" [...]
--удалить-кэш
Удалите кеш шаблона. См. «КЭШИНГ».
--no-delete-при сбое
Не удаляйте выходной файл при сбое построения. Вы можете использовать это для отладки сбоев
запускать скрипты. См. "ОТЛАДКА СТРОИТЕЛЕЙ" для получения информации о способах отладки изображений.
По умолчанию выходной файл удаляется, если virt-builder не работает (или, например, некоторые
сценарий, который он запускает, не работает).
- отпечаток пальца "AAAA BBBB ..."
Убедитесь, что индекс и шаблоны подписаны ключом с указанным отпечатком пальца.
(Отпечаток пальца представляет собой длинную строку, обычно записываемую в виде 10 групп по 4 шестнадцатеричных числа.
цифры).
Вы можете использовать эту возможность несколько раз. Если у вас есть несколько исходных URL-адресов, вы
может не иметь отпечатка пальца, одного отпечатка пальца или нескольких отпечатков пальцев. Если у вас есть
несколько, то каждому из них должен соответствовать 1–1 исходный URL.
--формат qcow2
--формат сырье
Для обычных сборок выбирается выходной формат. По умолчанию сырье.
Для пользователя --get-kernel это определяет формат ввода.
Чтобы создать файл qcow2 в старом стиле (для совместимости с RHEL 6 или очень старым qemu
1.1), после запуска virt-builder используйте эту команду:
qemu-img изменить -f qcow2 -o compat = 0.10 output.qcow2
--get-kernel ОБРАЗ
Эта опция извлекает ядро и initramfs из ранее созданного образа диска.
называется "IMAGE" (фактически он работает для любого образа диска виртуальной машины, а не только для созданного с использованием
вирт-строитель).
Ядро и initramfs записываются в текущий каталог, если вы также не укажете
--выход "outputdir" каталог имя.
Формат образа диска определяется автоматически, если вы не укажете его с помощью
--формат опцию.
В случае, если гость содержит несколько ядер, одно с наибольшим
номер версии выбран. Чтобы извлечь произвольные ядра из образа диска, см.
рыба-гость(1). Чтобы извлечь весь / загрузки каталог гостя см. виртуальная копия(1).
--gpg GPG
Укажите альтернативный GPG(1) (GNU Privacy Guard) двоичный файл. Вы также можете использовать это, чтобы добавить
Параметры gpg, например, чтобы указать альтернативный домашний каталог:
virt-builder --gpg "gpg --homedir" / Tmp"[...]
-l
--список
--список --лист-формат формат
--список --длинный
Список доступных шаблонов.
Можно выбрать с --лист-формат формат вывода для шаблонов списков:
короткие
Формат по умолчанию, печатает только идентификатор шаблона и, рядом с ним, его краткое
описание.
длинной
Печатает текстовый список с подробностями о доступных источниках, за которыми следует
детали доступных шаблонов.
JSON
Печатает объект JSON с подробностями о доступных источниках и деталях
доступные шаблоны.
Ключ «версия» в главном объекте представляет «версию совместимости», а
он удаляется каждый раз, когда результирующий вывод JSON несовместим с
предыдущие версии (например, изменилась структура или необязательные ключи
больше нет).
--длинный это сокращение от «длинного» формата.
См. также: --источник, --Примечания, «ИСТОЧНИКИ ШАБЛОНОВ».
- машиночитаемый
Эта опция используется, чтобы сделать вывод более удобным для машины при его анализе с помощью
другие программы. См. «МАШИНОСЧИТЫВАЕМЫЙ ВЫХОД» ниже.
-m MB
--memsize MB
Измените объем памяти, выделенной для --запустить скрипты. Увеличьте это, если найдете
которая --запустить сценарии или --установить вариант не хватает памяти.
Значение по умолчанию можно найти с помощью этой команды:
Guestfish Get-Memsize
--сеть
--нет сети
Включите или отключите доступ к сети для гостя во время установки.
Включено по умолчанию. Использовать --нет сети чтобы отключить доступ.
Сеть разрешает только исходящие соединения и имеет другие незначительные ограничения. Видеть
«СЕТЬ» в спасение вирт(1).
Если вы используете --нет сети затем некоторые другие варианты, такие как --установить не будет работать.
Это не влияет на то, может ли гость получить доступ к сети после ее загрузки,
потому что это контролируется вашим гипервизором или облачной средой и не к чему
делать с вирт-строителем.
Вообще говоря, вам следует используют --нет сети. Но вот несколько причин, по которым вы
может захотеть:
1. Поскольку используемый вами сервер libguestfs не поддерживает сеть.
(См .: «НАЗАД» в гость(3 г.)).
2. Любое программное обеспечение, которое вам нужно установить, поставляется с прикрепленного ISO-образа, поэтому вам не нужен
сеть.
3. Вы не хотите, чтобы ненадежный гостевой код пытался получить доступ к вашей хост-сети, когда
работает virt-builder. Это особенно важно, если вы не доверяете
источник шаблонов операционной системы. (См. «БЕЗОПАСНОСТЬ» ниже).
4. У вас нет хост-сети (например, в безопасных / ограниченных средах).
--нет синхронизации
Не синхронизировать выходной файл при выходе.
Virt-builder fsync - выходной файл или образ диска при выходе.
Причина в том, что режим кэширования qemu / KVM по умолчанию - "none" или "directsync", оба из
которые обходят кеш страницы хоста. Поэтому они не будут работать правильно, если вы
сразу запустили гостя после запуска virt-builder - они не увидят
полный выходной файл. (Обратите внимание, что вам не следует использовать эти режимы кеширования - они
фундаментально сломан по этой и другим причинам.)
Если вы не используете эти сломанные режимы кеширования, вы можете использовать --нет синхронизации чтобы избежать этого
ненужная синхронизация и получение значительной дополнительной производительности.
--Примечания os-версия
Перечислите все заметки, связанные с этим гостем, затем выйдите (установка не выполняется).
-o имя файла
--выход имя файла
Запишите вывод в имя файла. Если вы не укажете эту опцию, то вывод
имя файла создается путем взятия строки "os-version" и добавления ".img" (для raw
формат) или ".qcow2" (для формата qcow2).
Обратите внимание, что имя выходного файла может быть устройством, разделом или логическим томом.
При использовании с --get-kernel, этот параметр указывает выходной каталог.
--print-кэш
Распечатать информацию о кэше шаблонов. См. «КЭШИНГ».
-q
--тихий
Не печатайте обычные сообщения о ходе выполнения.
--размер РАЗМЕР
Выберите размер выходного диска, где можно указать размер, используя общие имена
например "32G" (32 гигабайта) и т. д.
Virt-builder автоматически изменит размер файловых систем внутри образа диска.
Если размер не указан, происходит одно из двух. Если на выходе
файл, то размер будет таким же, как у шаблона. Если выходом является устройство,
раздел и т. д., то используется размер этого устройства.
Чтобы указать размер в байтах, за числом должна следовать строчная буква. b, например:
"- размер 10737418240b".
--smp N
Включите N ≥ 2 виртуальных ЦП для --запустить скрипты для использования.
--источник URL
Задайте исходный URL-адрес для поиска индексов.
Вы можете использовать эту опцию несколько раз, чтобы указать несколько источников.
См. Также «ИСТОЧНИКИ ШАБЛОНОВ» ниже.
Обратите внимание, что вам не следует указывать --источник к источникам, которым вы не доверяете (если только
источник подписан кем-то, кому вы доверяете). Также --нет сети опцию.
-v
--подробный
Включите отладочные сообщения и / или создайте подробный вывод.
Сообщая об ошибках, используйте эту опцию и прикрепите полный вывод к своей ошибке.
сообщить.
-V
--версия
Показать номер версии и выйти.
-x Включите отслеживание вызовов API libguestfs.
Кастомизация кредита
--chmod РАЗРЕШЕНИЯ: ФАЙЛ
Измените разрешения «ФАЙЛ» на «РАЗРЕШЕНИЯ».
Внимание: "РАЗРЕШЕНИЯ" по умолчанию будут десятичными, если вы не поставите перед ним префикс 0, чтобы получить
восьмеричный, т.е. используйте 0700, а не 700.
--команды из файла ИМЯ ФАЙЛА
Прочтите команды настройки из файла, по одной (и ее аргументам) в каждой строке.
Каждая строка содержит одну команду настройки и ее аргументы, например:
удалить / некоторые / файл
установить какой-то пакет
пароль какой-то-пользователь: пароль: его-новый-пароль
Пустые строки игнорируются, а строки, начинающиеся с "#", являются комментариями и игнорируются как
хорошо. Кроме того, аргументы можно распределить по нескольким строкам, добавив "\"
(символ продолжения) в конце строки, например
редактировать / некоторый / файл: \
s / ^ OPT =. * / OPT = ok /
Команды обрабатываются в том же порядке, что и в файле, как если бы они были
указано как --удалять / некоторые / файл в командной строке.
- копия ИСТОЧНИК: DEST
Рекурсивно копируйте файлы или каталоги внутри гостевой системы.
Подстановочные знаки использовать нельзя.
--копировать-в LOCALPATH: REMOTEDIR
Рекурсивно копируйте локальные файлы или каталоги в образ диска, помещая их в
каталог «ДИСТАНЦИОННЫЙ ИСПОЛЬЗОВАНИЕ» (который должен существовать).
Подстановочные знаки использовать нельзя.
--удалять PATH
Удалить файл у гостя. Или удалите каталог (и все его содержимое,
рекурсивно).
См. также: --загрузить, - скраб.
--редактировать ФАЙЛ: EXPR
Отредактируйте «FILE», используя выражение Perl «EXPR».
Будьте осторожны, чтобы правильно процитировать выражение, чтобы оно не было изменено
ракушка.
Обратите внимание, что этот параметр доступен только при установленном Perl 5.
См. «НЕИНТЕРАКТИВНОЕ РЕДАКТИРОВАНИЕ» в вирт-править(1).
- первая загрузка SCRIPT
Установите "SCRIPT" внутри гостевой системы, чтобы при первой загрузке гостя сценарий
запускается (как root, в конце процесса загрузки).
Скрипт автоматически chmod + x после установки в гостевой системе.
Альтернативная версия --firstboot-команда то же самое, но удобно обертывает
командовать в однострочном сценарии за вас.
У вас может быть несколько - первая загрузка параметры. Они работают в том же порядке, в котором они
появляются в командной строке.
Пожалуйста, посмотрите «ПЕРВЫЕ СЦЕНАРИИ ЗАГРУЗКИ» для получения дополнительной информации и предупреждений о
скрипты первой загрузки.
Смотрите также --запустить.
--firstboot-команда 'CMD + ARGS'
Выполнить команду (и аргументы) внутри гостя при первой загрузке гостя (как root,
поздно в процессе загрузки).
У вас может быть несколько - первая загрузка параметры. Они работают в том же порядке, в котором они
появляются в командной строке.
Пожалуйста, посмотрите «ПЕРВЫЕ СЦЕНАРИИ ЗАГРУЗКИ» для получения дополнительной информации и предупреждений о
скрипты первой загрузки.
Смотрите также --запустить.
--firstboot-установить PKG, PKG ..
Установите названные пакеты (список, разделенный запятыми). Они устанавливаются, когда
гость сначала загружается с помощью диспетчера пакетов гостя (например, apt, yum и т. д.), а
подключение гостя к сети.
Обзор различных способов установки пакетов см. В разделе «УСТАНОВКА ПАКЕТОВ».
--имя хоста HOSTNAME
Установите имя хоста гостя на «HOSTNAME». Вы можете использовать разделенное точками имя хоста. Имя домена.
(FQDN), если хотите.
--установить PKG, PKG ..
Установите названные пакеты (список, разделенный запятыми). Они устанавливаются во время
сборка образа с использованием гостевого менеджера пакетов (например, apt, yum и т. д.) и хоста
подключение к сети.
Обзор различных способов установки пакетов см. В разделе «УСТАНОВКА ПАКЕТОВ».
Смотрите также --Обновить.
--ссылка ЦЕЛЬ: ССЫЛКА [: ССЫЛКА ..]
Создайте символическую ссылку (и) в гостевой системе, начиная с «LINK» и указывая на «TARGET».
--mkdir DIR
Создайте каталог в гостевой системе.
Здесь используется "mkdir -p", поэтому создаются любые промежуточные каталоги, и он также работает, если
каталог уже существует.
--двигаться ИСТОЧНИК: DEST
Перемещайте файлы или каталоги внутри гостевой системы.
Подстановочные знаки использовать нельзя.
--no-logfile
Очистите файл "builder.log" (файл журнала команд сборки) от образа после завершения сборки.
полный. Если вы не хотите раскрывать, как именно было создано изображение, используйте этот
опцию.
См. Также: «ФАЙЛ ЖУРНАЛА».
--пароль ПОЛЬЗОВАТЕЛЬ: SELECTOR
Установите пароль для «ПОЛЬЗОВАТЕЛЯ». (Обратите внимание, что этот параметр создать учетную запись пользователя).
См. «ПОЛЬЗОВАТЕЛИ И ПАРОЛИ» для получения информации о формате поля «SELECTOR», а также о том, как установить
вверх учетные записи пользователей.
--пароль-крипто md5 | sha256 | sha512
Когда инструменты virt меняют или устанавливают пароль в гостевой системе, этот параметр устанавливает
шифрование пароля на «md5», «sha256» или «sha512».
"sha256" и "sha512" требуют glibc ≥ 2.7 (проверьте крипта(3) внутри гостя).
"md5" будет работать с относительно старыми гостевыми Linux (например, RHEL 3), но небезопасен.
против современных атак.
По умолчанию используется "sha512", если libguestfs не обнаруживает старого гостя, у которого не было
поддержка SHA-512, и в этом случае будет использоваться «md5». Вы можете переопределить libguestfs с помощью
указав эту опцию.
Обратите внимание, что это не меняет шифрование пароля по умолчанию, используемое гостем, когда вы
создать новые учетные записи пользователей внутри гостя. Если вы хотите это сделать, вам следует
использовать --редактировать возможность изменить "/ etc / sysconfig / authconfig" (Fedora, RHEL) или
"/etc/pam.d/общий-пароль"(Debian, Ubuntu).
--root-пароль СЕЛЕКТОР
Установите пароль root.
См. «ПОЛЬЗОВАТЕЛИ И ПАРОЛИ» для получения информации о формате поля «SELECTOR», а также о том, как установить
вверх учетные записи пользователей.
Примечание: в virt-builder, если вы не набор --root-пароль тогда гостю дается
случайный пароль root.
--запустить SCRIPT
Запустите сценарий оболочки (или любую программу) под названием «SCRIPT» на образе диска. Сценарий
запускается виртуализировано внутри небольшого устройства, привязанного к гостевой файловой системе.
Скрипт автоматически chmod + x.
Если libguestfs поддерживает это, тогда доступно ограниченное сетевое соединение, но только
разрешает исходящие сетевые соединения. Вы также можете прикрепить диски с данными (например, файлы ISO)
как еще один способ предоставить данные (например, программные пакеты) сценарию без необходимости
подключение к сети (--прикреплять). Вы также можете загружать файлы данных (--загрузить).
У вас может быть несколько --запустить параметры. Они работают в том же порядке, в котором появляются на
командная строка.
См. также: - первая загрузка, --прикреплять, --загрузить.
--Команда Run 'CMD + ARGS'
Запустите команду и аргументы в образе диска. Команда запускается виртуализированно внутри
небольшое устройство, привязанное к гостевой файловой системе.
Если libguestfs поддерживает это, тогда доступно ограниченное сетевое соединение, но только
разрешает исходящие сетевые соединения. Вы также можете прикрепить диски с данными (например, файлы ISO)
как еще один способ предоставить данные (например, программные пакеты) сценарию без необходимости
подключение к сети (--прикреплять). Вы также можете загружать файлы данных (--загрузить).
У вас может быть несколько --Команда Run параметры. Они работают в том же порядке, в котором они
появляются в командной строке.
См. также: - первая загрузка, --прикреплять, --загрузить.
- скраб ФАЙЛОВ
Очистите файл от гостя. Это похоже на --удалять Кроме этого:
· Он очищает данные, чтобы гость не мог их восстановить.
· Он не может удалять каталоги, только обычные файлы.
--selinux-переметка
Пометьте файлы в гостевой системе так, чтобы они имели правильную метку SELinux.
Вы должны использовать эту опцию только для гостей, которые поддерживают SELinux.
--см-прикрепить СЕЛЕКТОР
Присоединяйтесь к пулу с помощью «подписки-менеджера».
См. «SUBSCRIPTION-MANAGER» для формата поля «SELECTOR».
--sm-учетные данные СЕЛЕКТОР
Установите учетные данные для «подписки-менеджера».
См. «SUBSCRIPTION-MANAGER» для формата поля «SELECTOR».
--sm-регистр
Зарегистрируйте гостя с помощью «подписки-менеджера».
Для этого требуется, чтобы учетные данные были установлены с использованием --sm-учетные данные.
--sm-удалить
Удалите все подписки с гостя с помощью «диспетчера подписок».
--sm-отменить регистрацию
Отмените регистрацию гостя с помощью «подписки-менеджера».
--ssh-внедрить ПОЛЬЗОВАТЕЛЬ [: SELECTOR]
Введите ключ ssh, чтобы данный "ПОЛЬЗОВАТЕЛЬ" мог войти в систему через ssh без
ввод пароля. «ПОЛЬЗОВАТЕЛЬ» должен уже существовать в гостевой системе.
См. «КЛЮЧИ SSH» для получения информации о формате поля «SELECTOR».
У вас может быть несколько --ssh-внедрить варианты, для разных пользователей, а также для большего количества ключей
для каждого пользователя.
--часовой пояс ЧАСОВОЙ ПОЯС
Установите часовой пояс гостя по умолчанию на «TIMEZONE». Используйте строку местоположения, например
«Европа / Лондон»
--трогать ФАЙЛОВ
Эта команда выполняет трогать(1) -подобная операция с "ФАЙЛОМ".
--truncate ФАЙЛОВ
Эта команда усекает «путь» к файлу нулевой длины. Файл должен уже существовать.
--truncate-рекурсивный PATH
Эта команда рекурсивно обрезает все файлы по «пути» до нулевой длины.
--Обновить
Выполните эквивалент «yum update», «apt-get upgrade» или любую другую команду.
для обновления пакетов, уже установленных в шаблоне, до последних версий.
Смотрите также --установить.
--загрузить ФАЙЛ: DEST
Загрузите локальный файл «FILE» в место назначения «DEST» в образе диска. Владелец файла и
разрешения из оригинала сохраняются, поэтому вы должны установить для них то, что хотите
они должны быть в образе диска.
"DEST" может быть последним именем файла. Это можно использовать для переименования файла при загрузке.
Если "DEST" - это имя каталога (которое уже должно существовать в гостевой системе), то файл
загружается в этот каталог и сохраняет то же имя, что и в локальной файловой системе.
См. также: --mkdir, --удалять, - скраб.
--записывать ФАЙЛ: СОДЕРЖАНИЕ
Напишите «СОДЕРЖАНИЕ» в «ФАЙЛ».
СПРАВКА
УСТАНОВКА Пакеты
Есть несколько подходов к установке пакетов или приложений в гостевой системе, которые
есть разные компромиссы.
Установка пакеты at строить время
Если гостевая ОС, которую вы устанавливаете, похожа на ОС хоста (например, обе являются Linux), и если
libguestfs поддерживает сетевые подключения, тогда вы можете использовать --установить установить пакеты
как это:
virt-builder fedora-20 - установить inkscape
Это использует гостевой менеджер пакетов и сетевое соединение хоста.
Обновление пакеты at строить время
Чтобы обновить основной набор пакетов в шаблоне во время сборки:
virt-builder fedora-20 - обновление
Большинство шаблонов, поставляемых с virt-builder, имеют минимальный выбор
пакеты (известные как «JEOS» или «Just Enough Operating System»), обновленные на
время создания шаблона, но может быть устаревшим к тому времени, когда вы придете для установки
ОС из шаблона. Эта опция обновляет эти пакеты шаблонов.
Установка пакеты at первый лодка
Другой вариант - установить пакеты при первой загрузке гостя:
virt-builder fedora-20 - первая загрузка-установка inkscape
Это использует гостевой менеджер пакетов и гостевое сетевое соединение.
Недостатком является то, что гостю потребуется намного больше времени для первой загрузки, и есть
ничего особенного вы не сможете сделать, если установка пакета завершится неудачно (например, если проблема с сетью означает, что
гость не может получить доступ к репозиториям пакетов).
Установка пакеты at строить время от a сторона хранилище
Если программное обеспечение, которое вы хотите установить, недоступно в основном репозитории пакетов
guest, то вы можете добавить боковой репозиторий. Обычно это представляется как ISO (CD-диск
image) файл, содержащий дополнительные пакеты.
Вы можете создать образ диска, используя либо генизоизображение(1) или вирт-мейк-фс(1). За
genisoimage используйте такую команду:
genisoimage -o extra-packages.iso -R -J -V EXTRA cdcontents /
Создайте сценарий, который монтирует ISO и настраивает репозиторий. Для yum создайте
/tmp/install.sh, содержащий:
mkdir / tmp / mount
mount LABEL = EXTRA / tmp / mount
кошка << 'EOF'> /etc/yum.repos.d/extra.repo
[экстра]
name = extra
baseurl = файл: /// tmp / mount
включенной = 1
EOF
yum -y установить известную базу данных
Для apt создайте /tmp/install.sh, содержащий:
mkdir / tmp / mount
mount LABEL = EXTRA / tmp / mount
apt-cdrom -d = / tmp / mount добавить
apt-get -y установить известную базу данных
Использовать --прикреплять возможность прикрепить образ компакт-диска / диска и --запустить возможность запустить
сценарий:
вирт-строитель федора-20 \
--attach дополнительные пакеты.iso \
- выполнить /tmp/install.sh
пОЛЬЗОВАТЕЛЕЙ И ПАРОЛИ
The --root-пароль опция используется для изменения пароля root (в противном случае случайный
используется пароль). Эта опция принимает пароль «SELECTOR» в одном из следующих
форматы:
--root-пароль файл: FILENAME
Прочтите пароль root из «FILENAME». Вся первая строка этого файла - это
сменный пароль. Все остальные строки игнорируются. Вы должны создать файл с
режим 0600, чтобы никто другой не мог его прочитать.
--root-пароль пароль: ПАРОЛЬ
Установите пароль root в виде буквальной строки «PASSWORD».
Примечание: этой is безопасный поскольку любой пользователь на том же компьютере может видеть открытый текст
пароль с помощью ps(1).
--root-пароль случайный
Выберите случайный пароль, который выводится на стандартный вывод. Пароль примерно
120 бит случайности.
Это значение по умолчанию.
--root-пароль инвалид
Пароль учетной записи root отключен. Это все равно, что поставить "*" в пароле.
поле.
--root-пароль заблокировано: файл: FILENAME
--root-пароль заблокировано: пароль: ПАРОЛЬ
--root-пароль заблокировано: случайное
Учетная запись root заблокирована, но для нее установлен пароль. Если сначала
разблокирован (с помощью "passwd -u"), то для входа будет использоваться заданный пароль.
--root-пароль запертый
--root-пароль заблокировано: отключено
Учетная запись root заблокирована и пароль отключен.
Создающий пользователь счета
Для создания учетных записей пользователей используйте useradd(8) команду с --firstboot-command следующим образом:
виртуальный строитель --firstboot-команда \
'useradd -m -p "" rjones; chage -d 0 rjones '
Приведенная выше команда создаст учетную запись "rjones" без пароля и заставит пользователя
установить пароль при первом входе в систему. Есть и другие способы управления паролями, см.
useradd(8) для подробностей.
КЛАВИАТУРА Палубы Prestige XXNUMX
Потому что есть так много разных способов установить раскладку клавиатуры в Linux
дистрибутивов, virt-builder еще не пытается иметь простой параметр командной строки.
В этом разделе описывается, как настроить клавиатуру для некоторых распространенных дистрибутивов Linux.
клавиатура макет Systemd
Для дистрибутивов, которые используют systemd "localectl", используйте такую команду:
вирт-строитель федора-20 \
--firstboot-command 'localectl set-keymap uk'
Посмотреть локалектл(1) и
https://www.happyassassin.net/2013/11/23/keyboard-layouts-in-fedora-20-and-previously/ for
более подробно.
клавиатура макет через / и т. д. / sysconfig / клавиатура
Для RHEL ≤ 6, Fedora ≤ 18 и аналогичных загрузите или измените файл конфигурации клавиатуры.
используя --загрузить, --записывать or --редактировать параметры. Например:
виртуальный строитель Centos-6 \
--edit '/ etc / sysconfig / keyboard: s / ^ KEYTABLE =. * / KEYTABLE = "uk" /'
Формат этого файла можно найти во многих местах в Интернете.
клавиатура макет На основе Debian дистрибутивы
Для производных от Debian дистрибутивов, использующих / и т. д. / по умолчанию / клавиатура, загрузите или измените файл клавиатуры
используя --загрузить, --записывать or --редактировать параметры. Например:
виртуальный сборщик debian-7 \
--редактировать '/ и т. д. / по умолчанию / клавиатура: s / ^ XKBLAYOUT =. * / XKBLAYOUT = "gb" / '
См. Https://wiki.debian.org/Keyboard.
АНГЛИЙСКИЙ ЯЗЫК
Большинство дистрибутивов Linux поддерживают несколько настроек локали, поэтому у вас может быть гостевая
сообщения напечатаны на другом языке, например на русском.
Однако не существует единой настройки, которая бы это контролировала, так как дополнительные пакеты могут потребоваться
быть установленным для поддержки консольных и X шрифтов, а также методов ввода с клавиатуры. Пакеты
требуются, и их конфигурация сильно зависит от дистрибутива и выходит за рамки
Virt-builder для этого.
Этот раздел содержит примеры для некоторых распространенных дистрибутивов Linux.
настройка Японский in Fedora 20
вирт-строитель федора-20 \
- размер 20G \
--Обновить \
--install @ japanese-support \
- установить @xfce \
--install 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 изолировать graphical.target'
настройка Японский in Debian 7 (Хрип)
Обратите внимание, что хотя это также позволяет использовать японский язык в текстовой консоли, маловероятно, что вы
увидит там правильно переведенный японский язык. Однако японский язык правильно отображается в X
приложения и терминалы.
pkgs = locales, xfce4, \
ibus, ibus-anthy, \
ттф-сазанами-готика, ттф-сазанами-минчо, \
шрифты-такао-минчо, \
xfonts-intl-japanese, xfonts-intl-japanese-big, \
iceweasel-l10n-ja, manpages-ja
виртуальный сборщик debian-7 \
- размер 20G \
--install $ pkgs \
--edit '/ etc / inittab: s, ^ # ([1-9]. * respawn. * / sbin / getty. *), $ 1,' \
--редактировать '/etc/locale.gen: s, ^ # \ s * ja, ja, '\
--записывать '/ и т. д. / по умолчанию / локаль: LANG = "ja_JP.UTF-8" '\
--run-command "locale-gen"
ВХОД ФАЙЛОВ
Сценарии и установка пакетов, запускаемая во время сборки (--запустить, --Команда Run, --установить,
--Обновить, Но firstboot) регистрируется в одном из следующих расположений:
/tmp/builder.log
В Linux, BSD и других гостях.
C: \ Temp \ builder.log
В Windows - гости DOS.
/builder.log
If / Tmp or C: \ Temp отсутствует.
Если вы не хотите, чтобы файл журнала отображался в конечном изображении, используйте --no-logfile
командной строки.
SSH КЛЮЧИ
The --ssh-внедрить опция используется для ввода ключей ssh для пользователей в гостевой системе, чтобы они могли
войти в систему без ввода пароля.
Часть значения параметра «SELECTOR» является необязательной; в этом случае, --ssh-внедрить "ПОЛЬЗОВАТЕЛЬ"
означает, что мы смотрим в текущий пользователя Посмотреть ~ / .ssh каталог, чтобы найти общедоступный идентификатор по умолчанию
файл. Этот ключ загружен. "общедоступный идентификатор по умолчанию" - это default_ID_файл файл, описанный в
ssh-копия-идентификатор(1).
Если указано, "ВЫБОР" может быть в одном из следующих форматов:
--ssh-внедрить ПОЛЬЗОВАТЕЛЬ: файл: ИМЯ ФАЙЛА
Прочтите ключ ssh из ИМЯ ФАЙЛА. ИМЯ ФАЙЛА обычно является .паб .
--ssh-внедрить ПОЛЬЗОВАТЕЛЬ: строка: KEY_STRING
Используйте указанный «KEY_STRING». «KEY_STRING» обычно является общедоступной строкой, например ssh-rsa
АААА .... пользователь @ localhost.
В любом случае ~ ПОЛЬЗОВАТЕЛЬ / .ssh каталог и ~ ПОЛЬЗОВАТЕЛЬ / .ssh / authorized_keys файл будет
создано, если еще не существует.
ПЕРВЫЙ BOAT СЦЕНАРИИ
The - первая загрузка и --firstboot-команда опции позволяют выполнять команды при первом
сапог гостя. Для этого устанавливается сценарий инициализации для гостевой системы инициализации, который
заботится о запуске всех добавленных скриптов и команд.
Поддерживаемые операционные системы:
Linux
Поддерживаются следующие системы инициализации: systemd, System-V init (также известный как sysvinit) и
Upstart (с использованием скриптов System-V).
Обратите внимание, что обычно сценарии инициализации запускаются от имени пользователя root, но с более ограниченной средой, чем
что может быть доступно из обычной оболочки: например, $ HOME может быть не задано или пусто.
Вывод первых сценариев загрузки доступен в гостевой системе как
~ корень / virt-sysprep-firstboot.log.
Windows
rhsrvany.exe, доступный из источников на https://github.com/rwmjones/rhsrvany, является
установлен для запуска первых сценариев загрузки. Это обязательно, и настройка первой загрузки
сценарии не будут работать, если его нет.
rhsrvany.exe копируется из места, на которое указывает "VIRT_TOOLS_DATA_DIR"
переменная окружения; если не установлен, будет использоваться скомпилированное значение по умолчанию (что-то вроде
/ USR / доля / виртуальные инструменты).
Вывод первых сценариев загрузки доступен в гостевой системе как C: \ Program Файлы \ Красный
Hat \ Firstboot \ log.txt.
ПОДПИСКА-МЕНЕДЖЕР
Можно автоматизировать регистрацию и подключение системы с помощью
"подписка-менеджер". Это типично для гостей Red Hat Enterprise Linux. Есть
несколько опций, которые упрощают этот процесс, избегают выполнения команд вручную и раскрытия
пароли в командной строке.
--sm-регистр запускает процесс регистрации и требует --sm-учетные данные быть
указано; формат «СЕЛЕКТОРА» --sm-учетные данные один из следующих
форматы:
--sm-учетные данные ПОЛЬЗОВАТЕЛЬ: файл: ИМЯ ФАЙЛА
Прочтите пароль для указанного «ПОЛЬЗОВАТЕЛЯ» из ИМЯ ФАЙЛА.
--sm-учетные данные ПОЛЬЗОВАТЕЛЬ: пароль: ПАРОЛЬ
Используйте буквальную строку «ПАРОЛЬ» для указанного «ПОЛЬЗОВАТЕЛЯ».
--см-прикрепить присоединяет систему к подпискам; формат его "СЕЛЕКТОРА" является одним из
следующие:
--см-прикрепить автоматический
К наиболее подходящим подпискам в системе подключается «менеджер подписок».
--см-прикрепить файл: FILENAME
Считайте идентификатор пула из ИМЯ ФАЙЛА.
--см-прикрепить бассейн: БАССЕЙН
Используйте буквальную строку «POOL» в качестве идентификатора пула.
--sm-удалить удаляет все подписки у гостя, а --sm-отменить регистрацию полностью
отменить регистрацию системы.
МОНТАЖ ПРОЦЕСС ПРОЕКТИРОВАНИЯ
Когда вы вызываете virt-builder, установка происходит следующим образом:
· Изображение шаблона загружено.
Если изображение шаблона присутствует в кеше, вместо него используется кешированная версия.
(См. «КЭШИНГ»).
· Проверяется подпись шаблона.
· Шаблон распакован в файл tmp.
· Размер изображения шаблона изменяется в соответствии с назначением, используя виртуальное изменение размера(1).
· Прикреплены дополнительные диски (--прикреплять).
· Новое случайное начальное число генерируется для гостя.
· Настройка гостя выполняется в порядке, указанном в командной строке.
· Выполнена перемаркировка SELinux (--selinux-переметка).
ИМПОРТ ДИСК ОБРАЗ
Импортирующий в Libvirt
Импортируйте образ диска в libvirt, используя виртуальная установка(1) --Импортировать опцию.
виртуальная установка --импорт \
--name гость --ram 2048 \
- путь к диску = disk.img, формат = необработанный --os-вариант fedora20
Примечание:
1. вы обязательно укажите правильный формат. Формат является "сырым", если вы не использовали virt-
строительный --формат опцию.
2. --os-вариант настоятельно рекомендуется, потому что он представит оптимальные устройства для включения
гость, чтобы работать наиболее эффективно. Чтобы получить список всех вариантов, выполните:
osinfo-запрос ОС
Указанный выше инструмент предоставляется пакетом libosinfo.
3. Вы можете запустить virt-install как root, так и не root. Каждый работает немного по-своему, потому что
libvirt управляет отдельным набором виртуальных машин для каждого пользователя. Особенно
virt-manager обычно показывает виртуальные машины, принадлежащие root, тогда как Boxes показывает принадлежащие пользователю
Виртуальные машины и другие инструменты, вероятно, также работают по-другому.
Импортирующий в OpenStack
Импортируйте изображение в Glance (хранилище изображений OpenStack), выполнив следующие действия:
взгляд-создать-образ--название-изображения-20-fedora--файл-файла-20.img\
--disk-format raw --container-format голый \
--is-public Истина
The --файл параметр - образ диска, созданный virt-builder. Он должен соответствовать virt-
строительный --выход вариант. --disk-формат параметр должен соответствовать параметру virt-builder
--формат вариант (или "сырой", если вы не использовали эту опцию). В --контейнер-формат должен
всегда быть «голым», поскольку virt-builder не помещает изображения в контейнеры.
Вы можете использовать "просмотр изображений" Fedora-20-изображение " команда для отображения свойств
изображение.
Чтобы загрузить экземпляр вашего образа на вычислительном узле Nova, выполните:
nova boot fedora-20-server - изображение fedora-20-image \
- аромат m1.medium
Используйте «список ароматов nova», чтобы перечислить возможные ароматизаторы. Используйте «список новинок», чтобы перечислить запущенные
экземпляров.
Загрузка непосредственно через кему or KVM
Командная строка qemu не очень стабильна и не проста в использовании, поэтому libvirt следует использовать, если
возможный. Однако для загрузки
виртуальная машина:
qemu-система-x86_64 \
-машинное ускорение = kvm: tcg \
-процессор хост \
-м 2048 \
-drive file = disk.img, format = raw, if = virtio
Как и в случае с libvirt, очень важно выбрать правильный формат. Будет "сырым"
если только --формат вариант был использован.
КОНФИГУРАЦИЯ УПРАВЛЕНИЕ
Кукольный
Чтобы включить агент Puppet в гостевой системе, установите пакет, укажите конфигурацию в
ваш Puppetmaster и убедитесь, что агент запускается при загрузке.
Типичная команда virt-builder будет такой:
вирт-строитель федора-20 \
--hostname client.example.com \
--Обновить \
- установить марионетку \
--edit '/etc/puppet/puppet.conf:
s / ^ \ [агент \] / [агент] \ n сервер = puppetmaster.example.com/ '\
--run-command 'systemctl enable puppet' \
--selinux-переметка
Точные инструкции различаются в зависимости от дистрибутива Linux. Для получения дополнительной информации см .:
http://docs.puppetlabs.com/guides/installation.htm
ОТЛАДКА Строит
Если сам virt-builder выйдет из строя, то включите отладку (-v) и сообщить об ошибке (см. «ОШИБКИ»
ниже).
Если virt-builder не работает из-за сбоя в установке какого-либо скрипта или пакета, попробуйте использовать
--no-delete-при сбое чтобы сохранить выходной файл, и продолжайте читать этот раздел.
Если virt-builder работает успешно, но изображение не работает, попробуйте следующее:
Используйте virt-rescue
Run спасение вирт(1) на образе диска:
virt-rescue -диск.img
Это дает вам спасательную оболочку. Вы можете смонтировать файловые системы из образа диска на
/ sysroot и изучите их с помощью обычных команд Linux. Вы также можете chroot в
гость переустановить загрузчик. На странице руководства virt-rescue есть гораздо больше
информация и примеры.
Используйте guestfish
Run рыба-гость(1) на образе диска:
гостевая рыба -a disk.img -i
Используйте команды guestfish, такие как "ll / directory" и "cat / file", чтобы исследовать каталоги и
файлы.
Использовать guestmount
Безопасно смонтируйте образ диска на хосте с помощью FUSE и гостевая гора(1):
mkdir / tmp / mp
guestmount -a disk.img -i / tmp / mp
cd / tmp / mp
Чтобы отключить образ диска, выполните:
fusermount -u / tmp / mp
Добавить последовательную консоль
Если гость зависает во время загрузки, может быть полезно добавить последовательную консоль в
guest и направлять сообщения ядра на последовательную консоль. Добавление последовательной консоли
потребует просмотра документации для вашего гипервизора. Направить ядро
сообщения в последовательную консоль, добавьте в командную строку ядра следующее:
консоль = tty0 консоль = ttyS0,115200
ИСТОЧНИКИ OF ШАБЛОНЫ
virt-builder читает доступные источники из файлов конфигурации с помощью .conf
extension и находится по следующим путям:
· $ 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]
uri =http://libguestfs.org/download/builder/index.asc
gpgkey = file: ///etc/xdg/virt-builder/repos.d/libguestfs.gpg
Часть в квадратных скобках - это идентификатор репозитория, который используется как уникальный
идентификатор.
Могут появиться следующие поля:
"uri = URI"
URI индексного файла, на который ссылается этот репозиторий.
Это поле обязательно к заполнению.
"gpgkey = URI"
Это необязательное поле представляет URI (хотя только файл: // Принимаются URI)
ключ, используемый для подписи индексного файла. Если нет, индексный файл, на который ссылается
uri = .. не подписан.
"прокси = РЕЖИМ"
В этом необязательном поле указывается режим прокси, который будет использоваться при загрузке индекса.
файл этого репозитория. Возможные значения:
нет, от
Прокси-сервер вообще не используется, даже при изменении конфигурации системы.
система
Используемый прокси - системный.
все еще
Указывает фактическую конфигурацию прокси, которая будет использоваться, переопределяя систему
конфигурации.
Если нет, предполагаемое значение должно соответствовать настройкам прокси системы (т. Е.
как будто система будет уточнено).
"формат = ФОРМАТ"
В этом необязательном поле указывается формат репозитория. Возможные значения:
родной
Собственный формат репозитория "virt-builder". См. Также «Создание и
подписание индексного файла "ниже.
простые потоки
URI представляет собой корень дерева метаданных Simple Streams v1.0.
Для получения дополнительной информации о простых потоках см. Также
https://launchpad.net/simplestreams.
Если нет, предполагается, что значение будет «родным».
Для серьезного использования virt-builder вы можете создать свой собственный репозиторий шаблонов.
Libguestfs.org хранилище
По умолчанию virt-builder скачивает файл
http://libguestfs.org/download/builder/index.asc который является индексом доступных шаблонов
плюс некоторая информация о каждом, завернутая в цифровую подпись. Команда
"virt-builder --list" перечисляет информацию в этом индексном файле.
Шаблоны, размещенные на libguestfs.org, были созданы с использованием сценариев оболочки, файлов кикстарта.
и файлы preseed, которые можно найти в дереве исходных текстов libguestfs в "builder / website".
настройка up хранилище
Вы можете создать свой собственный сайт, содержащий индексный файл и несколько шаблонов, а затем указать
virt-builder на сайте, создав .conf файл, указывающий на него.
Обратите внимание: если ваш индекс подписан, вам нужно будет правильно заполнить gpgkey = .. и на Вашем .conf
файл, не забудьте также развернуть файл ключа GPG.
virt-builder - источник 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 "[электронная почта защищена]"> pubkey
Создавай шаблоны
Есть много способов создать шаблоны. Например, вы можете клонировать существующих гостей
(См. вирт-sysprep(1)), или вы можете установить гостевую систему вручную (виртуальная установка(1)). Чтобы увидеть, как
шаблоны созданы для virt-builder, посмотрите скрипты в "builder / website"
Для достижения наилучших результатов при сжатии шаблонов используйте следующие параметры xz (см.
nbdkit-xz-плагин(1) для дальнейшего объяснения):
xz --best --block-size = 16777216 диск
Создающий и подписание индекс файл
Индексный файл имеет простой текстовый формат (здесь показан без цифровой подписи):
[федора-18]
name = Fedora® 18
osinfo = fedora18
арка = x86_64
файл = fedora-18.xz
контрольная сумма [sha512] = ...
format = raw
size = 6442450944
compressed_size = 148947524
развернуть = / dev / sda3
[федора-19]
name = Fedora® 19
osinfo = fedora19
арка = x86_64
файл = fedora-19.xz
контрольная сумма [sha512] = ...
редакция = 3
format = raw
size = 4294967296
compressed_size = 172190964
развернуть = / dev / sda3
Часть в квадратных скобках - это "os-version", та же строка, которая используется в
командную строку virt-builder для сборки этой ОС.
После подготовки "индексного" файла в правильном формате, очистите его, используя следующие
команда:
gpg --clearsign - индекс брони
Это создаст окончательный файл с именем index.asc которые можно загрузить на сервер (и
это uri = .. URL). Как отмечалось выше, подписывать индексный файл необязательно, но рекомендуется.
Могут появиться следующие поля:
"name = NAME"
Понятное имя этого шаблона. Это отображается в --список вывод, но
в остальном не имеет значения.
"osinfo = ID"
Это необязательное поле сопоставляет операционную систему с соответствующим идентификатором libosinfo. Вирт-
строитель не использует его (пока).
"arch = ARCH"
Архитектура установленной в шаблоне операционной системы. Это поле
требуется.
"файл = ПУТЬ"
Путь (относительно индекса) к сжатому xz шаблону.
Обратите внимание, что абсолютные пути или URI разрешено здесь. Это потому, что virt-builder
имеет политику «одинакового происхождения» для шаблонов, поэтому они не могут поступать с других серверов.
"sig = ПУТЬ"
Эти вариант is устарела. Вместо этого используйте поле контрольной суммы.
Путь (относительно индекса) отдельной подписи GPG файла xz.
Обратите внимание, что абсолютные пути или URI разрешено здесь. Это потому, что virt-builder
имеет политику «одинакового происхождения» для шаблонов, поэтому они не могут поступать с других серверов.
Файл можно создать следующим образом:
gpg --detach-sign --armor -o disk.xz.sig disk.xz
"checksum[sha512]=7b882fe9b82eb0fef..."
Контрольная сумма SHA-512 сжатый файл проверяется после его загрузки. К
проработать подпись, сделать:
sha512сум диск.xz
Обратите внимание, что если вы используете это, вам не нужно подписывать файл, т.е. не используйте "сиг". Этот
опция отменяет "sig".
"checksum=7b882fe9b82eb0fef..."
«Контрольная сумма» - это псевдоним для «контрольной суммы [sha512]».
Если вам нужно взаимодействовать с virt-builder = 1.24.0, вы должны использовать «контрольную сумму»
потому что эта версия выдала бы ошибку синтаксического анализа с квадратными скобками и числами в
ключ поля. Это исправлено в virt-builder ≥ 1.24.1.
"редакция = N"
Версия - это целое число, которое используется для управления кешем шаблона. Увеличение
номер версии заставляет клиентов снова загружать шаблон, даже если у них есть
скопировать в кеш.
Номер версии указывать не обязательно. Если опущено, по умолчанию используется 1.
"формат = необработанный"
"формат = qcow2"
Укажите формат образа диска (до его сжатия). Если не указано,
формат определяется автоматически, но, как правило, лучше четко указать предполагаемый формат.
формат.
Обратите внимание, что это исходный формат, который отличается от формата --формат вариант (запрошен
Формат вывода). Virt-builder выполняет преобразование на лету из исходного формата в формат.
запрошенный выходной формат.
"size = NNN"
Виртуальный размер изображения в байтах. Это размер изображения, когда
несжатый. Если используется необработанный формат, такой как qcow2, это означает, что виртуальный диск
размер, а не размер файла qcow2.
Это поле обязательно к заполнению.
Virt-builder также использует это как минимальный размер, который пользователи могут запрашивать через --размер
вариант или как размер по умолчанию, если нет --размер опцию.
"compressed_size = NNN"
Сжатый размер образа диска в байтах. Это просто используется для информации
(когда используешь --список --длинный).
"expand = / dev / sdaX"
При увеличении изображения до окончательного размера проинструктируйте виртуальное изменение размера(1) для расширения
именованный раздел в гостевом образе, чтобы заполнить все доступное пространство. Это работает как
виртуальное изменение размера --расширять опцию.
Обычно здесь следует указывать имя устройства корневой файловой системы гостя.
Это хорошая идея, но не обязательно. Если поле опущено, то вир-
resize создаст дополнительный раздел в конце диска, чтобы покрыть свободное пространство,
что гораздо менее удобно.
"lvexpand = / dev / VolGroup / LogVol"
При увеличении изображения до окончательного размера проинструктируйте виртуальное изменение размера(1) для расширения
именованный логический том в гостевом образе, чтобы заполнить все доступное пространство. Это работает
как вирт-изменение размера --lv-развернуть опцию.
Если гость использует LVM2, обычно следует помещать LV корневой файловой системы гостя.
здесь. Если гость не использует LVM2 или его корневая файловая система не находится на LV, не
используйте эту опцию.
"notes = ЗАМЕТКИ"
Любые примечания, которые идут с этим изображением, особенно примечания, описывающие, какие пакеты находятся в
изображение, способ его подготовки и информация о лицензировании.
Эта информация отображается в --Примечания и --список --длинный режимы.
Здесь вы можете использовать многострочные заметки, делая отступ на каждой новой строке хотя бы одним
символ пробела (даже на пустых строках):
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 =
количество источников, и между каждым источником и каждым
отпечаток пальца:
вирт-строитель \
--источник http://example.com/s1/index.asc --fingerprint '0123 ...' \
--источник http://example.com/s2/index.asc - отпечаток пальца "9876 ..."
В случае предоставления 1 отпечатка пальца для всех источников используется один и тот же отпечаток пальца.
Вы «должны» предоставить хотя бы 1 отпечаток пальца.
Лицензирование of шаблоны
Вы должны знать о лицензировании изображений, которые вы распространяете. Для открытого исходного кода
гости, укажите ссылку на исходный код в поле «Примечания» и соблюдайте другие
требования (например, в отношении товарных знаков).
формальный Спецификация of индекс файл
Формат индексного файла имеет формальную спецификацию, определяемую сканером гибкости и bison.
парсер, используемый для анализа файла. Это можно найти в следующих файлах в libguestfs
исходное дерево:
строитель / index-scan.l
строитель / index-parse.y
Инструмент под названием вирт-индекс-проверка(1) доступен для проверки индексного файла, чтобы убедиться, что он
правильно.
Обратите внимание, что синтаксический анализатор и инструмент могут работать как с подписанным, так и с неподписанным индексным файлом (т. Е.
индекс or index.asc).
Индекс всегда кодируется в UTF-8.
Кеширование
Кэширование шаблоны
Поскольку шаблоны обычно очень большие, загруженные шаблоны кэшируются в папке пользователя.
домашний каталог.
Расположение кеша $ XDG_CACHE_HOME / virt-builder / or $ HOME / .cache / virt-builder.
Вы можете распечатать информацию о каталоге кеша, в том числе о том, какие гости
в настоящее время кэшировано, выполнив:
виртуальный строитель --print-cache
Кеш можно удалить, если вы хотите сэкономить место, выполнив:
виртуальный строитель --delete-cache
Вы можете загрузить все (текущие) шаблоны в локальный кеш, выполнив:
виртуальный строитель - кэш-все-шаблоны
Чтобы отключить кеш шаблона, используйте --без кеша.
Кешируются только шаблоны. Индексные и отсоединенные цифровые подписи не кэшируются.
Кэширование пакеты
Virt-builder использует виться(1) для загрузки файлов, а также использует текущий "http_proxy"
(и т. д.) настройки при установке пакетов (--установить, --Обновить).
Поэтому вы можете установить эти переменные среды, чтобы максимизировать количество
локального кеширования. См. «ПЕРЕМЕННЫЕ ОКРУЖАЮЩЕЙ СРЕДЫ» и виться(1).
Местное Зеркала
Чтобы увеличить скорость и надежность установки пакетов, вы можете настроить локальный
зеркало целевого дистрибутива и укажите на него гостевой менеджер пакетов.
Из-за порядка, в котором происходит каждый этап установки, вы не можете использовать --записывать
(чтобы указать диспетчеру пакетов на репо), за которым следует --установить (установить из этого
репо). В --записывать и --установить шаги выполняются в обратном порядке, независимо от их
заказ в командной строке. Вы должны сделать это, используя --Команда Run вместо --установить.
Использование локального зеркала с Fedora
Чтобы установить гостевую систему Fedora с помощью локального зеркала:
вирт-строитель федора-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 update' \
--run-command 'yum -y install pkg1 pkg2 ...'
Использование локального зеркала с Debian
Предполагая, что вы используете «apt-proxy» для зеркалирования репозитория, вы должны создать новый
sources.list файл, чтобы указать на ваш прокси (см. https://help.ubuntu.com/community/AptProxy)
а затем выполните:
виртуальный сборщик debian-7 \
--upload источники.список:/ Etc / кв / 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 будут
нужно использовать - подпись без проверки в командной строке. Это не позволяет злоумышленнику
замена подписанного индексного файла на беззнаковый индексный файл и наличие virt-builder
бесшумно работают без проверки подписи. В любом случае настоятельно рекомендуется
вы всегда создаете подписанный индекс и шаблоны.
АРХИТЕКТУРА
Virt-builder может создать гостевую систему для любой архитектуры независимо от архитектуры хоста.
является. Например, гость x86-64 на хосте ARM.
Однако некоторые параметры могут не работать, особенно параметры, требующие выполнения команд.
в гостевой системе в процессе сборки: --установить, --Обновить, --запустить, --Команда Run. Вы можете
необходимо заменить их на их эквиваленты firstboot.
Хост-сервер x86-64 с 32-битными гостевыми i686 должен работать без каких-либо специальных действий.
БЕЗОПАСНОСТЬ
Virt-builder не нужно запускать от имени root (на самом деле, он не должен запускаться от root), и
не использует setuid, sudo или другие подобные механизмы.
--установить, --Обновить, --запустить и --Команда Run реализуются с помощью прибора (небольшой
виртуальная машина), поэтому эти команды не выполняются на хосте. Если вы используете
libguestfs libvirt backend и включите SELinux, тогда виртуальная машина
дополнительно инкапсулирован в контейнер SELinux (sVirt).
Однако эти параметры будут иметь доступ к сети хоста, и поскольку шаблон может
содержат ненадежный код, код может попытаться получить доступ к сетевым ресурсам хоста, которые он
не должна. Вы можете использовать --нет сети чтобы предотвратить это.
Команды firstboot выполняются в контексте гостя, когда он загружается, поэтому безопасность
вашего гипервизора / облака.
Virt-builder вводит случайное семя в каждого гостя, которого он создает. Это помогает обеспечить
что порядковые номера TCP, UUID, ключи хоста ssh и т. д. действительно случайны при загрузке гостя.
Вы должны проверять цифровые подписи и не игнорировать ошибки подписи.
КЛОНЫ
Если вы хотите создать много новых гостей одного типа, возникает соблазн запустить virt-builder.
один раз, а затем скопируйте выходной файл. Вам следует сделай это. Вам следует запустить virt-builder
один раз для каждого нового гостя, который вам нужен.
Причина в том, что каждый клон должен иметь (как минимум) отдельное случайное семя, и
возможно, другие уникальные функции (такие как UUID файловой системы) в будущих версиях virt-
строитель.
Другое дело, что тебе следует do - это загрузка гостя, а затем клонирование образа загруженного диска.
Причина в том, что некоторые гости сначала создают уникальные идентификаторы компьютеров, ключи хоста SSH и т. Д.
boot, и вы не захотите, чтобы клоны имели одинаковые идентификаторы.
См. также: вирт-sysprep(1).
Арбитраж трафика
Самый важный аспект получения хорошей производительности - это кеширование. Шаблоны получает
загружаются в кэш при первом использовании или если вы используете
--cache-все-шаблоны вариант. См. «КЭШИНГ» выше для получения дополнительной информации.
Пакеты, необходимые для --установить и --Обновить параметры загружаются с помощью хоста
подключение к сети. Настройка среды http_proxy, https_proxy и ftp_proxy
переменные, указывающие на локальный веб-кеш, могут гарантировать, что их нужно будет загрузить только один раз.
Вы также можете попробовать использовать локальный репозиторий пакетов, хотя это может быть сложно настроить
и зависит от того, какой дистрибутив Linux вы пытаетесь установить.
. --нет синхронизации
Используйте --нет синхронизации. Однако прочтите предостережения в разделе «ОПЦИИ» выше, так как это может
привести к повреждению диска при неправильном использовании.
Пропуская виртуальное изменение размера
Virt-builder может пропустить шаг виртуального изменения размера при определенных условиях. Это делает добро-
строитель намного быстрее. Условия следующие:
· Вывод должен быть обычным файлом (не блочным устройством), и
· Пользователь сделал использовать --размер вариант, и
· Выходной формат такой же, как формат шаблона (обычно необработанный).
pxzcat
Virt-builder использует внутреннюю реализацию pxzcat (параллельный xzcat), если liblzma была
найдено во время сборки. Если liblzma не была найдена во время сборки, используется обычный "xzcat".
который является однопоточным.
Пользовательский режим Linux
Вы можете использовать virt-builder с бэкэндом пользовательского режима Linux (UML). Это может быть быстрее, когда
запуск virt-builder внутри виртуальной машины (например, в облаке).
Чтобы включить бэкэнд UML, прочтите инструкции в разделе «НАЗАД LINUX в ПОЛЬЗОВАТЕЛЬСКОМ РЕЖИМЕ» в
гость(3).
В настоящее время вы должны использовать --нет сети вариант. Это должно быть исправлено в будущем
версия.
Формат вывода qcow2 не поддерживается UML. Вы можете создавать гостей только в необработанном формате.
СЕЛИНУКС
Гости, использующие SELinux (например, Fedora и Red Hat Enterprise Linux), требуют, чтобы каждый
файл имеет правильную метку SELinux.
Virt-builder не умеет давать метки новым файлам, поэтому есть два возможных варианта.
стратегии, которые он может использовать для обеспечения правильной маркировки:
. --selinux-переметка
Это работает файлы исправлений(8) непосредственно перед финализацией гостя, который устанавливает метки SELinux
правильно в образе диска.
Иногда во время установки файлы исправлений недоступны, и в этом случае эта опция
возвращается на:
Трогательный /.autorelabel
Гостевые шаблоны могут уже содержать файл с именем /.autorelabel, или его трогают, если
--selinux-переметка не может запускать файлы исправлений.
Для гостей, использующих SELinux, это приводит к запуску файлов исправлений при первой загрузке. Гости будут
перезагружаются при первом использовании, что нормально и безвредно.
Обратите внимание: если ваш гость использует SELinux, и вы выполняете на нем операции, которые
может создавать новые файлы или изменять существующие, рекомендуется использовать
--selinux-переметка. Это поможет убедиться, что файлы имеют правильный SELinux.
этикетки.
МАШИНА УДОБОЧИТАЕМЫЙ ВЫВОД
The - машиночитаемый опцию можно использовать, чтобы сделать вывод более удобным для машины, что
полезен при вызове virt-builder из других программ, графических интерфейсов и т. д.
Используйте эту опцию отдельно, чтобы узнать о возможностях двоичного файла virt-builder. Типичный
вывод выглядит так:
$ virt-builder - машиночитаемый
строитель добродетели
арка
config-файл
настроить
json-список
pxzcat
Список функций распечатывается, по одной в строке, и программа завершает работу со статусом 0.
ОКРУЖАЮЩАЯ СРЕДА ПЕРЕМЕННЫЕ
Информацию о других переменных среды, влияющих на все программы libguestfs, см. В разделе «ОКРУЖАЮЩАЯ СРЕДА.
ПЕРЕМЕННЫЕ "в гость(3).
"http_proxy"
"https_proxy"
"no_proxy"
Установите прокси для загрузок. Эти переменные среды (и другие) на самом деле
интерпретируется виться(1), а не добродетель.
"ДОМ"
Используется для определения местоположения кеша шаблонов и местоположения пользователя.
источники. См. «Кеширование» и «ИСТОЧНИКИ ШАБЛОНОВ».
"VIRT_TOOLS_DATA_DIR"
Это может указывать на каталог, содержащий файлы данных, используемые для первой загрузки Windows.
установка.
Обычно это не требуется. Если не установлен, будет использоваться скомпилированный по умолчанию
(что-то вроде / USR / доля / виртуальные инструменты).
Этот каталог может содержать следующие файлы:
rhsrvany.exe
Это двоичный файл Windows RHSrvAny, используемый для установки сценария "firstboot" в
Гости Windows. Это необходимо, если вы собираетесь использовать - первая загрузка or
--firstboot-команда варианты с гостями Windows.
См. Также: «https://github.com/rwmjones/rhsrvany»
«XDG_CACHE_HOME»
Используется для определения местоположения кэша шаблонов. См. «КЭШИНГ».
"XDG_CONFIG_HOME"
Используется для определения местоположения пользовательских источников. См. «ИСТОЧНИКИ ШАБЛОНОВ».
"XDG_CONFIG_DIRS"
Используется для определения местоположения системных источников. См. «ИСТОЧНИКИ ШАБЛОНОВ».
ВЫХОД статус
Эта программа возвращает 0 в случае успеха или ненулевое значение в случае ошибки.
Используйте virt-builder онлайн с помощью сервисов onworks.net