Я знаю, что этому вопросу уже 4 года, но я наткнулся на него только сегодня и понял, что пару лет назад был в той же ситуации, что и вы.
В итоге мы использовали определение Packer для автоматизации процесса сборки образа. Packer поддерживает guest_additions_url
опцию . Мы указали это на локальное зеркало с копией iso гостевых дополнений. Имейте в виду, однако, что это просто загружает образ в папку на виртуальной машине или вставляет его в виртуальный дисковод компакт-дисков, в зависимости от того, какие другие параметры конфигурации вы выбрали. Установка — это упражнение, оставленное пользователю -, обычно с этим справляется сценарий подготовки. Мы основывали наше определение Packer на одном из репозитория Chef "Bento" , который использует сценарий подготовки для установки гостевых дополнений после того, как iso был скопирован в виртуальную машину :
.
#!/bin/sh -eux
# set a default HOME_DIR environment variable if not set
HOME_DIR="${HOME_DIR:-/home/vagrant}";
case "$PACKER_BUILDER_TYPE" in
virtualbox-iso|virtualbox-ovf)
VER="`cat $HOME_DIR/.vbox_version`";
ISO="VBoxGuestAdditions_$VER.iso";
mkdir -p /tmp/vbox;
mount -o loop $HOME_DIR/$ISO /tmp/vbox;
sh /tmp/vbox/VBoxLinuxAdditions.run \
|| echo "VBoxLinuxAdditions.run exited $? and is suppressed." \
"For more read https://www.virtualbox.org/ticket/12479";
umount /tmp/vbox;
rm -rf /tmp/vbox;
rm -f $HOME_DIR/*.iso;
;;
esac
В репозиториях доступны пакеты гостевых дополнений для других дистрибутивов, таких как Ubuntu и Arch Linux, но по какой-то причине самое близкое, что я нашел для RHEL/CentOS, — это отрывочные веб-сайты, предлагающие пакеты гостевых дополнений для рекламы -hoc загрузок, но нет надежных репозиториев.
П.С. Теперь существует devops -специальный сайт Stack Exchange .
Если вы используете find -exec cp
, у вас будет процесс, который нельзя легко перезапустить в случае ошибки. Я не уверен, что ошибка, которую вы видите, как-то связана с командой, которую вы нам показали, поскольку в команде нет ссылки на сеть.
Возможно, вы копируете данные с или на диск SMB/NFS? (Если это так, вы получите более эффективную копию, если сможете войти в удаленную систему и позволить rsync
управлять сетевым копированием.)
Тем не менее,эта команда rsync
позволит вам несколько раз перезапустить процесс копирования (, включая обработку уже сделанных вами копий)
rsync -av --include '*.msg' --include '*/' --exclude '*' --prune-empty-dirs --dry-run. /destinated_folder/
Удалите --dry-run
, если вы уверены, что он будет делать то, что вы ожидаете.