Nikolay
Вообще вангую ось не из поддерживаемого списка
J
Это я прямо щас увидел в disk-image-create —help, потому что наизусть ничо не знаю.
Mr.Smith
J
Чо за день то такой седня
Nikolay
9?
Mr.Smith
8.5
Nikolay
Тады странно
Nikolay
А что за запчасти от 7ки в скрипте?
Mr.Smith
я точно не знаю, они мне достались в наследство
Mr.Smith
я переношу сценарий с gitlab на jenkins
Nikolay
В коле вроде есть запчасти для сборки 8 ки
J
function create_base () {
mkdir $TMP_BUILD_DIR/mnt
# Make sure the / inside the chroot is owned by root
# If it is not owned by root, some Ubuntu bionic packages will fail
# path validation at install time.
sudo chown root.root $TMP_BUILD_DIR/mnt
export TMP_MOUNT_PATH=$TMP_BUILD_DIR/mnt
# Copy data in to the root.
TARGET_ROOT=$TMP_MOUNT_PATH run_d root
if [ -z "$(ls $TMP_MOUNT_PATH | grep -v '^lost+found\|tmp$')" ] ; then
# No root element copied in. Note the test above allows
# root.d elements to put things in /tmp
echo "Failed to deploy the root element."
exit 1
fi
Mr.Smith
в гитлабе все работает
Mr.Smith
Mr.Smith
да
Mr.Smith
он должен подмантироваться и чрутнуться
Mr.Smith
но этого не происходит
Nikolay
Просто интересно - "sudo chown root.root" это как работает?
Mr.Smith
изменить права владения каталогом для группы и пользователя рут
Nikolay
Такой формат човна первый раз вижу
Nikolay
Вот вот
Nikolay
Подмонтируй образ
Nikolay
Руками
Mr.Smith
Mr.Smith
всё то же самое, только воркер гитлаба на убунту
Mr.Smith
Nikolay
Да
Nikolay
Короче с xfs часто встречаю проблемы маунта после qemunbd
Nikolay
При этом libguestfs нормально монтирует
J
А, я посмотрел щас.
Оказывается, rhel элемент через жопу работает и ему надо готовый образ пихать из которого он вытянет rootfs.
J
Хоспаде, как же с редхатом сложно все.
Nikolay
Это да
Mr.Smith
J
https://docs.openstack.org/diskimage-builder/latest/elements/rhel7/README.html
Mr.Smith
DIB_LOCAL_IMAGE=/tmp/rhel7-cloud.qcow2
Mr.Smith
это сделно
Mr.Smith
исходный образ есть
J
Элемента rhel8 в базовой поставке dib не существует.
J
Либо просто rhel либо rhel7
Mr.Smith
у меня есть rhel8
J
это сделно
Смотри содержимое
/home/jenkins/rhel/rhel8/env/lib/python3.6/site-packages/diskimage_builder/elements/
Ищи там rhel8.
Mr.Smith
J
Mr.Smith
там папка static
Mr.Smith
с конфигурирующими файлами для yum
J
Mr.Smith
Mr.Smith
ага
Mr.Smith
и всё
J
J
Слушай, если на регулярной основе придется этим заниматься, лучше в натуре поразбирайся как dib устроен, там всё из баш скриптов слеплено и очень несложно)
Mr.Smith
просто rhel написано
Mr.Smith
J
просто rhel написано
Отлично. Значит что rhel8 зависит от базового rhel.
Вот смотри, это элемент rhel:
https://github.com/openstack/diskimage-builder/tree/master/diskimage_builder/elements/rhel
А вот что он делает на этапе root.d:
https://github.com/openstack/diskimage-builder/blob/master/diskimage_builder/elements/rhel/root.d/10-rhel-cloud-image
Mr.Smith
так вот он как раз вот это и не делает
Mr.Smith
BASE_IMAGE_TAR=$BASE_IMAGE_FILE.tgz
J
Вот extract-image, который выполняется в конце.
https://github.com/openstack/diskimage-builder/blob/37edd3304448bcf6d6640da838c381d54f24a491/diskimage_builder/elements/sysprep/bin/extract-image
J
BASE_IMAGE_TAR=$BASE_IMAGE_FILE.tgz
Это просто заполнение значения переменной чтобы потом скормить её
extract-image:
$TMP_HOOKS_PATH/bin/extract-image $BASE_IMAGE_FILE $BASE_IMAGE_TAR $IMAGE_LOCATION $CACHED_IMAGE
J
Собственно всё.
Что-то во время extract-image у тебя идет не так на дженкинсе.
Вот и смотри что. Если недостаточно того что и так выплевывается в stdout, можешь напихать туда echo значений переменных.
J
Думаю, дальше уже можно разобраться.
Mr.Smith
Благодарю, спасибо большое
Mr.Smith
теперь хоть понятно куда копать
Fedor
Mr.Smith
Вот тут вот не понятно одно:
Mr.Smith
dib-run-parts Ignoring non-executable files: 50-yum-cache 10-rhel-cloud-image
Mr.Smith
Почему эти файлы не используются? Почему оно не хочет из брать?
Mr.Smith
Мне нужно сделать их исполняемыми?
Mr.Smith
Что именно нужно сделать? Где именно написано это в документации?
Mr.Smith
Я не имею большого опыта работы с этой утилитой как Вы, по этому задаю глупые вопросы
J
dib-run-parts Ignoring non-executable files: 50-yum-cache 10-rhel-cloud-image
Посмотри 10-rhel-cloud-image откуда берется. Есть ли этот скрипт где-то внутри ELEMENTS_PATH.
Это скрипт внутри элемента rhel и он должен быть исполняемым. Если он не исполняемый, вероятно, или элемент rhel твои коллеги переделали и либо они либо ты при копировании кастомных элементов ошибись с правами.
50-yum-cache - часть стандартного элемента yum. И он тоже должен быть исполняемым.
Проверь нет ли этого скрипта внутри ваших кастомных элементов в ELEMENTS_PATH.
В целом, внутри фаз элементов держат только исполняемые скрипты. dib собирает скрипты принадлежащие к одной фазе из всех указанных тобой элементов, сортирует и исполняет по очереди. Потом переходит к следующей фазе. Логика работы довольно простая.
https://docs.openstack.org/diskimage-builder/latest/developer/developing_elements.html
Mr.Smith
Окей, права поправил, теперь он мне говорит - отказано в доступе
Mr.Smith
Mr.Smith
/tmp/dib_build.ZjtmPlSf/hooks/root.d/10-rhel-cloud-image: line 48: /tmp/dib_build.ZjtmPlSf/hooks/bin/extract-image: Permission denied