Немного странно, так что терпите меня.
Я создаю образ виртуальной машины Azure с помощью Packer.Часть установки требует установки некоторых библиотек Python.Я могу выполнить это с помощью сценария Shell в списке запуска Packer, однако, когда образ запечатан и готов к использованию, эти библиотеки не устанавливаются.
Я обнаружил, что библиотеки не установлены, поскольку они установлены в профиле пользователя, и частью процесса Packer является удаление указанного профиля пользователя после «повторного запечатывания» образа для использования.
Я прогуглил несколько способов, но я не нашел ничего, что позволяло бы мне запускать в качестве сценария при входе в систему пользователя, которого еще нет, так как при первом использовании изображения и входе в систему создается учетная запись.
Кто-нибудь знает, как я мог запустить этот сценарий при входе в систему при первом использовании?
#!/bin/bash
cd /
echo "Testing to make sure that script performed as expected, and basic scenarios work"
for cmd in python pip; do
if ! command -v $cmd; then
echo "$cmd was not installed or not found on PATH"
exit 1
fi
done
list1=(
pandevice
pan-python
requests
requests_toolbelt
requests[security]
)
for i in "${list1[@]}"; do
pip install $i
done
list2=(
asn1crypto
certifi
cffi
chardet
cryptography
enum34
idna
ipaddress
pan-python
pandevice
pycparser
pyOpenSSL
requests
requests-toolbelt
six
urllib3
)
for x in "${list2[@]}"; do
if ! pip freeze | grep $x; then
echo "$x was not installed or not found on PATH"
exit 1
fi
done
Как вы знаете, я подумал об использовании sudo pip install
, однако; Каковы риски запуска 'sudo pip'?