Нужен скрипт для запуска при входе пользователя в систему для сервера Ubuntu 18.04, созданного через Packer - PullRequest
0 голосов
/ 29 марта 2019

Немного странно, так что терпите меня.

Я создаю образ виртуальной машины 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'?

...