Автоматизация — Действия, Выполняемые Во Время Задачи Репозитория Fai, Не Сохраняются

  • Автор темы Yud
  • Обновлено
  • 22, Oct 2024
  • #1

Вопрос

Мой скрипт-перехват для задачи репозитория (см. список задач ФАИ), похоже, не влияет на окончательное состояние установки. Почему нет? Это ожидаемое поведение? Если да, то почему? И что я могу сделать, чтобы обойти это ограничение?

Фон

Я пытаюсь использовать FAI для установки Docker CE из репозитория пакетов Docker (см. Установка пакетов из стороннего репозитория с помощью FAI). Следуя официальным инструкциям, я пытаюсь использовать

[...]
Calling hook: repository.SOFTPROPCOMM
Testing repository-task hook script
Writing to file /test
Checking contents of /test
Success
repository.SOFTPROPCOMM OK.
[...]
utility to add the package repository to the APT repository index. In order to get the
#!/bin/bash

# /srv/fai/config/hooks/repository.SOFTPROPCOMM

echo "Testing repository-task hook script"
echo "Writing to file /test"
echo "Success" > /test
echo "Checking contents of /test"
cat /test
утилита, которую я пытаюсь установить
Calling hook: repository.SOFTPROPCOMM
apt-get install software-properties-common
Reading package lists...
Building dependency tree...
Reading state information...
software-properties-common is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 86 not upgraded.
repository.SOFTPROPCOMM OK.
package. My plan was to use a hook script for the repository phase to install
cat fai-softpropcomm.log \
| grep -Fi -B1 -A2 software-properties-common
а затем использовать
add-apt-repository
to add the Docker repository.

Попытка решения

Я создал следующий сценарий перехвата задач репозитория для

apt-get install software-properties-common
class:

dpkg -l | grep -Fi software-properties-common

Затем я выполняю

software-properties-common
to создать среду chroot:

which add-apt-repository

Затем я вхожу в среду chroot:

add-apt-repository

и изнутри среды chroot я проверяю наличие

sudo chroot softpropcomm
application:

sudo fai \
--verbose \
--cfdir '/etc/fai' \
--class 'SOFTPROPCOMM' \
--cspace 'file:///srv/fai/config' \
dirinstall 'softpropcomm' \
| tee fai-softpropcomm.log

а также за наличие

dirinstall
package:

#!/bin/bash

# /srv/fai/config/hooks/repository.SOFTPROPCOMM

# Print command
echo apt-get install software-properties-common

# Execute command
apt-get install software-properties-common

Ни приложения, ни пакета нет. Поэтому я пытаюсь вручную установить пакет (все еще из chroot):

SOFTPROPCOMM

Установка продолжается, как и ожидалось, для нового пакета (того, который еще не установлен в системе), и после завершения установки пакета я могу убедиться, что

add-apt-repository
application has been successfully installed. This seems to suggest that repository-task hook script did not execute successfully. So I and look at my log file (back on the host - outside of the chroot):

software-properties-common

Это дает следующий результат:

software-properties-common

Кажется, это говорит о том, что пакет уже был установлен до выполнения моего скрипта-перехватчика, что сбивает с толку вдвойне.

Попытка отладки

Чтобы проверить, что происходит, я добавил в сценарий перехвата задач хранилища команду для записи в новый файл. Вот новый скрипт ловушки:

add-apt-repository

Выходные данные процесса установки включают следующий блок для перехватчика задач репозитория:

add-apt-repository

Но когда я вхожу в chroot, файла там нет.

#автоматизация #обеспечение #fai

Yud


Рег
26 Jun, 2010

Тем
75

Постов
206

Баллов
591
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно